AndEngine GLES1 でライブ壁紙を作成していますが、lwp を起動すると、次のエラーが表示されることがあります: java.lang.IndexOutOfBoundsException: Invalid index 4 size is 4.複数のスプライトで?私のコードはうまく動作しません。再開後にすべてのスプライトがロードされるわけではありません:
//here I'm detach all sprites from scene
public void clearScene(Scene scene) {
mEngine.runOnUpdateThread(new Runnable() {
@Override
public void run() {
int l = getEngine().getScene().getLayerCount()-1;
while (l >= 0) {
while(getEngine().getScene().getLayer(l).getEntityCount() > 0){
getEngine().getScene().getLayer(l).removeEntity(0);
}
l--;
}
}
});
}
public void buildScene(Scene scene) {
//here I'm creating all sprites (as usual)
//below I add all sprites on the scene
mEngine.runOnUpdateThread(new Runnable() {
@Override
public void run() {
if (isNight) {
getEngine().getScene().getLayer(0).addEntity(mBG);
getEngine().getScene().getLayer(2).addEntity(mStars);
getEngine().getScene().getLayer(3).addEntity(mSun);
}
getEngine().getScene().getLayer(1).addEntity(mComet);
getEngine().getScene().getLayer(4).addEntity(mTree);
getEngine().getScene().getLayer(5).addEntity(mGrass2);
getEngine().getScene().getLayer(6).addEntity(mGrass1);
getEngine().getScene().registerPostFrameHandler(handler);
if (isNight)
getEngine().getScene().registerPostFrameHandler(sunTimer);
getEngine().getScene().registerPostFrameHandler(grass1Timer);
getEngine().getScene().registerPostFrameHandler(grass2Timer);
getEngine().getScene().registerPostFrameHandler(cometTimer);
}
});
}