我用andengine编写游戏,我正在使用Andengine Text显示高分...
这是代码:
StrokeFont mFont = FontFactory.createStrokeFromAsset(this.getFontManager(), mainFontTexture, this.getAssets(), "Roboto-BoldItalic.ttf", 100, true, Color.WHITE, 2, Color.BLACK);
mFont.load();
text_score_menu = new Text(25, 25, mFont, "Score: ",getVertexBufferObjectManager());
if(LC.Score>Constants.highScore){
prefs.edit().putInt("highScore",LC.Score).commit();
text_score_menu.setText("New High: " + LC.Score);
}else{
text_score_menu.setText("Score: " + LC.Score);
}
Run Code Online (Sandbox Code Playgroud)
问题是,当有新的高分时,我在这里得到一个新的例外:
text_score_menu.setText("New High: " + LC.Score);
Run Code Online (Sandbox Code Playgroud)
但是当得分不是新的高分并且得分显示时,我没有那个问题
text_score_menu.setText("Score: " + LC.Score);
Run Code Online (Sandbox Code Playgroud)
这是错误消息:
FATAL EXCEPTION: UpdateThread
java.lang.ArrayIndexOutOfBoundsException: length=210; index=210
at org.andengine.entity.text.vbo.HighPerformanceTextVertexBufferObject.onUpdateVertices(HighPerformanceTextVertexBufferObject.java:121)
at org.andengine.entity.text.Text.onUpdateVertices(Text.java:335)
at org.andengine.entity.text.Text.setText(Text.java:223)
Run Code Online (Sandbox Code Playgroud)