Pixi.js: Definir a âncora não deve redesenhar o conteúdo do objeto de exibição

Criado em 11 abr. 2018  ·  4Comentários  ·  Fonte: pixijs/pixi.js

Oi,

apesar de que o pivô e a âncora são super confusos, se eu imaginar a âncora como aquele ponto redondo que posso definir no photoshop ou no editor de flash antigo como o ponto de rotação, o que acontece no pixi é que todo o conteúdo do objeto de exibição é redesenhado, definindo a âncora como a origem apontar.

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);

Com este exemplo, espero que o coelho esteja com a âncora que afeta sua rotação alterada, mas não o coelho seja redesenhado!

💾 v4.x (Legacy) 🤔 Question

Todos 4 comentários

Cada elemento tem uma transformação, que é posição / rotação / pivô
Sprites possuem âncora, ou seja, "este ponto de textura deve estar em (0,0) do sistema de coordenadas local".

O pivô de rotação é sempre (0,0) do sistema de coordenadas local.

Se desejar um comportamento diferente, você pode alterar a classe Transform e criar instâncias de seu Transform corrigido para os elementos afetados.

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

Além disso, o coelho é redrawn cada quadro no pixi. A biblioteca não possui mecanismos para rastrear todas as mudanças, ela simplesmente funciona. Caso contrário, pode pesar 3 MB ou mais :)

Para o seu caso, é melhor definir o pivô no centro do coelho. Certifique-se de fazer isso por constantes, use bunny.texture.width apenas quando estiver carregado.

@DavidGOrtega fechando isto porque sinto que sua pergunta foi respondida. Sinta-se à vontade para reabrir se tiver mais problemas!

Este tópico foi automaticamente bloqueado, pois não houve nenhuma atividade recente depois que ele foi fechado. Abra um novo problema para bugs relacionados.

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

softshape picture softshape  ·  3Comentários

SebastienFPRousseau picture SebastienFPRousseau  ·  3Comentários

courtneyvigo picture courtneyvigo  ·  3Comentários

Darker picture Darker  ·  3Comentários

st3v0 picture st3v0  ·  3Comentários