繁体   English   中英

Python-我无法弄清的蛇游戏错误

[英]Python - A bug with my snake game that I can't figure out

注意-此游戏是使用pygame制作的

我做了这个蛇游戏,除了一件事之外,其他所有东西都运转良好。 有时,当蛇吃掉苹果时,苹果不会重生。 我认为苹果在蛇内产卵时可能会发生这种情况,但我编写了一些代码来检查苹果是否会在蛇中产卵,如果是,请选择其他位置。 也许我做错了吗?

该错误位于您的food.py源代码文件中的get_food_position()函数中。 具体来说,以下几行会引起您的错误:

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)坐标(即其左上角)放置的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM