太棒了!欢迎来到用Python做游戏的神奇世界!我是你的编程小伙伴,虽然我才12岁,但我已经能教你怎么用Python做出好玩的小游戏了。

别担心,编程其实就像搭积木一样,一步一步来,就能创造出超酷的东西!
第一步:准备我们的“工具箱”
在开始之前,我们需要安装两个最重要的东西:
- Python:这是编程的语言,是我们游戏的“大脑”。
- Pygame:这是一个专门用来做游戏的Python库,它能帮我们画出图形、播放音乐、处理键盘和鼠标点击,就像给我们的“大脑”配了一副超级厉害的“眼镜”和“双手”。
如何安装?
安装Python
- 访问 Python 官网:https://www.python.org/downloads/
- 下载最新版本的 Python(Python 3.11 或更高版本)。
- 安装时,一定要记得勾选这个选项:"Add Python to PATH",这能让你在电脑的任何地方都能轻松运行Python。
- 然后一直点 "Next" 就可以了。
安装Pygame

打开电脑的“命令提示符”(Windows)或“终端”(Mac),你可以按 Win + R 键,然后输入 cmd 并回车。
在弹出的黑色窗口里,输入下面的命令,然后按回车:
pip install pygame
它会自动帮你下载并安装好Pygame,看到 "Successfully installed pygame..." 就说明成功啦!
第二步:我们的第一个游戏——会动的小方块
我们要做一个最简单的游戏:一个可以用键盘方向键控制的小方块在屏幕上移动。

代码讲解
# 1. 导入我们的工具箱
import pygame
import sys # 这是一个系统工具箱,用来让游戏窗口能正常关闭
# 2. 初始化Pygame
pygame.init()
# 3. 设置游戏窗口
# 创建一个 800像素宽、600像素高的窗口
screen_width = 800
screen_height = 600
screen = pygame.display.set_mode((screen_width, screen_height))
pygame.display.set_caption("我的第一个小游戏!") # 给游戏窗口起个名字
# 4. 定义颜色
# Pygame用RGB (红, 绿, 蓝) 来定义颜色,每个值从0到255
WHITE = (255, 255, 255)
BLACK = (0, 0, 0)
RED = (255, 0, 0)
# 5. 创建我们的小方块(一个“精灵”)
# 精灵的位置和大小
player_x = screen_width // 2 - 25 # 让方块一开始在屏幕中间
player_y = screen_height // 2 - 25
player_size = 50
player_speed = 5 # 方块每次移动的像素数
# 6. 游戏的主循环(游戏的心脏!)
# 游戏会一直运行,直到我们点击关闭窗口
running = True
while running:
# 7. 处理事件(比如点击鼠标、按键盘)
for event in pygame.event.get():
# 如果点击了窗口的关闭按钮
if event.type == pygame.QUIT:
running = False # 让游戏停止运行
# 8. 检测按键,让方块动起来!
# pygame.key.get_pressed() 会返回一个列表,告诉你哪些键被按下了
keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT]:
player_x -= player_speed
if keys[pygame.K_RIGHT]:
player_x += player_speed
if keys[pygame.K_UP]:
player_y -= player_speed
if keys[pygame.K_DOWN]:
player_y += player_speed
# 9. 限制方块不能跑出屏幕
if player_x < 0:
player_x = 0
if player_x > screen_width - player_size:
player_x = screen_width - player_size
if player_y < 0:
player_y = 0
if player_y > screen_height - player_size:
player_y = screen_height - player_size
# 10. 绘制画面(把东西画在屏幕上)
# 用白色把整个屏幕刷一遍,不然上一帧的图案会留下来
screen.fill(WHITE)
# 画一个红色的方块
pygame.draw.rect(screen, RED, (player_x, player_y, player_size, player_size))
# 11. 更新屏幕!
# 这一步非常重要,它会把我们画的东西真正显示出来
pygame.display.flip()
# 12. 游戏结束,退出
pygame.quit()
sys.exit()
如何运行?
- 把上面的代码复制到一个文本编辑器里(比如记事本、VS Code等)。
- 把文件保存为
game1.py。 - 双击这个文件,或者用命令提示符
cd到文件所在目录,然后输入python game1.py。
恭喜你!你应该能看到一个窗口,里面有一个红色的方块,你可以用方向键控制它移动了!
第三步:升级!做一个接球小游戏
让我们来点更有趣的!我们做一个“接球”游戏:一个可以左右移动的挡板,一个会从上往下掉的小球,如果小球掉到屏幕底部,游戏就结束。
代码讲解
import pygame
import sys
import random # 这个工具箱可以帮我们生成随机数
# 初始化
pygame.init()
# 设置窗口
screen_width = 800
screen_height = 600
screen = pygame.display.set_mode((screen_width, screen_height))
pygame.display.set_caption("接球小游戏!")
# 颜色
WHITE = (255, 255, 255)
BLACK = (0, 0, 0)
BLUE = (0, 0, 255)
RED = (255, 0, 0)
# 游戏对象
# 挡板
paddle_width = 100
paddle_height = 20
paddle_x = screen_width // 2 - paddle_width // 2
paddle_y = screen_height - 40
paddle_speed = 10
# 球
ball_size = 20
ball_x = random.randint(0, screen_width - ball_size)
ball_y = 0
ball_speed_y = 5
# 游戏状态
game_over = False
score = 0
# 字体(用来显示分数)
font = pygame.font.Font(None, 36)
# 主循环
clock = pygame.time.Clock() # 这个东西可以控制游戏的速度
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
if not game_over:
# --- 更新游戏状态 ---
# 移动挡板
keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT] and paddle_x > 0:
paddle_x -= paddle_speed
if keys[pygame.K_RIGHT] and paddle_x < screen_width - paddle_width:
paddle_x += paddle_speed
# 移动球
ball_y += ball_speed_y
# 检测球和挡板的碰撞
if (ball_y + ball_size >= paddle_y and
ball_x + ball_size >= paddle_x and
ball_x <= paddle_x + paddle_width):
ball_speed_y = -ball_speed_y # 球反弹!
score += 10 # 加分!
ball_x = random.randint(0, screen_width - ball_size) # 球重新从顶部随机位置出现
# 检测球是否掉出屏幕
if ball_y > screen_height:
game_over = True
# --- 绘制画面 ---
screen.fill(BLACK)
if not game_over:
# 画挡板
pygame.draw.rect(screen, BLUE, (paddle_x, paddle_y, paddle_width, paddle_height))
# 画球
pygame.draw.rect(screen, RED, (ball_x, ball_y, ball_size, ball_size))
else:
# 游戏结束,显示文字
game_over_text = font.render("游戏结束! 最终得分: " + str(score), True, WHITE)
text_rect = game_over_text.get_rect(center=(screen_width/2, screen_height/2))
screen.blit(game_over_text, text_rect)
# 显示分数
score_text = font.render("得分: " + str(score), True, WHITE)
screen.blit(score_text, (10, 10))
# 更新屏幕
pygame.display.flip()
# 控制游戏帧率,让游戏速度不会太快
clock.tick(60)
# 游戏结束
pygame.quit()
sys.exit()
新知识点
random.randint(a, b): 生成一个a到b之间的随机整数,我们用它来让小球每次出现的位置都不同。- 碰撞检测: 我们通过判断球的下边缘是否碰到了挡板的上边缘,并且球的左右边缘是否在挡板的左右边缘之间,来判断是否接住了球。
pygame.font: 用来在屏幕上显示文字,比如分数和“游戏结束”。pygame.time.Clock(): 用来控制游戏每秒运行的帧数(FPS),这样游戏的速度在不同性能的电脑上看起来才是一致的。
下一步可以做什么?
你已经学会了最基础的游戏开发!现在你可以发挥想象力,给游戏增加更多功能:
- 增加多个球:用列表来存储多个球的位置和速度。
- 增加难度:让球的速度越来越快。
- 增加音效:使用
pygame.mixer模块,给接球和游戏结束加上声音。 - 改变图形:不用方块了,用
pygame.image.load()加载你喜欢的图片作为挡板和球。 - 做一个打砖块游戏:创建一堆砖块,用球去打它们!
编程是一个不断学习和创造的过程,不要怕犯错,错误是最好的老师!大胆地去尝试,把你的想法变成现实吧!加油!
