Python贪吃蛇游戏代码示例 - 从零开始编写经典游戏
使用Python编写贪吃蛇游戏:简单代码示例与教程
想要学习如何使用Python编写经典的贪吃蛇游戏吗?这篇文章为你提供了一个简单的代码示例,并附带详细注释,帮助你理解游戏逻辑,快速入门游戏开发。
代码示例:pythonimport pygameimport random
游戏初始化pygame.init()
游戏窗口大小window_width = 480window_height = 480
颜色定义black = pygame.Color(0, 0, 0)white = pygame.Color(255, 255, 255)red = pygame.Color(255, 0, 0)green = pygame.Color(0, 255, 0)
设置游戏窗口game_window = pygame.display.set_mode((window_width, window_height))pygame.display.set_caption('贪吃蛇')
蛇的初始位置snake_position = [100, 50]snake_body = [[100, 50], [90, 50], [80, 50]]
食物的初始位置food_position = [random.randrange(1, (window_width // 10)) * 10, random.randrange(1, (window_height // 10)) * 10]food_spawn = True
蛇的初始方向direction = 'RIGHT'change_to = direction
控制游戏速度clock = pygame.time.Clock()snake_speed = 15
游戏结束标志game_over = False
游戏主循环while not game_over: # 处理事件 for event in pygame.event.get(): if event.type == pygame.QUIT: game_over = True elif event.type == pygame.KEYDOWN: if event.key == pygame.K_RIGHT or event.key == ord('d'): change_to = 'RIGHT' if event.key == pygame.K_LEFT or event.key == ord('a'): change_to = 'LEFT' if event.key == pygame.K_UP or event.key == ord('w'): change_to = 'UP' if event.key == pygame.K_DOWN or event.key == ord('s'): change_to = 'DOWN'
# 防止蛇倒退移动 if change_to == 'RIGHT' and not direction == 'LEFT': direction = 'RIGHT' if change_to == 'LEFT' and not direction == 'RIGHT': direction = 'LEFT' if change_to == 'UP' and not direction == 'DOWN': direction = 'UP' if change_to == 'DOWN' and not direction == 'UP': direction = 'DOWN'
# 根据方向移动蛇头位置 if direction == 'RIGHT': snake_position[0] += 10 if direction == 'LEFT': snake_position[0] -= 10 if direction == 'UP': snake_position[1] -= 10 if direction == 'DOWN': snake_position[1] += 10
# 增加蛇身长度 snake_body.insert(0, list(snake_position)) if snake_position[0] == food_position[0] and snake_position[1] == food_position[1]: food_spawn = False else: snake_body.pop()
# 重新生成食物 if not food_spawn: food_position = [random.randrange(1, (window_width // 10)) * 10, random.randrange(1, (window_height // 10)) * 10] food_spawn = True
# 绘制游戏窗口 game_window.fill(black) for pos in snake_body: pygame.draw.rect(game_window, green, pygame.Rect( pos[0], pos[1], 10, 10))
pygame.draw.rect(game_window, white, pygame.Rect( food_position[0], food_position[1], 10, 10))
# 游戏结束判断 if snake_position[0] < 0 or snake_position[0] > window_width-10: game_over = True if snake_position[1] < 0 or snake_position[1] > window_height-10: game_over = True for block in snake_body[1:]: if snake_position[0] == block[0] and snake_position[1] == block[1]: game_over = True
# 更新游戏窗口 pygame.display.update()
# 控制游戏速度 clock.tick(snake_speed)
游戏结束,退出程序pygame.quit()
代码说明:
- 这段代码使用了Python的Pygame库来创建游戏窗口、处理用户输入和绘制游戏元素。- 游戏逻辑主要包含在
while not game_over:循环中。- 蛇的身体snake_body是一个列表,每个元素代表蛇身的一部分,头部在列表的首位。- 食物的位置food_position随机生成。- 蛇吃到食物后,身体会增长,否则会保持长度不变。- 游戏结束条件包括:蛇撞到边界或撞到自身。
如何运行代码:
- 确保你的电脑上已经安装了Python和Pygame库。2. 将代码保存为
.py文件,例如snake_game.py。3. 在终端或命令行中使用python snake_game.py命令运行代码。
扩展和修改:
- 你可以尝试修改游戏难度,例如增加蛇的速度或改变食物的生成规则。- 你还可以添加其他游戏元素,例如障碍物或道具。
希望这篇文章能帮助你入门Python游戏开发!
原文地址: https://www.cveoy.top/t/topic/SGP 著作权归作者所有。请勿转载和采集!