在Snake游戏中实现碰撞的问题

时间:2017-02-08 11:05:16

标签: python pygame

我正在尝试实现一个循环来检查蛇的头部(由列表snake_parts的头部表示)是否与蛇体的任何部分碰撞,这些部分是构成列表其余部分的矩形对象。但是一旦蛇的身体伸展,两个物体之间就会不断碰撞。鉴于蛇的身体是如何实现的,我无法看到它们是如何相交的,所以我不确定是什么导致了碰撞。

activityA.myFunction();

1 个答案:

答案 0 :(得分:0)

这样的调试程序非常困难,正如@WillemVanOnsem所说,我们无法快速理解您的代码。但根据我所看到的情况,我可以给你一些提示,以更强大的方式重写你的游戏:

  1. 您的电路板片段可以存在于二维阵列中。你的蛇可以在这个二维数组中表示为坐标的列表。您可以检测到当前的碰撞,即当您要弹出蛇形列表的最后一个元素并将下一个元素追加到列表的前面时。我很确定几年前我已成功使用这种方法用不到30行代码编写一个最小的蛇游戏。
  2. 做一些单元测试。将您的蛇以编程方式放在某个位置,您知道会导致意外碰撞,并尝试了解正在发生的事情。如果问题不明确,那就再问一次。