Недавно я обновил свой проект Libgdx с 1.4.x до 1.6.1. Я использую BitmapFontCache для своего диалога в своей игре, рисуя строку символ за символом, используя BitmapFontCache.draw(start, end). Это отлично работало в 1.4.x, но после внесения необходимых изменений для сборки 1.6.1, похоже, происходит сбой, когда перенос включен после отображения последнего символа. Как ни странно, это не похоже на проблему с однострочными строками.
Вот как я добавляю свой текст:
fontCache.addText( message, fontPosX, fontPosY, fontWidth, Align.left, true);
Затем я увеличиваю количество символов и рисую. currentCharacter останавливается при достижении конца строки в зависимости от ее длины:
fontCache.draw( batch, 0, currentCharacter );
Это отлично работало в версии 1.4.x даже с многострочными обернутыми строками, но, кажется, вызывает исключение за пределами границ, если строки переносятся на вторую строку (сбой после рисования последнего символа). Вот строка, вызывающая сбой в SpriteBatch.
System.arraycopy(spriteVertices, offset, vertices, idx, copyCount);
Есть ли новый способ расчета длины строки для рисования? Нужно ли каким-то образом использовать возвращаемый GlyphLayout? Или это возможно баг?