python代码小游戏:初始化 Pygame
用Python轻松编写代码小游戏:从入门到实践
Python 是一种简单易学、功能强大的编程语言,特别适合初学者入门,而编写小游戏是学习编程的一个有趣且有效的方式,本文将带你从零开始,使用 Python 编写一个简单的小游戏,并介绍一些常用的工具和技巧,帮助你轻松入门。
为什么选择 Python 来编写小游戏?
- 语法简洁:Python 的语法非常接近自然语言,初学者可以快速上手。
- 丰富的库支持:Python 提供了许多现成的游戏开发库,如 Pygame,可以大大简化开发过程。
- 跨平台:Python 编写的游戏可以在多种操作系统上运行,如 Windows、Mac 和 Linux。
准备工作
在开始编写游戏之前,我们需要安装一些必要的工具:

-
安装 Python:访问 Python 官网 下载并安装最新版本的 Python。
-
安装 Pygame 库:Pygame 是一个专门用于开发 2D 游戏的库,打开命令行(Windows 上是“命令提示符”,Mac 上是“终端”),输入以下命令安装:

pip install pygame
-
选择一个代码编辑器:推荐使用 VS Code、PyCharm 或 Sublime Text,这些工具对 Python 支持良好,且有丰富的插件。
编写第一个小游戏:贪吃蛇
下面是一个简单的贪吃蛇游戏代码,我们将逐步解析它。

import pygame
import random
import time
pygame.init()
# 定义颜色
white = (255, 255, 255)
black = (0, 0, 0)
red = (255, 0, 0)
# 设置游戏窗口
width, height = 600, 400
game_display = pygame.display.set_mode((width, height))
pygame.display.set_caption('贪吃蛇游戏')
# 设置游戏时钟
clock = pygame.time.Clock()
snake_block = 10
snake_speed = 15
# 显示分数
font_style = pygame.font.SysFont(None, 30)
def message(msg, color):
mesg = font_style.render(msg, True, color)
game_display.blit(mesg, [width/6, height/3])
def gameLoop():
game_over = False
game_close = False
# 蛇的初始位置
x1 = width / 2
y1 = height / 2
# 蛇的移动方向
x1_change = 0
y1_change = 0
# 蛇的身体
snake_list = []
length_of_snake = 1
# 食物的位置
foodx = round(random.randrange(0, width - snake_block) / 10.0) * 10.0
foody = round(random.randrange(0, height - snake_block) / 10.0) * 10.0
while not game_over:
while game_close:
game_display.fill(black)
message("游戏结束!按 Q 退出,按 C 重新开始", red)
pygame.display.update()
for event in pygame.event.get():
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_q:
game_over = True
game_close = False
if event.key == pygame.K_c:
gameLoop()
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:
x1_change = -snake_block
y1_change = 0
elif event.key == pygame.K_RIGHT:
x1_change = snake_block
y1_change = 0
elif event.key == pygame.K_UP:
y1_change = -snake_block
x1_change = 0
elif event.key == pygame.K_DOWN:
y1_change = snake_block
x1_change = 0
# 检查是否撞墙
if x1 >= width or x1 < 0 or y1 >= height or y1 < 0:
game_close = True
# 更新蛇的位置
x1 += x1_change
y1 += y1_change
game_display.fill(black)
pygame.draw.rect(game_display, red, [foodx, foody, snake_block, snake_block])
snake_head = []
snake_head.append(x1)
snake_head.append(y1)
snake_list.append(snake_head)
if len(snake_list) > length_of_snake:
del snake_list[0]
# 检查是否撞到自己
for x in snake_list[:-1]:
if x == snake_head:
game_close = True
# 显示蛇和分数
for x in snake_list:
pygame.draw.rect(game_display, white, [x[0], x[1], snake_block, snake_block])
message("得分: " + str(length_of_snake - 1), white)
pygame.display.update()
# 检查是否吃到食物
if x1 == foodx and y1 == foody:
foodx = round(random.randrange(0, width - snake_block) / 10.0) * 10.0
foody = round(random.randrange(0, height - snake_block) / 10.0) * 10.0
length_of_snake += 1
clock.tick(snake_speed)
pygame.quit()
quit()
gameLoop()
代码解析
- 初始化:使用
pygame.init()初始化 Pygame 库。 - 游戏窗口:通过
pygame.display.set_mode()创建游戏窗口。 - 游戏循环:
gameLoop()函数是游戏的核心,它处理用户输入、更新游戏状态、绘制图形等。 - 蛇的移动:通过
x1_change和y1_change控制蛇的移动方向。 - 碰撞检测:检测蛇是否撞墙或撞到自己。
- 食物生成:随机生成食物的位置,当蛇吃到食物时,身体长度增加。
运行游戏
将上述代码保存为 snake_game.py,然后在命令行中运行:
python snake_game.py
游戏启动后,使用键盘的上下左右键控制蛇的移动,吃到食物后,蛇的长度会增加,同时得分也会增加,如果撞到墙壁或自己的身体,游戏结束。
扩展与改进
你可以尝试对这个游戏进行以下改进:
- 添加音效:使用 Pygame 的
mixer模块添加背景音乐和音效。 - 增加难度:随着得分的增加,蛇的移动速度加快。
- 美化界面:使用图片和更丰富的颜色来美化游戏界面。
- 添加关卡:设计多个关卡,每个关卡有不同的障碍物或食物生成规则。
其他小游戏推荐
除了贪吃蛇,你还可以尝试编写以下游戏:
- 打砖块:经典的休闲游戏,使用挡板反弹球来击碎砖块。
- 井字棋:经典的两人对战游戏,锻炼逻辑思维。
- 太空侵略者:玩家控制飞船射击外星人,躲避子弹。
通过编写小游戏,你不仅能巩固 Python 的基础知识,还能培养逻辑思维和创造力,希望本文能帮助你迈出游戏开发的第一步!如果你对编程感兴趣,不妨从一个小游戏开始,享受编程的乐趣吧!
文章已关闭评论!