andengine library
으로 게임을하려고합니다.어떻게이 오류를 복구 할 수 있습니까? "java.lang.IndexOutOfBoundsException"
는 스프라이트 Enemy1Sprite
카메라의 상단에 도달 할 때, 나는 그것을 분리,이 예외가 발생합니다 :
java.lang.IndexOutOfBoundsException Invalid Index 12 size is 12
나는이 카메라에서 총알의 스프라이트를 만들고 유지하기 때문에 enemy1Sprite
를 분리해야합니다.
이것은 코드입니다.
클래스 enemy1 :
package es.uah.juegomentos;
import org.anddev.andengine.engine.handler.timer.ITimerCallback;
import org.anddev.andengine.engine.handler.timer.TimerHandler;
import org.anddev.andengine.entity.sprite.Sprite;
import org.anddev.andengine.opengl.texture.region.TextureRegion;
public class Enemy1 extends Sprite {
boolean abajo = true;
public Enemy1(TextureRegion pTextureRegion) {
super(0, 0, pTextureRegion);
this.setPosition(JuegoMentosActivity.RANDOM.nextInt(JuegoMentosActivity.CAMERA_WIDTH), -10);
TimerHandler Enemy1fire = new TimerHandler(0.75f, true, enemigo1fireCallback);
JuegoMentosActivity.getmGameScene().registerUpdateHandler(Enemy1fire);
}
@Override
protected void onManagedUpdate(float pSecondsElapsed) {
super.onManagedUpdate(pSecondsElapsed);
float y = getY();
if (y >= 275) {abajo = false;}
if (abajo) {y = y + pSecondsElapsed * 125.0f;}
else {y = y - pSecondsElapsed * 125.0f;}
this.setPosition(getX(), y);
if (getY()<-10){this.getParent().detachChild(this);}
}
ITimerCallback enemigo1fireCallback = new ITimerCallback(){
@Override
public void onTimePassed(TimerHandler pTimerHandler) {
bala1 mbala1;
mbala1 = new bala1(getX()+(64*1/2),getY()+64,JuegoMentosActivity.getMbala1Texture().getTextureRegion(),true);
JuegoMentosActivity.getmGameScene().attachChild(mbala1);
}
};
}
장면에 새로운 적을 만들기 :
//Creamos el sprite del enemigo uno
ITimerCallback enemigo1CreatorCallback = new ITimerCallback(){
@Override
public void onTimePassed(TimerHandler pTimerHandler) {
mEnemy1Sprite = new Enemy1(mEnemy1Texture.getTextureRegion());
mGameScene.attachChild(mEnemy1Sprite);
}
};
TimerHandler Enemy1Creator = new TimerHandler(3.0f, true, enemigo1CreatorCallback);
mGameScene.registerUpdateHandler(Enemy1Creator);
감사
예외를 실제로 throw하는 코드 부분을 게시하는 것이 고려 되었습니까? 그리고 여러분이 그곳에있는 동안, 완전한 * 예외 스택을? – Marcelo
덧붙여서, 빠른 Google 검색은 배열 인덱스가 자바 기반의 0이기 때문에 실제로 크기가 12 인 배열의 마지막 인덱스가 11임을 보여줍니다. – Marcelo