在Java Game中改变对象的速度

时间:2012-11-29 01:25:15

标签: java

所以我用Java制作了一种太空游戏。目前,如果用户没有做任何事情,航天器将保持原位,并根据用户的键输入以不同方向以恒定速度移动。

我想改变它,以便当航天器移动时,当用户继续按下键时,航天器的速度加快。

在我的移动方法中,我目前有

public void move() {
    x += dx;
    y += dy;
}

我尝试过这样的事情

public void move() {
    x *= dx;
    y *= dy;
}

但不断乘以数值会使航天器移动速度过快。

还有另一种做法吗?

提前致谢。

1 个答案:

答案 0 :(得分:1)

您需要根据自己选择的键盘事件更改dx。所以:

  • 写一个listener来捕捉按键
  • 测试密钥以查看它是否是您想要的密钥(向上箭头,向下箭头等)
  • 相应地增加/减少dx(测试最小值/最大值)。你可以根据dx的当前值
  • 在这里做一些有趣的物理公式

然后,当太空飞船move s,dx大或小时,取决于用户敲击钥匙的次数。