0

ゲームを開発していますが、次のコードに問題があります。

        for(intReps = 0; intReps <=9; intReps++)
        {
     final Path path = new Path(2).to(sprBalls[intReps].getX(), sprBalls[intReps].getY()).to(sprBalls[intReps].getX(), -50);
//          sprBalls[intReps].registerEntityModifier(new LoopEntityModifier(new PathModifier(10, path, null, new IPathModifierListener() {
        final Path path1 = new Path(2).to(fly[intReps].getX(), fly[intReps].getY()+10).to(fly[intReps].getX(), -50);
        sprBalls[intReps].registerEntityModifier(new PathModifier(10, path, null, new IPathModifierListener() {

        @Override
        public void onPathStarted(PathModifier pPathModifier,
                IEntity pEntity) {
            // TODO Auto-generated method stub

        }

        @Override
        public void onPathWaypointStarted(PathModifier pPathModifier,
                IEntity pEntity, int pWaypointIndex) {
            // TODO Auto-generated method stub

        }

        @Override
        public void onPathWaypointFinished(PathModifier pPathModifier,
                IEntity pEntity, int pWaypointIndex) {
            // TODO Auto-generated method stub

        }

        @Override
        public void onPathFinished(PathModifier pPathModifier,
                IEntity pEntity) {
            Log.e("Msg","intReps : "+intReps); // Output is 10
            // TODO Auto-generated method stub
//              mScene.detachChild(pEntity);
                sprBalls[intReps].detachSelf();  // Error on this line.
//              pEntity.detachSelf();
//              sprBalls[intReps].dispose();
        }
        }, EaseSineInOut.getInstance()));
}

配列の長さは 10 です。エラー (sprBalls[intReps].detachSelf();) のある行で IndexOutOfBoundException を取得します。ループを 0 から 9 まで実行していますが、intReps の値を出力すると 10 と表示されるため、エラーが発生します. この問題のクリア方法がわかりません。10個のスプライトを含むスプライトの配列を作成したくないので、それらを一方の端から他方の端に移動したいのですが、パスが終了したら、それらをメモリからクリアしたいのです。

4

1 に答える 1