2012-06-18 99 views
0

我正在製作一個簡單的2D空間入侵者射擊遊戲,並且我想僅以相同的速度從一側向另一側水平移動我的「敵人」。 我該怎麼做?在二維遊戲中移動動畫

我已經爲我的「英雄」做了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 (true) { 
    // insert statement if move is needed here 
    move(); 
} 

這是一個非常基本的例子,但它應該說清楚。

由於我假設你正在使用java,你可以看看一些遊戲框架,如jgame。這些框架採用了類似的方法,使其更加舒適。

編輯:

注意,處理器運行速度極快的這些天,這無盡的循環將少量很經常運行的時間(每秒像1000+次)。所以你可能不得不限制這個循環的執行時間,否則你的英雄會更快地在屏幕之外。

你可以通過睡眠或類似的東西來實現這一點。我提到的這些框架在船上也會有這個限制。

+0

如果我已經非常瞭解,我添加了一些可能有所幫助的東西,例如timer = new Timer(5,this)中的定時器, ; \t \t \t \t timer.start(); 對不對? –

+0

一個計時器也可以做這個小遊戲的工作。請注意,您只創建一個計時器並更新此計時器中的所有遊戲對象。 – apparat

+0

好的,我將使用無限循環。但是我必須把它放在哪裏?進入我的繪畫方法? –