提问者:小点点

你好,我需要关于制作碰撞的建议,我在处理中制作了一个游戏


我正在为我的计算机科学课制作雅达利游戏“蜈蚣”的一个版本。我需要帮助为我的代码创建碰撞。我需要这样做,当子弹击中蜈蚣的一部分时,游戏会检测到它,被击中的部分就会消失。


共2个答案

匿名用户

这是一个相当宽泛的问题,但我会试着在一般意义上提供帮助。

你需要阅读冲突检测。

首先,你可能想把蜈蚣分成几个矩形。对于每个矩形,检查它是否与子弹相撞。

您可以考虑点-矩形冲突检测,检查点是否在矩形内。如果您的子弹是一个小点,这将起作用。

或者你可以考虑矩形-矩形冲突检测,在这里你检查两个矩形是否重叠。如果你的子弹大于一个点,使用这个。即使你的子弹是一个圆,你通常也可以逃脱这种冲突检测。

请尝试一些东西,如果你被卡住了,那么请发布一个MCVE来证明你被卡住了。祝你好运。

匿名用户

一个简单的实现如下:

1.指定一个数组,表示蜈蚣的像素位置

2.指定另一个数组,表示子弹的像素位置

3.根据游戏的采样率更新每个数组的值,并检查是否有任何重叠。(理想情况下将此作为单独的线程)

4.任何重叠都表示碰撞,因此有某种碰撞处理函数,它会删除蜈蚣命中的部分,该部分在重叠事件发生时触发。