화면 아날로그 컨트롤을 사용하여 한 명의 플레이어가 화면에서 움직이는 게임을 개발 중입니다.
적의 스프라이트가 주기적으로 추가되고 플레이어쪽으로 이동합니다. 아래의 코드를 사용하여 적을 추가하고 있습니다. 나는 모든 적 방향을 변경하고 플레이어쪽으로 이동해야합니다 같은 결과를 원하는 아날로그 제어와 플레이어를 이동할 때AndEngine의 스프라이트 무브먼트에 대한 도움이 필요합니다.
public void addTarget() {
Random rand = new Random();
float x = (camera.getWidth() + resourcesManager.evilone_region.getWidth());
float minY = resourcesManager.evilone_region.getHeight();
int maxY = (int) (camera.getHeight() - resourcesManager.evilone_region
.getHeight());
int rangeY = (int) (maxY - minY);
float y = rand.nextInt(rangeY) + minY;
target = new AnimatedSprite(x, y, resourcesManager.evilone_region.deepCopy(),vbom){
@Override
protected void preDraw(GLState pGLState, Camera pCamera)
{
super.preDraw(pGLState, pCamera);
pGLState.enableDither();
}
@Override
protected void onManagedUpdate(float pSecondsElapsed)
{
super.onManagedUpdate(pSecondsElapsed);
if(isPlayerMoved){
this.registerEntityModifier(new MoveModifier(2, target.getX(),player.getX(),target.getY(),player.getY()));
}
}
};
attachChild(target);
target.setCullingEnabled(true);
final long[] PLAYER_ANIMATE = new long[] {100, 100, 100};
target.animate(PLAYER_ANIMATE, 0, 2, true);
int minDuration = 2;
int maxDuration = 4;
int rangeDuration = maxDuration - minDuration;
int actualDuration = rand.nextInt(rangeDuration) + minDuration;
mod = new MoveModifier(actualDuration, target.getX(),player.getX(),target.getY(),player.getY());
target.registerEntityModifier(mod.deepCopy());
TargetsToBeAdded.add(target);
}
private void createSpriteSpawnTimeHandler() {
float mEffectSpawnDelay = 1f;
eviloneTimerHandler = new TimerHandler(mEffectSpawnDelay, true,
new ITimerCallback() {
@Override
public void onTimePassed(TimerHandler pTimerHandler) {
if(isPaused){
}else{
//resourcesManager.targetbird.play();
addTarget();
}
}
});
engine.registerUpdateHandler(eviloneTimerHandler);
}
이제 문제입니다. 그러나이 코드를 사용하면 모든 적들이 첫 번째로 추가 된 적을 향해 이동하고 모두 모두 서로 붕괴되는 것처럼 매우 이상하게 보이는 플레이어쪽으로 이동합니다.
도와주세요.