JAVA:计算二维光束武器的推力

标签 java physics

我正在尝试制作一款游戏,玩家拥有激光武器,他可以向物体射击以插入它们,或者向地板/墙壁射击以将自己从一个地方移动到另一个地方。 我的问题是,我不知道如何产生推力 - 当你射击时将你推向相反方向的力,以及插入其他物体的力(尽管一旦我知道如何计算前者就会更容易)。有人可以帮助我吗?

我掌握的信息:

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/

相关文章:

javascript - 在 Raphael.js 中使用三次贝塞尔曲线制作旋转轮动画

physics - Box2d 中的摩擦

JavaScript:如果检测到碰撞则更改对象路径

unity3d - 以统一的初始冲量在抛物线路径上移动二维物理体

java - Apache Beam PubSubIO 写入

java - Java 中的 StringBufferInputStream 问题

java - JTabbedPane 鼠标悬停绘制问题

java - 使用新参数重复 WebClient 获取

java - Java 中的多线程,我希望 UI 和代码并行执行

sprite-kit - SpriteKit 中的物理接触