Erstellen Sie eine PIXI.BitmapText-Instanz mit diesem Text "1111111111111111111111111". Merken Sie sich die Breite, ändern Sie den Text in "1" und überprüfen Sie die Breite erneut. Sie wird gleich sein.
Dieses Problem tritt auf, wenn die PIXI.BitmapText-Instanz die PIXI.Mesh-Instanz als untergeordnete Instanz mit mehr als 199 Scheitelpunkten hat
https://pixijs.io/examples/#/text/bitmap -text.js
Fügen Sie diesen Code ein:
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);
}
pixi.js
Version : 5.3.2Hier ist eine JSFiddle-Version:
https://jsfiddle.net/bigtimebuddy/syt6gdpb/
Hier ist eine JSFiddle-Version:
https://jsfiddle.net/bigtimebuddy/syt6gdpb/
Soweit ich weiß, tritt dieses Problem auf, weil wir den Scheitelpunktpuffer nicht bereinigen, wenn neuer Text kleiner als der vorherige ist.
Überprüfen Sie, wie dieser Zustand funktioniert
Wahrscheinlich würde das Nullstellen des Scheitelpunktpuffers dieses Problem beheben, wenn er nicht neu erstellt würde.
Hilfreichster Kommentar
Soweit ich weiß, tritt dieses Problem auf, weil wir den Scheitelpunktpuffer nicht bereinigen, wenn neuer Text kleiner als der vorherige ist.
Überprüfen Sie, wie dieser Zustand funktioniert