2012-09-27 17 views
1

我想製作一個遊戲,玩家有一個激光武器,他可以在物體上進行射擊以推動它們,或者在地板/牆壁上拍攝以將自己從地方移動放置。 我的問題是,我無法弄清楚如何做出回推 - 當你射擊時推動你朝相反方向的力量,以及推動其他物體的力量(儘管一旦我知道如何計算它會更容易前者)。有誰能夠幫助我?JAVA:在2D中計算從波束武器的推回

的信息,我有:

Laser = startX, startY, endX, endY. 
Player = x, y, width, height, xVel, yVel. 
D = distance between the player and the laser end point. 

如何計算xVel\yVel區別?

+5

牛頓來救援! PushbackForce = -PushForce – SJuan76

+1

激光有很小的推回力。它們不像推彈回彈那樣是射彈武器。 –

+0

[這](http://en.wikipedia.org/wiki/Momentum#Conservation)是一個很好的參考... –

回答

1

你需要知道物體的質量和拋射體的力量。 您可以擴展一個類或構建一個接口,或者您可以將這些屬性附加到激光或播放器,並在物理方法的簽名中使用它。

像評論說你

力= -opposingForce

牛頓告訴我們,力=質量*加速度。

您可以使用速度進行簡化加速。

找到速度:

距離= Startway-Endway

對於你必須使用一個時間刻度的方法,將在您可以配置的時間間隔計算速度。

速度=距離*時間

現在你可以使用武力給予負速度給對手!