在PIXI中.js我正在从自定义图形创建纹理以用作精灵(因此我可以为其添加交互性。代码如下所示:
function makeTextureFromGraphics(props) {
const gfx = new PIXI.Graphics()
gfx.beginFill(props.fill)
/* ...make my graphics here... */
gfx.endFill()
const texture = new PIXI.RenderTexture(app.renderer, props.size , props.size)
texture.render(gfx)
return texture
}
然后我用自定义道具创建一个纹理并创建精灵:
const myTexture = makeTextureFromGraphics(myprops)
const sprite = new PIXI.Sprite(myTexture)
sprite.on('pointerup', pointerUpCallback)
然后我将精灵添加到应用程序中,如下所示:
app.stage.addChild(sprite)
通过这样的设置,我收到警告:
Please use RenderTexture.create(10, 10) instead of the ctor directly.
你能给出一些提示,如何重构代码,使其与RenderTexture.create内联吗?
在文档中,我找到了示例:
let renderTexture = PIXI.RenderTexture.create(800, 600);
let sprite = PIXI.Sprite.fromImage("spinObj_01.png");
renderer.render(sprite, renderTexture);
但它从图像而不是图形渲染精灵,此外 renderTexture 没有引用我的图形。
下面是一个示例,它从图形生成纹理而不发出警告
var graphics = new PIXI.Graphics();
graphics.beginFill(0xff22aa);
graphics.drawRect(0, 0, 50, 50);
graphics.endFill();
var texture = app.renderer.generateTexture(graphics);
var sprite = new PIXI.Sprite(texture);
app.stage.addChild(sprite);
https://repl.it/@CurlyBrace/PixiTexture