在使用sprite工作表时,我在andengine中不断收到这个错误。
有人能解释一下我的意思吗?
08-30 13:31:50.053: E/AndroidRuntime(9643): java.lang.ArrayIndexOutOfBoundsException: length=12; index=12
这是错误发生的位置。
pItem.setCurrentTileIndex(MathUtils.random(0, pItem.getTileCount()));
我的猜测是MathUtils.random
是包含的,这意味着在您的示例(大小为12的数组)中,它将生成一个从0到12的数字,包括12。尝试将代码更改为:
pItem.setCurrentTileIndex(MathUtils.random(0, pItem.getTileCount() - 1));
尝试:pItem.setCurrentTileIndex(MathUtils.random(0, pItem.getTileCount()-1));
getTileCount()
可能返回瓦片的数量,所以索引将是减1。