2

スプライトとしてシーンに10枚の画像があり、それらは配列になっています。画像(スプライト)はMoveModifierによってシーン上を移動しています。私はこれが欲しいです:私がどんな絵にも触れるとき、私が触れた絵は見えないはずです。19のため、コードが機能しません。line(circles [i] .setVisible(false);)eclipseは、i(variable)をfinalとして実行すると言います。配列のインデックスを変更する必要があるため、これを実行できません。僕にできる?

    final int totalCircleNumber=10;
    int circleNumber=0;
    private Sprite[] circles = new Sprite[totalCircleNumber];
    private Runnable mStartCircle = new Runnable() {
    public void run() {
        int i=circleNumber++;
        Scene scene = Level1Activity.this.mEngine.getScene();
        float startX = randomNumber.nextFloat()*(CAMERA_WIDTH);
        float startY = -64.0f;
        float finishX= randomNumber.nextFloat()*(CAMERA_WIDTH);
        float finishY= CAMERA_HEIGHT+64.0f;
        int j= randomNumber.nextInt(50);
        circles[i] = new Sprite(startX, startY, textRegCircle[j]){
            @Override
            public boolean onAreaTouched(final TouchEvent pAreaTouchEvent,final float pTouchAreaLocalX, final float pTouchAreaLocalY) {

                if(pAreaTouchEvent.isActionDown())
                {                                       
                     circles[i].setVisible(false);

                }                   
                return true;
                }
        };


        scene.registerTouchArea(circles[i]);


        circles[i].registerEntityModifier(
                (IEntityModifier) new SequenceEntityModifier (
                            new MoveModifier(velocityOfCircle, circles[i].getX(),  finishX, 
                                    circles[i].getY(), finishY)));

        scene.getLastChild().attachChild(circles[i]);
        if (circleNumber < totalCircleNumber){
            mHandler.postDelayed(mStartCircle,second);
        }
    }
 };
4

1 に答える 1

2

交換:

circles[i].setVisible(false);

this.setVisible(false);
于 2012-04-25T23:52:42.607 に答える