我正在尝试制作一款游戏,玩家拥有激光武器,他可以向物体射击以插入它们,或者向地板/墙壁射击以将自己从一个地方移动到另一个地方。 我的问题是,我不知道如何产生推力 - 当你射击时将你推向相反方向的力,以及插入其他物体的力(尽管一旦我知道如何计算前者就会更容易)。有人可以帮助我吗?
我掌握的信息:
Laser = startX, startY, endX, endY.
Player = x, y, width, height, xVel, yVel.
D = distance between the player and the laser end point.
如何计算xVel\yVel
差异?
最佳答案
您需要知道物体的质量和射弹的力量。 您可以扩展类或构建接口(interface),也可以将这些属性附加到 Laser 或播放器并在物理方法的签名中使用它。
就像评论所说的那样
force=-opposingForce
牛顿告诉我们力=质量*加速度。
为了简单起见,您可以使用速度来加速。
查找速度:
Distance = Startway-Endway
为了提高速度,您必须使用时间计时方法,该方法将按照您可以配置的时间间隔进行计数。
speed = Distance * time
现在你可以使用原力给对手带来负速度!
关于JAVA:计算二维光束武器的推力,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12622923/