使用Python编写经典贪吃蛇游戏:附完整代码和注释

想要学习如何使用Python创建游戏吗?本教程将带您从零开始编写一个简单的贪吃蛇游戏。我们将使用Pygame库来处理游戏窗口、图形渲染和用户输入等。即使您是游戏开发新手,也可以轻松跟随本教程学习基础知识。

1. 设置游戏环境

首先,确保您已安装Python和Pygame库。然后,创建一个新的Python文件,并导入必要的库:pythonimport pygameimport random

初始化Pygamepygame.init()

2. 创建游戏窗口

接下来,我们需要创建一个窗口来显示游戏内容:python# 设置窗口大小window_width = 800window_height = 600window = pygame.display.set_mode((window_width, window_height))pygame.display.set_caption('贪吃蛇')

3. 定义颜色

为了方便后续使用,我们预先定义一些颜色:python# 定义颜色white = (255, 255, 255)black = (0, 0, 0)red = (255, 0, 0)

4. 初始化游戏元素

在开始游戏循环之前,我们需要初始化蛇和食物的位置、速度等属性:python# 定义蛇的初始位置和速度snake_x = window_width / 2snake_y = window_height / 2snake_speed = 10snake_x_change = 0snake_y_change = 0

定义蛇身体的长度和每个身体块的大小snake_length = 1snake_block_size = 10snake_body = []

定义食物的初始位置food_x = round(random.randrange(0, window_width - snake_block_size) / 10.0) * 10.0food_y = round(random.randrange(0, window_height - snake_block_size) / 10.0) * 10.0

定义分数score = 0

5. 游戏主循环

现在,我们进入游戏主循环,处理用户输入、更新游戏状态和渲染游戏画面:python# 游戏主循环game_over = Falseclock = pygame.time.Clock()

while not game_over: for event in pygame.event.get(): if event.type == pygame.QUIT: game_over = True if event.type == pygame.KEYDOWN: if event.key == pygame.K_LEFT: snake_x_change = -snake_block_size snake_y_change = 0 elif event.key == pygame.K_RIGHT: snake_x_change = snake_block_size snake_y_change = 0 elif event.key == pygame.K_UP: snake_y_change = -snake_block_size snake_x_change = 0 elif event.key == pygame.K_DOWN: snake_y_change = snake_block_size snake_x_change = 0

# 更新蛇的位置    snake_x += snake_x_change    snake_y += snake_y_change

# 判断蛇是否吃到食物    if snake_x == food_x and snake_y == food_y:        score += 1        snake_length += 1        food_x = round(random.randrange(0, window_width - snake_block_size) / 10.0) * 10.0        food_y = round(random.randrange(0, window_height - snake_block_size) / 10.0) * 10.0

# 绘制蛇和食物    window.fill(black)    pygame.draw.rect(window, red, [food_x, food_y, snake_block_size, snake_block_size])    snake_head = [snake_x, snake_y]    snake_body.append(snake_head)    if len(snake_body) > snake_length:        del snake_body[0]    for body_part in snake_body[:-1]:        if body_part == snake_head:            game_over = True    for body_part in snake_body:        pygame.draw.rect(window, white, [body_part[0], body_part[1], snake_block_size, snake_block_size])

# 更新窗口显示    pygame.display.update()

# 设置游戏帧率    clock.tick(snake_speed)

退出游戏pygame.quit()

代码解析

  • 用户输入: 我们使用 pygame.event.get() 获取用户按键事件,并根据按键方向更新蛇的移动方向。* 蛇的移动: 在每次循环中,我们根据 snake_x_changesnake_y_change 更新蛇的坐标。* 碰撞检测: 我们检查蛇头是否与食物重合,如果是,则增加蛇的长度并生成新的食物。* 游戏结束: 如果蛇头撞到自身或边界,则游戏结束。* 画面渲染: 我们使用 pygame.draw.rect() 绘制蛇和食物,并使用 pygame.display.update() 更新窗口显示。* 游戏帧率: 我们使用 clock.tick() 控制游戏帧率,确保游戏运行流畅。

总结

恭喜!您已经成功使用Python编写了一个简单的贪吃蛇游戏。您可以尝试修改代码,例如添加计分系统、增加游戏难度等,进一步提升您的游戏开发技能。

Python贪吃蛇游戏代码示例:从零开始编写经典游戏

原文地址: https://www.cveoy.top/t/topic/fPOH 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录