我在场景中有 10 张图片作为 Sprite 。它们位于一个数组中。图片( Sprite )通过 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);
}
}
};
最佳答案
替换:
circles[i].setVisible(false);
与
this.setVisible(false);
关于android - Andengine Sprites 排列并触摸了哪一个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10325234/