1

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);
                 }
        });
}
4

0 に答える 0