1

我目前正在制作飞扬的鸟,我将它从矩形更改为我自己的图像等。我似乎不知道该怎么做,所以当鸟(不规则形状)撞到矩形时,它就死了。当它是一个奇怪的形状时,我不知道如何为碰撞编码。这是一张图片。我画的是这样的鸟。

var img = document.getElementById("bird");
brush.drawImage(img, 20, this.y);

附上游戏图片、小鸟和代码。

游戏画面

游戏画面

4

2 回答 2

0

这是一本关于该主题的好书:2D 游戏碰撞检测:Thomas Schwarzl 对游戏中的碰撞几何的介绍

它可以在这里找到,例如 http://www.amazon.de/2D-Game-Collision-Detection-introduction/dp/1479298123/ref=sr_1_1?ie=UTF8&qid=1448932508&sr=8-1&keywords=2d+collision

如果您可以处理矩形碰撞,请尝试用矩形填充复杂图形的形状并测试它们中的每一个。在您的情况下,请尝试为鸟使用圆圈。

于 2015-12-01T01:22:43.510 回答
0

您需要实现对撞机。它们已准备好在 Unity 等游戏引擎中使用,但如果您想自己实现,请考虑以下事项:

  1. 为您的鸟和墙壁创建对撞机组件。碰撞器是简化的形状,以使碰撞检测算法在 CPU 速度方面更容易和更快。例如,对于鸟来说,它可以是围绕它的圆圈和你的墙壁的矩形。
  2. 在更新帧事件期间,检查您的鸟边界圈是否与墙壁矩形相交。这是简单的数学,你可以在谷歌中找到“圆矩形交点”的公式。
  3. 如果检测到碰撞 - 你的鸟应该坠毁)

而已!

于 2016-01-05T09:59:55.850 回答