내 스프라이트를 장면에서 디 텍트 할 때 인덱스가 범위를 벗어납니다. 가능한 한 "gameclass"를 "깨끗하게"유지하기 위해 Sprite 클래스를 제거하고 싶습니다.스프라이트를 제거 할 때 Andengine 인덱스가 범위를 벗어납니다.
여기 내가 스프라이트를 만드는 곳입니다. 애니메이션 당신이 mEngine runOnUpdateThread 내부없이 스프라이트를 분리 할 때 일반적인 문제입니다 yeah.It
public class Explosion extends AnimatedSprite {
private final Explosion self;
public Explosion(float pX, float pY, VertexBufferObjectManager pVertexBufferObjectManager,
boolean loopAnimation, long frameDurationEach) {
super(pX, pY, regExplosion, pVertexBufferObjectManager);
this.self = this;
this.animate(frameDurationEach, loopAnimation, new IAnimationListener() {
@Override
public void onAnimationStarted(AnimatedSprite pAnimatedSprite,
int pInitialLoopCount) {
}
@Override
public void onAnimationLoopFinished(AnimatedSprite pAnimatedSprite,
int pRemainingLoopCount, int pInitialLoopCount) {
}
@Override
public void onAnimationFrameChanged(AnimatedSprite pAnimatedSprite,
int pOldFrameIndex, int pNewFrameIndex) {
}
@Override
public void onAnimationFinished(AnimatedSprite pAnimatedSprite) {
self.clearUpdateHandlers();
self.detachSelf();
self.dispose();
}
});
}
나 자신을 알아 냈습니다. 나는 엔진을 폭발에 대한 논쟁으로 돌 렸는데, 폭발은 분리 스레드를 실행하고 업데이트 스레드에서 처리합니다. 그러나, 나는 폭발물이 엔진을 알아야한다고 생각하지 않기 때문에이 해결책을 좋아하지 않는다. 그래서 당신이 더 좋은 점을 알고 있다면, – Flexo