Python - 我的蛇游戏的一个错误,我无法弄清楚

时间:2014-11-16 20:47:06

标签: python pygame 2d-games

注意 - 此游戏是使用pygame

制作的

我做了这个蛇游戏,除了一件事,一切都很完美。 有时,当蛇吃苹果时,苹果不会再产卵。我认为这可能发生在苹果在蛇体内产生但我写了一些代码来检查苹果是否会在蛇中产卵,如果是这样的话,选择一个不同的位置。也许我做错了?!

1 个答案:

答案 0 :(得分:0)

该错误位于get_food_position()函数的food.py源代码文件中。具体而言,以下行导致您的错误:

self.apple_pos = (random.randint(self.WIDTH-self.WIDTH, self.WIDTH), random.randint(self.HEIGHT-self.HEIGHT, self.HEIGHT))

当您观察到苹果没有重新产卵时,那是因为您将元组self.apple_pos设置为在可视区域之外。您必须记住苹果的高度和宽度,因此无法在可视区域的极端处绘制。您可以通过强行设置self.apple_pos = (1280,720),然后再将其重新设置为(1260,700)来证明这一点。

以下对代码的更正解决了问题:

self.apple_pos = (random.randint(0, self.WIDTH-20), random.randint(0, self.HEIGHT-20))

我选择了幻数20,因为你的苹果似乎有20x20像素的区域。

你会注意到在(0,0)处绘制苹果没有这个问题,因为苹果是由它自己的(0,0)坐标(左上角)放置的。