Python贪吃蛇游戏实战:从零开始打造经典游戏
使用Python打造你的专属贪吃蛇游戏
想学习如何用Python编写游戏吗?这篇文章将带你从零开始创建一个经典的贪吃蛇游戏。我们将使用Pygame库来实现图形界面和游戏逻辑。
准备工作
你需要安装Python和Pygame库。如果你还没有安装,可以访问以下网站下载安装包:
- Python: https://www.python.org/downloads/* Pygame: https://www.pygame.org/download.shtml
代码实现pythonimport pygameimport random
初始化游戏pygame.init()
定义颜色BLACK = (0, 0, 0)WHITE = (255, 255, 255)GREEN = (0, 255, 0)RED = (255, 0, 0)
窗口大小和速度设置window_width = 800window_height = 600speed = 20
创建游戏窗口window = pygame.display.set_mode((window_width, window_height))pygame.display.set_caption('贪吃蛇游戏')
游戏循环标志位running = True
蛇的初始位置snake_x = window_width // 2snake_y = window_height // 2
蛇的初始移动方向和长度snake_direction = 'RIGHT'snake_length = 1
初始化蛇身列表snake_body = []snake_body.append([snake_x, snake_y])
生成食物的随机位置food_x = random.randint(0, (window_width - speed) // speed) * speedfood_y = random.randint(0, (window_height - speed) // speed) * speed
游戏主循环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_UP and snake_direction != 'DOWN': snake_direction = 'UP' elif event.key == pygame.K_DOWN and snake_direction != 'UP': snake_direction = 'DOWN' elif event.key == pygame.K_LEFT and snake_direction != 'RIGHT': snake_direction = 'LEFT' elif event.key == pygame.K_RIGHT and snake_direction != 'LEFT': snake_direction = 'RIGHT'
# 移动蛇的身体 if snake_direction == 'UP': snake_y -= speed elif snake_direction == 'DOWN': snake_y += speed elif snake_direction == 'LEFT': snake_x -= speed elif snake_direction == 'RIGHT': snake_x += speed
# 判断是否吃到食物 if snake_x == food_x and snake_y == food_y: # 生成新的食物位置 food_x = random.randint(0, (window_width - speed) // speed) * speed food_y = random.randint(0, (window_height - speed) // speed) * speed # 蛇长度增加 snake_length += 1
# 更新蛇身列表 snake_body.append([snake_x, snake_y]) if len(snake_body) > snake_length: del snake_body[0]
# 绘制背景 window.fill(BLACK)
# 绘制食物 pygame.draw.rect(window, GREEN, [food_x, food_y, speed, speed])
# 绘制蛇 for part in snake_body: pygame.draw.rect(window, WHITE, [part[0], part[1], speed, speed])
# 更新显示 pygame.display.update()
# 判断游戏结束条件 if snake_x < 0 or snake_x >= window_width or snake_y < 0 or snake_y >= window_height: running = False print('游戏结束!')
# 判断蛇是否撞到自己 for part in snake_body[:-1]: if part == [snake_x, snake_y]: running = False print('游戏结束!')
# 控制游戏速度 pygame.time.Clock().tick(10)
退出游戏pygame.quit()
代码解释
- 初始化: 初始化Pygame库,设置游戏窗口大小和标题。* 游戏循环: 使用
while循环不断更新游戏状态,直到玩家退出游戏。* 事件处理: 处理玩家的键盘输入,控制蛇的移动方向。* 蛇的移动: 根据玩家的输入更新蛇的位置。* 食物生成: 当蛇吃到食物时,随机生成新的食物。* 游戏结束: 当蛇撞到边界或自己身体时,游戏结束。
总结
通过这个简单的例子,你已经学会了如何使用Python和Pygame库创建一个简单的贪吃蛇游戏。你可以尝试修改代码,添加更多功能,例如计分、不同难度等级等,让你的游戏更加有趣!
原文地址: https://www.cveoy.top/t/topic/PRa 著作权归作者所有。请勿转载和采集!