Pixi.js: 设置锚点不应重绘显示对象内容

创建于 2018-04-11  ·  4评论  ·  资料来源: pixijs/pixi.js

你好,

尽管枢轴和锚点非常令人困惑,但如果我将锚点想象成可以在 photoshop 或旧的 Flash 编辑器中设置为旋转点的圆点,在 pixi 中发生的情况是所有显示对象内容都被重绘,将锚点设置为原点观点。

var app = new PIXI.Application(800, 600, {backgroundColor : 0x1099bb});
document.body.appendChild(app.view);

var bunny = PIXI.Sprite.fromImage('required/assets/basics/bunny.png');

var container = new PIXI.Sprite();
container.addChild(bunny);
container.x = 0;
container.y = 0;

app.stage.addChild(container);

bunny.anchor.set(0.5);
//bunny_c.pivot.set(15,5);

在这个例子中,我希望兔子与影响其旋转改变的锚在一起,但不会重新绘制兔子!

💾 v4.x (Legacy) 🤔 Question

所有4条评论

每个元素都有一个变换,即位置/旋转/枢轴
精灵有锚点,这意味着“这个纹理点应该在局部坐标系的 (0,0) 中”。

旋转枢轴始终是局部坐标系的 (0,0)。

如果您想要不同的行为,您可以更改 Transform 类并为受影响的元素创建修补后的 Transform 的实例。

https://github.com/pixijs/pixi.js/blob/dev/src/core/display/TransformStatic.js
https://github.com/pixijs/pixi.js/blob/dev/src/core/sprites/Sprite.js#L174

此外,兔子在 pixi 中的每一帧都是redrawn 。 该库没有跟踪所有更改的机制,它只是有效。 否则它可能会重 3MB 或更多:)

对于您的情况,最好将枢轴设置为兔子的中心。 确保通过常量来完成,仅在加载时使用bunny.texture.width

@DavidGOrtega关闭此内容,因为我觉得您的问题已得到解答。 如果您有任何其他问题,请随时重新打开!

由于关闭后没有任何近期活动,因此该线程已自动锁定。 请为相关错误打开一个新问题。

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

readygosports picture readygosports  ·  3评论

st3v0 picture st3v0  ·  3评论

neciszhang picture neciszhang  ·  3评论

madroneropaulo picture madroneropaulo  ·  3评论

SebastienFPRousseau picture SebastienFPRousseau  ·  3评论