【发布时间】:2012-07-29 21:01:51
【问题描述】:
我正在尝试开发一个小型 Java 2d 塔防游戏,但在尝试计算如何制造导弹时遇到了问题。经过数小时的搜索和测试,我更加困惑。
到目前为止我所拥有的是:
- 4 种情况,具体取决于炮塔所在的位置,具体取决于炮塔所在的单位(西北、东北、西南、东南)
- 我需要使用
Math.sqrt(x2, x1, y2, y1)计算当前目标与导弹发射塔之间的距离。 - 缩放导弹的 x 和 y。
现在我遇到的问题是如何将导弹的增量 x 和 y 缩放到目标,这样看起来很现实。数学不是我的强项,它在这里展示。下面我展示了我在塔的 SE 象限中拥有的东西。
public int distanceX, distanceY;
public double sep, scale;
if(xBullet < Screen.mobs[shotMob].x && yBullet < Screen.mobs[shotMob].y){
distanceX = Screen.mobs[shotMob].x- xBullet;
distanceY = Screen.mobs[shotMob].y - yBullet;
sep = Math.sqrt( (distanceX * distanceX) + (distanceY * distanceY));
scale = // This is the part I am confused about.
xBullet += distanceX * scale;
yBullet += distanceY * scale;
【问题讨论】:
-
您应该考虑使用/编写一个 Vector2D 类来简化向量计算。在游戏开发中你会非常需要它们。实现这样一个类应该很容易。
-
“数学不是我的强项” 看来编写自己的游戏物理可能有点问题。为什么不使用现有的游戏框架?
-
@cjr,你最后是怎么解决你的问题的?
-
这是几年前的事了,项目最终失败了,没有代码/记住我为解决问题所做的工作:D
标签: java math 2d game-physics