2
나는 스프라이트로 장면에 10 장의 그림을 가지고있다. 그리고 그들은 배열에있다. 그림 (스프라이트)은 MoveModifier에 의해 장면 위로 움직이고있다. 나는 이것을 원한다 : 나는 어떤 그림을 만질 때, 내가 만진 그림은 보이지 않아야한다. 내 코드가 19 때문에 작동하지 않습니다. line (circleles [i] .setVisible (false);) 이클립스는 final (변수)을 사용한다고 말합니다. 배열의 인덱스를 변경해야하므로 할 수 없습니다. .내가 무엇을 할 수 있을지?Andengine Sprite가 배열로 하나를 만졌습니까?
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);
}
}
};