我正在为我的计算机科学课制作雅达利游戏“蜈蚣”的一个版本。我需要帮助为我的代码创建碰撞。我需要这样做,当子弹击中蜈蚣的一部分时,游戏会检测到它,被击中的部分就会消失。
这是一个相当宽泛的问题,但我会试着在一般意义上提供帮助。
你需要阅读冲突检测。
首先,你可能想把蜈蚣分成几个矩形。对于每个矩形,检查它是否与子弹相撞。
您可以考虑点-矩形冲突检测,检查点是否在矩形内。如果您的子弹是一个小点,这将起作用。
或者你可以考虑矩形-矩形冲突检测,在这里你检查两个矩形是否重叠。如果你的子弹大于一个点,使用这个。即使你的子弹是一个圆,你通常也可以逃脱这种冲突检测。
请尝试一些东西,如果你被卡住了,那么请发布一个MCVE来证明你被卡住了。祝你好运。
一个简单的实现如下:
1.指定一个数组,表示蜈蚣的像素位置
2.指定另一个数组,表示子弹的像素位置
3.根据游戏的采样率更新每个数组的值,并检查是否有任何重叠。(理想情况下将此作为单独的线程)
4.任何重叠都表示碰撞,因此有某种碰撞处理函数,它会删除蜈蚣命中的部分,该部分在重叠事件发生时触发。