캔버스에서 만든 텍스처를 사용하여 PIXI.js에서 도형을 채울 수있는 방법을 찾으려고합니다. 이유는 일반 html 캔버스에 그라디언트를 만들고 싶고, 텍스처를 만들어 pixi 스테이지에 추가하기 위해서입니다. 이제 그 일을 할 수 있습니다. 그것이 제가 테스트 한 첫 번째 일이었습니다. 그러나 최종 목표는 PIXI.js에서 Graphics 클래스를 사용하여 도형을 만든 다음 그라디언트로 채우는 것입니다. .beginFill() 메서드는 색상 만 허용하기 때문에이를 수행하는 방법을 모르겠습니다. 어떻게 텍스쳐로 도형을 채울 수 있습니까? 내 코드는 다음과 같습니다. 보조 캔버스 만들기가 약간 장황하다는 것을 알지만 나중에 문제가 될 수 있습니다.캔버스에서 텍스처로 Pixi js 채우기
$(document).ready(function() {
var stage = new PIXI.Container();
var renderer = PIXI.autoDetectRenderer(800, 600);
document.body.appendChild(renderer.view);
//Aliases
var Sprite = PIXI.Sprite;
var TextureCache = PIXI.utils.TextureCache;
var resources = PIXI. loader.resources;
function AuxCanvas(id, w, h, color1, color2) {
this.id = id;
this.w = w;
this.h = h;
this.color1 = color1;
this.color2 = color2;
}
// create and append the canvas to body
AuxCanvas.prototype.create = function() {
$('body').append('<canvas id="'+
this.id+'" width="'+
this.w+'" height="'+
this.h+'"></canvas>');
}
// draw gradient
AuxCanvas.prototype.drawGradient = function() {
var canvas = document.getElementById(this.id);
var ctx = canvas.getContext('2d');
var gradient = ctx.createLinearGradient(0, 0, 800, 0);
gradient.addColorStop(0, this.color1);
gradient.addColorStop(1, this.color2);
ctx.fillStyle = gradient;
ctx.fillRect(0, 0, this.w, this.h);
}
function setup() {
var graphics = new PIXI.Graphics();
graphics.beginFill(PIXI.Texture.fromCanvas(can1)); //This doesn't work obviously
graphics.drawCircle(60, 185, 40);
graphics.endFill();
stage.addChild(graphics);
renderer.render(stage);
}
var can1 = new AuxCanvas("can1", 800, 600, "green", "yellow");
can1.create();
can1.drawGradient();
var can2 = new AuxCanvas("can2", 800, 600, "blue", "red");
can2.create();
can2.drawGradient();
setup();
})