2013-11-09 129 views
-1

我正在做一個簡單的遊戲,需要做一些類似的水果忍者遊戲。我現在想使物體從底部飛屏幕右邊的曲線,像這樣的(但是從一個隨機位置,而不是中間):Java遊戲,計算曲線

enter image description here

因爲我有那麼一點在數學方面的知識我現在已經停留了很長一段時間了。我應該如何計算?

我以一種非常簡單和討厭的方式工作,但對象有一個靜態的速度,而不是很好的平滑,甚至我不知道我剛剛做了什麼。

回答

1

重力根據牛頓第一運動定律,以恆定速度的物體運動在一個恆定的方向,除非外力作用在它。這意味着每個對象具有由每個遊戲幀的矢量(由x方向和y方向上的速度表示)改變的位置(由X和Y座標表示)。當你跑步時,你已經在一半了。

for (GameObject object: gameObjects) { 
    object.position.x += object.vector.x; 
    object.position.y += object.vector.y; 
} 

但在這種情況下,您有一個影響對象的力:重力。重力是Y方向的恆定加速度。這意味着矢量每一幀的重力改變:

for (GameObject object: gameObjects) { 
    object.vector.y -= GRAVITY; 
    object.position.x += object.vector.x; 
    object.position.y += object.vector.y; 
} 
+0

但讓我們說開始y = -500,垂直速度(向量y)= 5和重力是2(任意數字,我不知道)。這意味着它會減去兩個並添加5個遊戲刻度,這將顯示穩定的速度3.如果速度或重力波動? – Gideon

+0

@Gideo將重力加到速度上,而不是位置上。在第一幀中,您將在該位置添加5,在第二個位置添加3,在第三位添加1,在第四位中您將減去1,在第六位中您將減去3,結果是恆定的向下加速度。 – Philipp

+0

對,它的工作!比預期的方式容易得多。謝謝您的幫助。 :) – Gideon

3

使用初始速度,發射角和加速度由於kinematics equations.

+0

這對我的簡單任務太多了,無論如何感謝。我將嘗試在我的個人項目中實現這一點! – Gideon