使用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 随机生成。- 蛇吃到食物后,身体会增长,否则会保持长度不变。- 游戏结束条件包括:蛇撞到边界或撞到自身。

如何运行代码:

  1. 确保你的电脑上已经安装了Python和Pygame库。2. 将代码保存为 .py 文件,例如 snake_game.py。3. 在终端或命令行中使用 python snake_game.py 命令运行代码。

扩展和修改:

  • 你可以尝试修改游戏难度,例如增加蛇的速度或改变食物的生成规则。- 你还可以添加其他游戏元素,例如障碍物或道具。

希望这篇文章能帮助你入门Python游戏开发!

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

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

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