Python贪吃蛇游戏教程:从零开始打造经典游戏
Python贪吃蛇游戏教程:从零开始打造经典游戏
想学习如何用Python编写游戏吗?本教程将带你一步步打造经典的贪吃蛇游戏。我们使用 pygame 库来实现游戏图形界面、用户输入处理等功能。即使你是编程新手,也不用担心,我们会详细解释每一步代码的含义。
1. 游戏准备
首先,确保你已经安装了Python和Pygame库。如果没有,你可以访问https://www.python.org/ 和 https://www.pygame.org/ 下载安装。
2. 代码实现
以下是完整的贪吃蛇游戏代码:pythonimport pygameimport random
游戏窗口大小window_width = 640window_height = 480
蛇头和食物大小head_size = 20food_size = 20
pygame.init()window = pygame.display.set_mode((window_width, window_height))pygame.display.set_caption('贪吃蛇游戏')
clock = pygame.time.Clock()
定义颜色black = pygame.Color(0, 0, 0)white = pygame.Color(255, 255, 255)red = pygame.Color(255, 0, 0)
蛇的初始位置和速度snake_position = [100, 50]snake_body = [[100, 50], [90, 50], [80, 50]]snake_speed = 10
food_position = [random.randrange(1, (window_width // 10)) * 10, random.randrange(1, (window_height // 10)) * 10]food_spawned = True
direction = 'RIGHT'change_to = direction
游戏结束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 direction != 'LEFT': direction = 'RIGHT' if change_to == 'LEFT' and direction != 'RIGHT': direction = 'LEFT' if change_to == 'UP' and direction != 'DOWN': direction = 'UP' if change_to == 'DOWN' and 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_spawned = False else: snake_body.pop()
if not food_spawned: food_position = [random.randrange(1, (window_width // 10)) * 10, random.randrange(1, (window_height // 10)) * 10]
food_spawned = True window.fill(black)
for pos in snake_body: pygame.draw.rect(window, white, pygame.Rect( pos[0], pos[1], head_size, head_size))
pygame.draw.rect( window, red, pygame.Rect(food_position[0], food_position[1], food_size, food_size))
if snake_position[0] < 0 or snake_position[0] >= window_width or snake_position[1] < 0 or snake_position[1] >= window_height: game_over = True break
if snake_position in snake_body[1:]: game_over = True break
pygame.display.flip() clock.tick(snake_speed)
pygame.quit()
3. 代码解释
- 初始化: 导入
pygame库,设置窗口大小、标题、颜色等。* 游戏循环: 使用while循环不断更新游戏状态,直到游戏结束。* 事件处理: 在循环中,使用pygame.event.get()获取用户事件,例如键盘输入、鼠标点击等。* 蛇的移动: 根据用户按键修改蛇头的方向,并更新蛇身的位置。* 食物: 随机生成食物的位置,当蛇头碰到食物时,食物消失并重新生成,蛇身增长。* 游戏结束: 当蛇头碰到窗口边界或自身时,游戏结束。
4. 总结
通过这个简单的例子,你已经学会了如何使用 Python 和 pygame 库编写一个贪吃蛇游戏。你可以尝试修改代码,例如改变蛇的速度、添加障碍物、设计不同的关卡等,让你的游戏更加有趣!
原文地址: https://www.cveoy.top/t/topic/P0B 著作权归作者所有。请勿转载和采集!