我正在製作一個簡單的遊戲,就像馬里奧一樣,角色固定在一個位置,地面向左移動,給人物移動的幻覺。地面是由通過左上角和右下角定義的矩形塊的座標:在簡單的2D遊戲中實現重力
private int surfaceMatrix[][] = {
{0, 100, 300, 0} // block having 100 height and 300 width
};
跳只是改變而移動留下的表面特徵的y座標,所以跳的樣子逆轉V
信。
的代碼的其餘部分 - 動畫,移動精靈 - 非常相似,http://zetcode.com/tutorials/javagamestutorial/movingsprites/
我想跳更真實的,所以我的問題是 - 我怎麼能在這裏實現重力?我不得不使用地面上的DX,並且角色要做到這一點,那好嗎?
這裏的速度會是什麼?像素每秒...?
如何做到這一點?
你現在跳躍時如何計算角色的高度?它是基於像素嗎?如果是的話,你如何支持不同的決議?我假設你計算出相對於地面的位置,然後根據實際分辨率進行最終計算。如果是這樣的話,那麼隨着時間的推移,重力僅僅是一個比高度1更復雜的下降函數。 – nablex
嗯,現在分辨率是固定的,人物的高度也是如此。 – khernik
如果您不計算像素本身,但使用相對高度,則允許更改分辨率是微不足道的。但是如果你使用的是固定分辨率,你知道他跳得有多高(比如說50個像素),我假設你在他摔倒的時候多次抽出他,目前使用固定的時間間隔(比如5px,這取決於你的刷新率)默認情況下一個稍微複雜一些的方法來計算實際的下降,而不是固定的5px,比如說「5px +(iteration * 5px)」,當然這太簡單了,但是你明白了這個想法 – nablex