(Libgdx 1.6.1) BitmapFontCache.draw stürzt ab, weil der Index außerhalb der Grenzen liegt

Ich habe kürzlich mein Libgdx-Projekt von 1.4.x auf 1.6.1 aktualisiert. Ich benutze BitmapFontCache für meinen Dialog in meinem Spiel und zeichne Zeichen für Zeichen mit BitmapFontCache.draw (Start, Ende). Dies funktionierte in 1.4.x einwandfrei, aber nachdem die erforderlichen Änderungen vorgenommen wurden, um 1.6.1 zu erstellen, scheint es einen Absturz zu verursachen, wenn der Zeilenumbruch aktiviert wird, nachdem das letzte Zeichen angezeigt wurde. Seltsamerweise scheint dies kein Problem mit einzeiligen Strings zu sein.

Hier füge ich meinen Text hinzu:

fontCache.addText( message, fontPosX, fontPosY, fontWidth, Align.left, true);

Dann erhöhe ich die Anzahl der Zeichen und zeichne. currentCharacter stoppt, wenn das Ende der Zeichenfolge basierend auf ihrer Länge erreicht wird:

fontCache.draw( batch, 0, currentCharacter );

Dies funktionierte in 1.4.x auch mit mehrzeiligen umbrochenen Zeichenfolgen einwandfrei, scheint jedoch eine Ausnahme zu verursachen, wenn die Zeilen in eine zweite Zeile umbrochen werden (stürzt ab, nachdem das letzte Zeichen gezeichnet wurde). Hier ist die Zeile, die einen Absturz in SpriteBatch verursacht.

System.arraycopy(spriteVertices, offset, vertices, idx, copyCount);

Gibt es eine neue Möglichkeit, die Länge des Strings zum Zeichnen zu berechnen? Muss ich das zurückgegebene GlyphLayout in irgendeiner Weise verwenden? Oder ist das vielleicht ein Bug?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage