Python贪吃蛇游戏代码示例 - 从零开始编写经典游戏
使用Python编写经典贪吃蛇游戏
想学习如何使用Python编写游戏吗?本教程将带你一步步创建一个经典的贪吃蛇游戏。我们将使用Pygame库来处理图形界面和用户输入。
1. 安装Pygame
首先,确保你已经安装了Pygame库。如果没有,可以使用pip安装:
pip install pygame
2. Python代码
以下是完整的贪吃蛇游戏代码:
import pygame
import random
# 初始化游戏
pygame.init()
# 定义游戏窗口大小和标题
width, height = 640, 480
window = pygame.display.set_mode((width, height))
pygame.display.set_caption('贪吃蛇游戏')
# 定义颜色
black = pygame.Color(0, 0, 0)
green = pygame.Color(0, 255, 0)
red = pygame.Color(255, 0, 0)
# 定义蛇的初始位置和大小
snake_position = [[100, 50], [90, 50], [80, 50]]
snake_size = pygame.Surface((10, 10))
# 定义食物的初始位置
food_position = [random.randrange(1, (width // 10)) * 10,
random.randrange(1, (height // 10)) * 10]
food_size = pygame.Surface((10, 10))
# 初始化方向
direction = 'RIGHT'
change_to = direction
# 定义游戏时钟
clock = pygame.time.Clock()
# 定义分数
score = 0
# 定义游戏结束标志
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:
change_to = 'RIGHT'
elif event.key == pygame.K_LEFT:
change_to = 'LEFT'
elif event.key == pygame.K_UP:
change_to = 'UP'
elif event.key == pygame.K_DOWN:
change_to = 'DOWN'
# 确定新的方向
if change_to == 'RIGHT' and direction != 'LEFT':
direction = 'RIGHT'
elif change_to == 'LEFT' and direction != 'RIGHT':
direction = 'LEFT'
elif change_to == 'UP' and direction != 'DOWN':
direction = 'UP'
elif change_to == 'DOWN' and direction != 'UP':
direction = 'DOWN'
# 更新蛇的位置
if direction == 'RIGHT':
snake_position[0][0] += 10
elif direction == 'LEFT':
snake_position[0][0] -= 10
elif direction == 'UP':
snake_position[0][1] -= 10
elif direction == 'DOWN':
snake_position[0][1] += 10
# 绘制游戏界面
window.fill(black)
for pos in snake_position:
pygame.draw.rect(window, green, pygame.Rect(pos[0], pos[1], 10, 10))
pygame.draw.rect(window, red, pygame.Rect(food_position[0], food_position[1], 10, 10))
# 判断蛇是否吃到食物
if snake_position[0][0] == food_position[0] and snake_position[0][1] == food_position[1]:
score += 1
food_position = [random.randrange(1, (width // 10)) * 10,
random.randrange(1, (height // 10)) * 10]
else:
snake_position.pop()
# 判断蛇是否碰到自己或墙壁
if snake_position[0][0] < 0 or snake_position[0][0] > width-10\
or snake_position[0][1] < 0 or snake_position[0][1] > height-10:
game_over = True
break
for block in snake_position[1:]:
if snake_position[0][0] == block[0] and snake_position[0][1] == block[1]:
game_over = True
break
# 更新显示
pygame.display.update()
# 控制游戏速度
clock.tick(20)
# 结束游戏
pygame.quit()
3. 代码解释
这段代码首先初始化Pygame,设置游戏窗口和颜色。然后,定义蛇和食物的初始位置和大小。游戏循环中,程序监听键盘事件来控制蛇的方向,并根据蛇的新位置更新游戏状态。如果蛇吃到食物,则增长并生成新的食物。如果蛇碰到边界或自身,则游戏结束。
4. 运行游戏
将代码保存为.py文件,例如snake_game.py,然后在终端中运行:
python snake_game.py
现在你就可以玩经典的贪吃蛇游戏了!
5. 扩展
你可以尝试修改代码来添加更多功能,例如:
- 增加游戏难度
- 显示分数
- 添加音效
- 设计不同的关卡
原文地址: https://www.cveoy.top/t/topic/clbo 著作权归作者所有。请勿转载和采集!