Pixi.js: Largura de BitmapText após mudança de texto

Criado em 22 set. 2020  ·  3Comentários  ·  Fonte: pixijs/pixi.js

Comportamento esperado

Comportamento Atual

Crie uma instância PIXI.BitmapText com este texto "1111111111111111111111111". Lembre-se de sua largura, depois mude o texto para "1" e verifique novamente a largura, ela será a mesma.

Solução possível

Este problema existe quando a instância PIXI.BitmapText tem a instância PIXI.Mesh como filhos com mais de 199 vértices

Passos para reproduzir

https://pixijs.io/examples/#/text/bitmap -text.js
Cole este código:

const app = new PIXI.Application({ backgroundColor: 0x1099bb });
document.body.appendChild(app.view);

app.loader
    .add('desyrel', 'examples/assets/bitmap-font/desyrel.xml')
    .load(onAssetsLoaded);

function onAssetsLoaded() {
    const bitmapFontText = new PIXI.BitmapText('11111111111111111111111111111111111111111111111', { font: '55px Desyrel'});
    console.log(bitmapFontText.width);
    bitmapFontText.x = 50;
    bitmapFontText.y = 200;
    bitmapFontText.text = '1';
    console.log(bitmapFontText.width);
    app.stage.addChild(bitmapFontText);
}

Meio Ambiente

  • pixi.js versão : 5.3.2
  • Navegador e versão : Chrome 85
  • SO e versão : Windows 10
🕷 Bug

Comentários muito úteis

Aqui está uma versão do JSFiddle:
https://jsfiddle.net/bigtimebuddy/syt6gdpb/

Pelo que entendi, esse problema surge porque não limpamos o buffer de vértices quando o novo texto é menor do que o anterior.
Verifique como esta condição funciona
image

Todos 3 comentários

Aqui está uma versão do JSFiddle:
https://jsfiddle.net/bigtimebuddy/syt6gdpb/

Aqui está uma versão do JSFiddle:
https://jsfiddle.net/bigtimebuddy/syt6gdpb/

Pelo que entendi, esse problema surge porque não limpamos o buffer de vértices quando o novo texto é menor do que o anterior.
Verifique como esta condição funciona
image

Provavelmente zerar o buffer de vértice resolveria o problema, se não fosse criado recentemente.

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