贪吃蛇游戏是一款经典的小游戏,玩家需要控制一条蛇在屏幕上移动,吃掉食物并避免撞到墙壁或自己的身体,下面我们将使用Python来实现一个简单的贪吃蛇游戏。
我们需要安装Python的pygame库,你可以在终端或命令提示符中输入以下命令来安装pygame:
pip install pygame
接下来,我们可以创建一个名为snake.py的文件,并在其中编写贪吃蛇游戏的代码。
import pygame import random 初始化pygame pygame.init() 设置窗口大小和标题 screen_width = 800 screen_height = 600 screen = pygame.display.set_mode((screen_width, screen_height)) pygame.display.set_caption("贪吃蛇游戏") 定义颜色变量 WHITE = (255, 255, 255) RED = (255, 0, 0) GREEN = (0, 255, 0) 定义蛇和食物的初始位置和大小 snake_size = 20 snake_pos = [100, 100] snake_vel = [2, 0] food_pos = [random.randint(0, screen_width//snake_size), random.randint(0, screen_height//snake_size)] food_vel = [0, 0] food_color = GREEN 游戏主循环 running = True while running: # 处理事件队列中的事件 for event in pygame.event.get(): if event.type == pygame.QUIT: # 如果点击了关闭按钮,则退出游戏循环 running = False elif event.type == pygame.KEYDOWN: # 如果按下了键盘按键,则改变蛇的移动方向 if event.key == pygame.K_LEFT and snake_vel[0] == 0: snake_vel[0] = -snake_size elif event.key == pygame.K_RIGHT and snake_vel[0] == 0: snake_vel[0] = snake_size elif event.key == pygame.K_UP and snake_vel[1] == 0: snake_vel[1] = -snake_size elif event.key == pygame.K_DOWN and snake_vel[1] == 0: snake_vel[1] = snake_size # 更新蛇的位置和方向,并检查是否吃到食物或撞到墙壁或自己的身体 new_head_pos = [snake_pos[0] + snake_vel[0], snake_pos[1] + snake_vel[1]] if new_head_pos[0] < 0 or new_head_pos[0] >= screen_width or new_head_pos[1] < 0 or new_head_pos[1] >= screen_height: # 如果撞到墙壁,则游戏结束 running = False for part in snake_parts: # 检查是否撞到自己的身体,如果是,则游戏结束 if part == new_head_pos: running = False if new_head_pos == food_pos: # 如果吃到食物,则将食物移动到随机位置,并增加蛇的长度和速度 food_pos = [random.randint(0, screen_width//snake_size), random.randint(0, screen_height//snake_size)] snake_parts.append(list(new_head_pos)) # 增加蛇的长度和速度,并将新头部位置添加到蛇的各个部分中 if len(snake_parts) > 3: snake_parts.pop(0) # 如果蛇的长度超过3,则移除最前面的部分,以保持蛇的长度为3个部分 snake_vel = [2, 0] # 重置蛇的移动速度为初始速度(2个单位/帧) snake_pos = new_head_pos # 将新的头部位置赋值给蛇的位置变量,以便在下一个循环中使用它来更新其他部分的位置和方向 snake = [new_head_pos] + snake_parts # 将新的头部位置添加到蛇的各个部分中,以构建完整的蛇体(包括新头部和所有其他部分) snake_parts = snake # 将
评论前必须登录!
注册