中导入pygame_五分钟学会怎么用Pygame做一个简单的贪吃蛇

中导入pygame_五分钟学会怎么用Pygame做一个简单的贪吃蛇

留言有礼,每天都会从留言中选出三位抽取6.6元红包

Pygame 是一组用来开发游戏软件的 Python 程序模块,基于 SDL 库的基础上开发。我们今天将利用它来制作一款大家基本都玩过的小游戏——贪吃蛇。

中导入pygame_五分钟学会怎么用Pygame做一个简单的贪吃蛇

一、需要导入的包

import&#xA0;pygame<br>import&#xA0;time<br>import&#xA0;random
  • pygame:获取图形组件构建游戏
  • time:主要用来设置帧率
  • random:主要用来设置食物的刷新位置

二、窗口界面设置

首先我们初始化游戏,建立一个窗口

pygame.init()

然后我们定义游戏中需要使用的颜色,在这个示例中,我们定义了六种颜色

white = (255, 255, 255)<br>yellow = (255, 255, 102)<br>black = (0, 0, 0)<br>red = (213, 50, 80)<br>green = (0, 255, 0)<br>blue = (50, 153, 213)

接下来,我们设置窗口的尺寸和标题栏,在这个示例中,我们将窗口设置为800*600

dis_width = 800<br>dis_height = 600<br><br>dis = pygame.display.set_mode((dis_width, dis_height))<br>pygame.display.set_caption('&#x8D2A;&#x5403;&#x86C7;&#x6E38;&#x620F;')

三、游戏中的变量

初始化一个clock变量,使用开头导入的time包。这个变量将用来处理游戏的帧率。

clock = pygame.time.Clock()

定义蛇的速度与大小。可以随意更改,选择你适应的即可

snake_block = 10<br>snake_speed = 12

设置分数显示和其他信息的字体大小与样式。

font_style = pygame.font.SysFont("bahnschrift", 25)<br>score_font = pygame.font.SysFont("comicsansms", 35)

四、设置功能函数

定义三个辅助功能函数,实现以下功能。

  • 显示计算分数
  • 蛇的参数
  • 其他消息显示,比如失败后的重玩提示。

首先,定义一个计算分数的函数

def&#xA0;Your_score(score):<br>&#xA0;&#xA0;&#xA0;&#xA0;value = score_font.render("Your Score: "&#xA0;+ str(score), True, yellow)<br>&#xA0;&#xA0;&#xA0;&#xA0;dis.blit(value, [0, 0]

接下来定义蛇的参数。我们定义了蛇的颜色,位置与大小,即snake_block。我们额外定义了一个snake_list作为输入,将在下面用到。

def&#xA0;our_snake(snake_block, snake_list):<br>&#xA0;for&#xA0;x in&#xA0;snake_list:<br>&#xA0;pygame.draw.rect(dis, black, [x[0], x[1], snake_block, snake_block])

最后定义一个消息显示函数,这个辅助函数将msg和颜色作为输入参数。我们将设置字体,然后以所需的颜色显示信息。我们需要指定信息在游戏中显示的位置。

def&#xA0;message(msg, colour):<br>&#xA0;mesg = font_style.render(msg, True, colour)<br>&#xA0;dis.blit(mesg, [width / 6, height / 3])

五、构建游戏

开始建立游戏循环,让游戏运行并能响应键盘输入。首先定义两个变量game_over和game_close,用来描述游戏的状态。第一个提示游戏是否结束,下一个定义是否关闭游戏。都定义为false

game_over = False<br>game_close = False

下一步,我们将定义x1和y1来表示蛇在游戏中的位置。我们分别初始化它们的宽度/2和高度/2。同时,我们将定义变量x1_change和y1_change来表示蛇的位置根据用户提供的输入而发生的变化。

x1 = width / 2<br>y1 = height / 2<br><br>x1_change = 0<br>y1_change = 0

另外,我们还需要定义snake_List和snake_length变量,分别存储蛇的所有头部位置和蛇的长度。

snake_List = []<br>snake_length = 1

吃掉食物新食物产生的位置,用random模块来实现。

foodx = round(random.randrange(0, width &#x2014; snake_block) / 10.0) * 10.0<br>foody = round(random.randrange(0, height &#x2014; snake_block) / 10.0) * 10.0

接下来,我们将启动一个循环,直到game_over变成True为止。

在这个循环中,我们将首先定义在 game_close 变量为 True 时要执行的指令。

下面的代码将帮助我们处理game_close等于True时的情况。

while&#xA0;game_close == True:<br>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;dis.fill(blue)<br>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;message("Lost! q quit or p again", red)<br>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;Your_score(Length_of_snake - 1)<br>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;pygame.display.update()<br><br>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;for&#xA0;event in&#xA0;pygame.event.get():<br>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;if&#xA0;event.type == pygame.KEYDOWN:<br>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;if&#xA0;event.key == pygame.K_q:<br>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;game_over = True<br>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;game_close = False<br>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;if&#xA0;event.key == pygame.K_p:<br>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;gameLoop()

如你所见,我们已经定义了很多东西。我们用蓝色填充显示(你当然可以选择你的颜色)。游戏结束时,我们显示一条消息,显示该用户输掉了游戏,我们应该询问用户是想再玩一次还是退出游戏。

我们也会显示用户的分数,等于蛇的长度减1。每当我们的蛇吃到食物时,我们都会更新1分。

现在,为了接受用户关于他是想再玩一次还是退出游戏的输入,我们定义了一个for-loop。当我们要求用户输入关于他的决定时,我们定义了输入的可能性。

如果用户输入的是’p’,那么我们将继续我们的游戏循环。如果用户输入的是’q’,那么我们就需要退出游戏。

现在,在处理完game_close的条件后,我们将定义所有需要的步骤,这将使我们的蛇根据用户的输入移动。我们将接受W、A、S、D和上、下、左、右键组合来进行游戏。你可以自由选择你的按键来玩游戏。

for&#xA0;event in&#xA0;pygame.event.get():<br>&#xA0;if&#xA0;event.type == pygame.QUIT:<br>&#xA0;&#xA0;&#xA0;game_over = True<br>&#xA0;if&#xA0;event.type == pygame.KEYDOWN:<br>&#xA0;&#xA0;&#xA0;if&#xA0;event.key == pygame.K_LEFT or&#xA0;event.key == pygame.K_a:<br>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;x1_change = -snake_block<br>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;y1_change = 0<br>&#xA0;&#xA0;&#xA0;elif&#xA0;event.key == pygame.K_RIGHT or&#xA0;event.key == pygame.K_d:<br>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;x1_change = snake_block<br>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;y1_change = 0<br>&#xA0;&#xA0;&#xA0;elif&#xA0;event.key == pygame.K_UP or&#xA0;event.key == pygame.K_w:<br>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;y1_change = -snake_block<br>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;x1_change = 0<br>&#xA0;&#xA0;&#xA0;elif&#xA0;event.key == pygame.K_DOWN or&#xA0;event.key == pygame.K_s:<br>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;y1_change = snake_block<br>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;x1_change = 0

在上面的代码中,我们根据用户提供的输入改变x1_change和y1_change的值。同时,如果用户想退出游戏,我们也会退出游戏。

接下来,我们将定义输掉游戏的条件。同时,我们借助x1_change和y1_change更新x1和y1的值。我们还将用蓝色填充整个显示屏,并通过在显示屏中传递蛇和食物的出现位置来绘制它们。

if&#xA0;x1 >= width or&#xA0;x1 < 0&#xA0;or&#xA0;y1 >= height or&#xA0;y1 < 0:<br>&#xA0;&#xA0;&#xA0;&#xA0;game_close = True<br>&#xA0;x1 += x1_change<br>&#xA0;y1 += y1_change<br>&#xA0;dis.fill(blue)<br>&#xA0;pygame.draw.rect(dis, green, [foodx, foody, snake_block, snake_block])

接下来,我们定义一个名为snake_Head的列表,它将在每次迭代后存储蛇头的值。我们将x1和y1的值追加到它上面。然后,我们将该snake_Head追加到snake_List中。

然后我们检查条件检查snake_List的长度是否大于snake_length。如果是,则删除snake_List中的第一个元素。

然后,我们检查当前的snake_Head是否等于snake_List中的任何一个元素,除了新增加的那个元素,也就是被检查的snake_Head。如果是,那么我们就关闭游戏,玩家就输了。

这是因为在snake_List中出现snake_Head意味着它曾经被添加到snake_List中,再次找到相同的值意味着蛇碰到了自己。所以,此时游戏结束。

然后我们调用函数our_snake和Your_score(前面定义的),并将所需参数传递给这些函数,以显示更新后的蛇和玩家的分数。

&#xA0;snake_Head = []<br>&#xA0;snake_Head.append(x1)<br>&#xA0;snake_Head.append(y1)<br>&#xA0;snake_List.append(snake_Head)<br>&#xA0;if&#xA0;len(snake_List) > snake_length:<br>&#xA0;&#xA0;&#xA0;del&#xA0;snake_List[0]<br><br>&#xA0;for&#xA0;x in&#xA0;snake_List[:-1]:<br>&#xA0;&#xA0;&#xA0;if&#xA0;x == snake_Head:<br>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;game_close = True<br><br>&#xA0;our_snake(snake_block, snake_List)<br>&#xA0;Your_score(snake_length &#x2014; 1)<br><br>&#xA0;pygame.display.update()

接下来,我们将在蛇吃完前一个食物后,形成新的食物。所以,为了做到这一点,我们需要在显示屏中找到一个新的随机位置来生成食物。另外,由于蛇刚吃完食物,我们需要将蛇的长度增加1。

最后,我们将蛇的速度作为参数给clock.tick,作为游戏的帧率。

if&#xA0;x1 == foodx and&#xA0;y1 == foody:<br>&#xA0;&#xA0;foodx = round(random.randrange(0, width &#x2014; snake_block) / 10.0) * 10.0<br>&#xA0;&#xA0;foody = round(random.randrange(0, height &#x2014; snake_block) / 10.0) * 10.0<br>&#xA0;&#xA0;snake_length += 1<br><br>clock.tick(snake_speed)

功能已经完全实现,我们最后退出游戏,并再次调用游戏循环

pygame.quit()<br>&#xA0;&#xA0;&#xA0;&#xA0;quit()<br><br>gameLoop()

六、完整代码

import&#xA0;pygame<br>import&#xA0;time<br>import&#xA0;random<br><br>pygame.init()<br><br>white = (255, 255, 255)<br>yellow = (255, 255, 102)<br>black = (0, 0, 0)<br>red = (213, 50, 80)<br>green = (0, 255, 0)<br>blue = (50, 153, 213)<br><br>dis_width = 800<br>dis_height = 600<br><br>dis = pygame.display.set_mode((dis_width, dis_height))<br>pygame.display.set_caption('&#x8D2A;&#x5403;&#x86C7;')<br><br>clock = pygame.time.Clock()<br><br>snake_block = 10<br>snake_speed = 15<br><br>font_style = pygame.font.SysFont("bahnschrift", 25)<br>score_font = pygame.font.SysFont("comicsansms", 35)<br><br>def&#xA0;Your_score(score):<br>&#xA0;&#xA0;&#xA0;&#xA0;value = score_font.render("Score: "&#xA0;+ str(score), True, yellow)<br>&#xA0;&#xA0;&#xA0;&#xA0;dis.blit(value, [0, 0])<br><br>def&#xA0;our_snake(snake_block, snake_list):<br>&#xA0;&#xA0;&#xA0;&#xA0;for&#xA0;x in&#xA0;snake_list:<br>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;pygame.draw.rect(dis, black, [x[0], x[1], snake_block, snake_block])<br><br>def&#xA0;message(msg, color):<br>&#xA0;&#xA0;&#xA0;&#xA0;mesg = font_style.render(msg, True, color)<br>&#xA0;&#xA0;&#xA0;&#xA0;dis.blit(mesg, [dis_width / 6, dis_height / 3])<br><br>def&#xA0;gameLoop():<br>&#xA0;&#xA0;&#xA0;&#xA0;game_over = False<br>&#xA0;&#xA0;&#xA0;&#xA0;game_close = False<br><br>&#xA0;&#xA0;&#xA0;&#xA0;x1 = dis_width / 2<br>&#xA0;&#xA0;&#xA0;&#xA0;y1 = dis_height / 2<br><br>&#xA0;&#xA0;&#xA0;&#xA0;x1_change = 0<br>&#xA0;&#xA0;&#xA0;&#xA0;y1_change = 0<br><br>&#xA0;&#xA0;&#xA0;&#xA0;snake_List = []<br>&#xA0;&#xA0;&#xA0;&#xA0;Length_of_snake = 1<br><br>&#xA0;&#xA0;&#xA0;&#xA0;foodx = round(random.randrange(0, dis_width - snake_block) / 10.0) * 10.0<br>&#xA0;&#xA0;&#xA0;&#xA0;foody = round(random.randrange(0, dis_height - snake_block) / 10.0) * 10.0<br><br>&#xA0;&#xA0;&#xA0;&#xA0;while&#xA0;not&#xA0;game_over:<br><br>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;while&#xA0;game_close == True:<br>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;dis.fill(blue)<br>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;message("Lost! q quit or p again", red)<br>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;Your_score(Length_of_snake - 1)<br>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;pygame.display.update()<br><br>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;for&#xA0;event in&#xA0;pygame.event.get():<br>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;if&#xA0;event.type == pygame.KEYDOWN:<br>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;if&#xA0;event.key == pygame.K_q:<br>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;game_over = True<br>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;game_close = False<br>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;if&#xA0;event.key == pygame.K_p:<br>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;gameLoop()<br><br>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;for&#xA0;event in&#xA0;pygame.event.get():<br>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;if&#xA0;event.type == pygame.QUIT:<br>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;game_over = True<br>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;if&#xA0;event.type == pygame.KEYDOWN:<br>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;if&#xA0;event.key == pygame.K_LEFT or&#xA0;event.key == pygame.K_a:<br>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;x1_change = -snake_block<br>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;y1_change = 0<br>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;elif&#xA0;event.key == pygame.K_RIGHT or&#xA0;event.key == pygame.K_d:<br>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;x1_change = snake_block<br>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;y1_change = 0<br>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;elif&#xA0;event.key == pygame.K_UP or&#xA0;event.key == pygame.K_w:<br>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;y1_change = -snake_block<br>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;x1_change = 0<br>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;elif&#xA0;event.key == pygame.K_DOWN or&#xA0;event.key == pygame.K_s:<br>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;y1_change = snake_block<br>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;x1_change = 0<br><br>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;if&#xA0;x1 >= dis_width or&#xA0;x1 < 0&#xA0;or&#xA0;y1 >= dis_height or&#xA0;y1 < 0:<br>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;game_close = True<br>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;x1 += x1_change<br>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;y1 += y1_change<br>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;dis.fill(blue)<br>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;pygame.draw.rect(dis, green, [foodx, foody, snake_block, snake_block])<br>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;snake_Head = []<br>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;snake_Head.append(x1)<br>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;snake_Head.append(y1)<br>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;snake_List.append(snake_Head)<br>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;if&#xA0;len(snake_List) > Length_of_snake:<br>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;del&#xA0;snake_List[0]<br><br>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;for&#xA0;x in&#xA0;snake_List[:-1]:<br>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;if&#xA0;x == snake_Head:<br>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;game_close = True<br><br>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;our_snake(snake_block, snake_List)<br>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;Your_score(Length_of_snake - 1)<br><br>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;pygame.display.update()<br><br>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;if&#xA0;x1 == foodx and&#xA0;y1 == foody:<br>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;foodx = round(random.randrange(0, dis_width - snake_block) / 10.0) * 10.0<br>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;foody = round(random.randrange(0, dis_height - snake_block) / 10.0) * 10.0<br>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;Length_of_snake += 1<br><br>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;clock.tick(snake_speed)<br><br>&#xA0;&#xA0;&#xA0;&#xA0;pygame.quit()<br>&#xA0;&#xA0;&#xA0;&#xA0;quit()<br><br>gameLoop()

就不写注释啦,讲解都在上面了。

中导入pygame_五分钟学会怎么用Pygame做一个简单的贪吃蛇

END昨日留言中奖名单

中导入pygame_五分钟学会怎么用Pygame做一个简单的贪吃蛇

中导入pygame_五分钟学会怎么用Pygame做一个简单的贪吃蛇

以上三位小伙伴,加小编微信:yumeko370 领取小小红包一份哦!

文章精选

1、包邮送60本,这中奖率绝了!

2、赚疯了!转手立赚800+?了解一下大佬的「抢茅台脚本」

3、用python对图片批量压缩和格式转换

中导入pygame_五分钟学会怎么用Pygame做一个简单的贪吃蛇

转发,点赞,在看,安排一下?

Original: https://blog.csdn.net/weixin_34345599/article/details/112674546
Author: 心理咨询师林博宇
Title: 中导入pygame_五分钟学会怎么用Pygame做一个简单的贪吃蛇

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/783314/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球