【发布时间】:2017-10-14 02:11:08
【问题描述】:
我是 PixiJS 的新手,我正在尝试一些简单的东西,比如绘画应用程序。
我在尝试将一组形状捕获为一个分组时遇到了困难。我对为此工作的代码不感兴趣,因为我想自己解决这个问题;我只是想知道我是否走在正确的轨道上,或者我是否需要探索一些其他 PixiJS 概念来获得我需要的东西。
我有一个画布,可以在其中拖动矩形、椭圆和线条等形状。这些“笔画”被存储为单独的Graphics 对象,例如:
var shape = new PIXI.Graphics();
shape.position.set(...);
...
shape.lineStyle(...)
.beginFill(...)
.drawRect(...)
.endFill();
...
stage.addChild(shape);
...
renderer.render(stage);
我还在一个数组中保留这些形状:
shapes.push(shape);
现在我已经显示了这些以及可用的笔划顺序,我希望能够以某种方式捕获它们。想象一下,可能会拿画并保存它,或者将其用作画廊中的缩略图,或者只是将其存储在数据库的后端,最好保留所有原始笔画,以便它们可以按比例放大或缩小为想要的。
现在,我只是想通过握住这些笔触,从画布上清除图形,然后放下我握住的东西,再次显示这些笔触集合。
看看这个例子,我已经能够得到一个纹理,无论我在哪里用鼠标点击,我都能可靠地再现:
这意味着我已经能够获取创建纹理对象的第一部分,并且我调整了第二部分以在单击鼠标时创建和显示精灵。
当我尝试用我自己的代码替换这个示例代码来创建纹理本身时,我无法让这部分工作。
所以当我尝试从中创建精灵时,这个示例 sn-p 工作正常:
var texture = new PIXI.RenderTexture(renderer, 16, 16);
var graphics = new PIXI.Graphics();
graphics.beginFill(0x44FFFF);
graphics.drawCircle(8, 8, 8);
graphics.endFill();
texture.render(graphics);
仅供参考创建精灵:
var sprite = new PIXI.Sprite(texture);
sprite.position.set(xPos, yPos);
stage.addChild(sprite);
由于我在shapes 数组或stage 中有我的形状,我继续将其捕获为一个可以创建一个或多个精灵的单个分组的首选方法是什么?
【问题讨论】:
标签: javascript pixi.js