我如何在两个班级之间发生碰撞和反应?

时间:2011-05-31 00:01:32

标签: java swing awt collision-detection

我有一个Dot类型的数组,它带有一个Point和radius以及一个带有Point和size的矩形的Player。

如果播放器触及/碰撞阵列中的任何点,我会创建一个不断测试的方法。我在哪里编写代码,我需要传递什么作为参数?

这适用于玩家必须躲避点的游戏。到目前为止,我有类似的东西。

for (int i = 0; i < NUM_DOTS; i++) {
   if (player.intersects(dotPos[i])) {
      gameOver = true;
   }
}

4 个答案:

答案 0 :(得分:1)

您使用的是哪种前端技术?如果是Swing / AWT,它们会提供可以侦听更改的事件侦听器。对于Web应用程序,提交/ AJAX操作是可以查找更改的偶数。

如果你想要非常通用,你需要创建一个新的Thread并在run方法中包含你的监听器代码。

答案 1 :(得分:1)

如果允许您使用实现java.awt.Shape接口的类,那么定义的intersects()方法之一可能会有所帮助。

答案 2 :(得分:1)

另外,lerp听起来可能有帮助

答案 3 :(得分:1)

  

我在哪里编写代码,我需要传递什么作为参数?

在您的应用程序中,您将拥有一些事件处理程序来检测用户何时移动。根据游戏的性质,您可以在每次用户移动时进行检查。假设您使用了keyListener,在keypressed事件处理程序中,您可以使用必须确定冲突的for循环。

另外,你可能有一个可以移动点的线程(点移动吗?)。这是另一个可以放置代码以检查冲突的地方。