2016-05-23 43 views
0

我想讓我的播放器根據加速度和速度移動。這裏是速度是如何發現和播放移動:用Java編程加速

vel.x += acceleration.x; 
coordinates.x += vel.x; 

coordinates控制玩家爲。這裏是加速度的計算方法:

if(moveRight && !(acceleration.x >= .1f)){ 
    acceleration.x += .1f * Gdx.graphics.getDeltaTime(); 
} 

第一個問題:這是移動的球員,如果我要使用質量和力移動玩家的好方法。

我也試圖讓玩家前來基於關閉加速停止,這裏是上述代碼的擴展版本,我嘗試這樣做:

if(moveRight && !(acceleration.x >= .1f)){ 
    acceleration.x += .1f * Gdx.graphics.getDeltaTime(); 
}else if(!moveRight && (vel.x > 0)){ 
    acceleration.x -= .1f * Gdx.graphics.getDeltaTime(); 
} 

然而,這並未」工作。當我向前移動時,它會加速前進,然後當我放開時,它會停下來,然後向後射擊。

第二個問題:如何獲得上述代碼以我想要的方式工作。

感謝您對這幾個問題的任何幫助。

+2

我只是先說這個:'!(acceleration.x> = .1f)'是一種比簡單的'acceleration.x <.1f'更可讀的_loto恕我直言。第二:你能比「不工作」更具體嗎?輸出與你的期望有什麼不同? – Arc676

+0

@ Arc676我編輯了問題 – Luke

+0

'movementSpeed'是什麼? – Arc676

回答

0

看看這個question about friction。通過玩摩擦係數,你可以在運動中獲得令人愉快的緩慢下降。值得問一下,你是否知道現有的Java物理引擎可能會使整個事情變得更簡單:JBox2d僅用於2D,而JBullet是3D Bullet引擎的一個端口。