📅  最后修改于: 2023-12-03 14:49:50.824000             🧑  作者: Mango
蛇游戏是一个经典的游戏,通过控制蛇的头部来不断获取食物,使得蛇身体变长,同时要避免蛇头碰到边界或身体,否则游戏结束。本文将介绍如何使用Python编写蛇游戏。
蛇游戏的规则如下:
我们将使用Python的pygame库来实现蛇游戏。首先,安装pygame库:
pip install pygame
接下来,我们来编写代码。具体的注释在代码中已经给出:
# 导入pygame库
import pygame
import random
# 初始化pygame
pygame.init()
# 定义窗口大小和标题
WINDOW_WIDTH = 600
WINDOW_HEIGHT = 600
WINDOW_TITLE = 'Snake Game'
# 定义颜色
WHITE_COLOR = (255, 255, 255)
RED_COLOR = (255, 0, 0)
GREEN_COLOR = (0, 255, 0)
BLACK_COLOR = (0, 0, 0)
# 定义小方格的大小
CELL_SIZE = 20
# 创建游戏窗口
game_window = pygame.display.set_mode((WINDOW_WIDTH, WINDOW_HEIGHT))
pygame.display.set_caption(WINDOW_TITLE)
# 定义游戏的速度
clock = pygame.time.Clock()
GAME_SPEED = 10
# 定义蛇的初始位置和长度
snake_head = [100, 100]
snake_body = [[100, 100], [80, 100], [60, 100]]
# 定义食物的初始位置
food_position = [400, 300]
# 定义方向
direction = 'RIGHT'
# 定义得分
score = 0
# 定义字体
font = pygame.font.SysFont(None, 40)
# 定义游戏循环
game_over = False
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:
direction = 'LEFT'
elif event.key == pygame.K_RIGHT:
direction = 'RIGHT'
elif event.key == pygame.K_UP:
direction = 'UP'
elif event.key == pygame.K_DOWN:
direction = 'DOWN'
# 移动蛇的头部
if direction == 'RIGHT':
snake_head[0] += CELL_SIZE
elif direction == 'LEFT':
snake_head[0] -= CELL_SIZE
elif direction == 'UP':
snake_head[1] -= CELL_SIZE
elif direction == 'DOWN':
snake_head[1] += CELL_SIZE
# 检查蛇头是否碰到边界
if snake_head[0] < 0 or snake_head[0] >= WINDOW_WIDTH:
game_over = True
elif snake_head[1] < 0 or snake_head[1] >= WINDOW_HEIGHT:
game_over = True
# 检查蛇头是否碰到身体
for body_part in snake_body[1:]:
if snake_head == body_part:
game_over = True
# 检查蛇头是否碰到食物
if snake_head == food_position:
food_position = [random.randrange(0, WINDOW_WIDTH // CELL_SIZE) * CELL_SIZE,
random.randrange(0, WINDOW_HEIGHT // CELL_SIZE) * CELL_SIZE]
score += 1
snake_body.append([0, 0])
# 移动蛇的身体
for i in range(len(snake_body) - 1, 0, -1):
snake_body[i][0] = snake_body[i - 1][0]
snake_body[i][1] = snake_body[i - 1][1]
snake_body[0][0] = snake_head[0]
snake_body[0][1] = snake_head[1]
# 绘制游戏界面
game_window.fill(WHITE_COLOR)
pygame.draw.rect(game_window, RED_COLOR, [food_position[0], food_position[1], CELL_SIZE, CELL_SIZE])
for part in snake_body:
pygame.draw.rect(game_window, GREEN_COLOR, [part[0], part[1], CELL_SIZE, CELL_SIZE])
# 显示得分
score_text = font.render('Score: {}'.format(score), True, BLACK_COLOR)
game_window.blit(score_text, [10, 10])
# 更新游戏界面
pygame.display.update()
# 控制游戏速度
clock.tick(GAME_SPEED)
# 退出游戏
pygame.quit()
保存代码为snake_game.py,然后在终端中运行:
python snake_game.py
游戏就会开始运行了。
通过本文,学习了如何使用Python和pygame库来实现蛇游戏。我们使用pygame库来创建游戏窗口、时间控制、绘制游戏界面等功能,然后通过编写Python代码来实现游戏的逻辑。游戏开发过程中需要注意处理各种可能出现的情况,例如蛇头碰到边界或身体,蛇头碰到食物等等。希望本文能够对Python游戏开发感兴趣的人有所帮助。