与图像碰撞(不规则形状)

时间:2015-12-01 01:04:06

标签: javascript html collision-detection collision flappy-bird-clone

我正在制作飞扬的小鸟,我把它从矩形改为我自己的图像等等。我似乎无法弄明白怎么做,所以当鸟(不规则形状)撞到矩形时,它会死掉。当它是一个奇怪的形状时,我不知道如何编码碰撞。这是一张图片。我画这样的鸟。

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

附件是游戏,鸟类和代码的图片。

Picture of the game

Picture of the game

2 个答案:

答案 0 :(得分: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

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

答案 1 :(得分:0)

您需要实施碰撞器。它们已经准备好在像Unity这样的游戏引擎中使用,但是如果你想自己实现它,请考虑以下几点:

  1. 为您的鸟类和墙壁创建碰撞器组件。 Collidiers是简化的形状,使得碰撞检测算法在CPU速度方面更容易,更快。例如,对于鸟类来说,它可以绕着它旋转,也可以用于墙壁的矩形。
  2. 在更新帧事件期间,检查鸟的边界圆是否与墙矩形相交。这是简单的数学,你可以在谷歌找到“圆形矩形交叉”的公式。
  3. 如果发现碰撞 - 你的鸟儿应该崩溃)
  4. 就是这样!