1

我目前正在制作飞扬的小鸟,并将其从仅矩形改变为我自己的图像等。我似乎无法弄清楚如何做到这一点,所以当鸟(不规则形状)碰到矩形时,它会死亡。当它是一个奇怪的形状时,我不知道如何编码碰撞。这是一张图片。我画这样的鸟。与图像碰撞(不规则形状)

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

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

Picture of the game

Picture of the game

+0

[不规则形状碰撞检测]的可能重复(http://stackoverflow.com/questions/11367991/collision-detection-of-irregular-shapes) – djechlin

回答

0

你需要实现对撞机。他们准备在游戏引擎,统一使用,但如果你想自己实现考虑以下几点:

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

这就是它!

0

这是一本好书,关于这个问题: 2D游戏的碰撞检测:由托马斯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

如果你能处理矩形碰撞,试着用矩形填充你复杂的图形的形状并测试它们中的每一个。在你的情况下,尝试使用一个圆形的鸟。

+0

尽管此链接可能回答问题,但最好包含这里的答案的基本部分,并提供参考链接。如果链接页面更改,则仅链接答案可能会失效。 - [来自评论](/ review/low-quality-posts/10393805) –

+0

我编辑了这本书的标题。 – REISWOLF