2012-06-18 9 views
0

나는 공간 침략자와 같은 간단한 2d 슈팅 게임을 만들고 있는데, 같은 속도로 한쪽에서 다른쪽으로 수평 적으로 "원수"를 움직이기를 원합니다. 어떻게하면됩니까?2 차원 게임에서 움직이는 애니메이션

저는 이미 KeyListener으로 "영웅"을 위해 해왔지만 자동으로 수행하는 법을 모르겠습니다.

여기에 도움이되는 몇 가지 코드가 있습니다.

public SimpleEnemy(String linkimg, int x, int y, int life) { 
    super(linkimg, x, y); 
    this.life=life; 
    this.isMoving=false; 
} 

public void move() { 
    x += dx; 
    y += dy; 
} 

답변

0

게임 루프가 필요합니다. 예를 들어 결코 끝나지 않는 while 루프 (endless-loop)와 필요하다면 영웅의 위치를 ​​업데이트합니다.

while (true) { 
    // insert statement if move is needed here 
    move(); 
} 

꽤 기본적인 예입니다.하지만 분명히해야합니다.

자바를 사용한다고 가정하기 때문에 jgame과 같은 게임 프레임 워크를 살펴볼 수 있습니다. 이러한 프레임 워크는 비슷한 접근 방식을 취하고 작업하기가 더 편합니다.

편집 : 프로세서가 매우 빠른 요즘를 실행하고이 무한 루프 (초당 같은 1000 회) 시간의 소량 매우 매우 자주 실행됩니다

참고. 따라서이 루프의 실행 시간을 제한해야 할 수도 있습니다. 그렇지 않으면 영웅이 화면 밖에서 더 빨리 볼 수 있습니다.

수면 또는 이와 비슷한 방식으로 치료할 수 있습니다. 또한 내가 언급 한 이러한 프레임 워크에는이 제한이있을 것입니다.

+0

내가 꽤 이해할 수 있다면, 보드에 타이머가 도움이 될만한 것을 추가했습니다. timer = new Timer (5, this); \t \t \t \t timer.start(); 맞습니까? –

+0

타이머도이 작은 게임에서 일을합니다. 하나의 타이머 만 만들고이 게임에서 모든 게임 개체를 업데이트해야합니다. – apparat

+0

나는 무한 루프를 사용할 것이다. 하지만 내가 어디에 써야 할까? 내 페인트 방법으로? –

관련 문제