2012-11-29 32 views
0

所以我在Java中做了一種空間遊戲。目前,如果用戶沒有做任何事情,航天器就會停留在原地,並且根據用戶的鍵盤輸入以不同方向以恆定速度移動。在Java遊戲中改變對象的速度

我想改變它,以便當航天器移動時,隨着用戶繼續按下鍵,航天器的速度加速更快。

在我的移動方法,我現在有

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

我試着做這樣的事情

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

但不斷相乘值,使飛船移動太快。

是否有另一種方法來做到這一點?

在此先感謝。

+0

你可能想看看這裏:http://stackoverflow.com/questions/667034/simple-physics-based-movement – Doorknob

回答

1

看起來您需要根據您選擇的鍵盤事件更改dx。所以:

  • listener捕捉按鍵
  • 測試關鍵看它是否是你想要的(向上箭頭,向下箭頭等)
  • 遞增/遞減dx(測試最小/最大值)。根據dx的當前值,你可以在這裏做一些有趣的物理公式?

然後,當飛船move S,dx會或大或小,取決於有多少次用戶已經搗爛的關鍵。

+0

偉大的,完美的作品。謝謝! :) – minoue10

+0

Groovy寶貝。歡迎來到SO,這是一個非常酷的地方。 – Ben

+0

是的,這個網站是任何人都可以在軟件開發世界要求的最大的資源。 – minoue10