从 Hello World 到游戏世界——pygame 快速入门

🎮 从 Hello World 到游戏世界------pygame 快速入门

用 Python 打开你的第一扇游戏之门


一、前言:为什么要学编程游戏?

很多人学习编程时,总觉得语法、算法太抽象;

但当你能让一个小方块动起来、能控制一个小人物在屏幕中跑动时------
编程不再是冷冰冰的逻辑,而是你创造世界的钥匙。

这篇文章将带你从零开始,

用 Python 的 pygame 库,快速实现一个可以动的小角色。

即便你完全没有游戏开发经验,也能在 10 分钟内"跑起来"!


二、环境准备

1. 安装 pygame

打开命令行(Windows 可用 CMD / PowerShell)输入:

bash 复制代码
pip install pygame

安装完成后输入以下命令测试是否成功:

bash 复制代码
python -m pygame.examples.aliens

如果弹出一个小游戏窗口,说明安装成功 🎉


三、第一个游戏窗口

我们先从创建一个最简单的游戏窗口开始。

新建一个 game_hello.py 文件,输入以下代码:

python 复制代码
import pygame
import sys

# 初始化 pygame
pygame.init()

# 设置窗口大小
screen = pygame.display.set_mode((600, 400))
pygame.display.set_caption("我的第一个游戏窗口")

# 设置背景颜色(RGB)
background_color = (135, 206, 235)  # 天空蓝

# 游戏主循环
while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()

    # 填充背景色
    screen.fill(background_color)
    
    # 刷新窗口
    pygame.display.flip()

💡 运行效果:

你会看到一个 600×400 的蓝色窗口,标题为"我的第一个游戏窗口"。

这就是 pygame 世界的起点!


四、加入主角:绘制角色与移动控制

接下来我们让一个小方块"动起来"。

python 复制代码
import pygame
import sys

pygame.init()
screen = pygame.display.set_mode((600, 400))
pygame.display.set_caption("小方块动起来")

# 定义颜色
WHITE = (255, 255, 255)
RED = (255, 0, 0)

# 小方块初始位置
x, y = 300, 200
speed = 5  # 移动速度

clock = pygame.time.Clock()

while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()

    keys = pygame.key.get_pressed()  # 检测键盘
    if keys[pygame.K_LEFT]:
        x -= speed
    if keys[pygame.K_RIGHT]:
        x += speed
    if keys[pygame.K_UP]:
        y -= speed
    if keys[pygame.K_DOWN]:
        y += speed

    screen.fill(WHITE)
    pygame.draw.rect(screen, RED, (x, y, 50, 50))  # 绘制红色方块
    pygame.display.flip()
    clock.tick(60)  # 限制帧率

运行效果:

使用方向键 ← ↑ → ↓ 控制小方块移动。

这时你就已经拥有了一个最基础的"可操作游戏"!


五、添加图片角色(提升真实感)

我们可以替换方块为图片角色。

把一张角色图片(如 player.png)放到项目目录下:

python 复制代码
import pygame
import sys

pygame.init()
screen = pygame.display.set_mode((600, 400))
pygame.display.set_caption("角色动起来")

background = pygame.image.load("bg.jpg")
player = pygame.image.load("player.png")

x, y = 300, 200
speed = 5
clock = pygame.time.Clock()

while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()

    keys = pygame.key.get_pressed()
    if keys[pygame.K_LEFT]:
        x -= speed
    if keys[pygame.K_RIGHT]:
        x += speed
    if keys[pygame.K_UP]:
        y -= speed
    if keys[pygame.K_DOWN]:
        y += speed

    screen.blit(background, (0, 0))  # 背景
    screen.blit(player, (x, y))      # 玩家
    pygame.display.flip()
    clock.tick(60)

💡 提示:

背景图可用 600×400 尺寸的风景图,人物图用透明底 PNG 效果更好。


六、让游戏更有"生命":添加音效

添加音效可以极大提升游戏体验。

pygame 支持播放 .mp3.wav 文件:

python 复制代码
pygame.mixer.init()
pygame.mixer.music.load("bgm.mp3")
pygame.mixer.music.play(-1)  # 循环播放

放在游戏循环外部即可。


七、总结:你学到了什么?

到这里,你已经掌握了:

  • ✅ 如何创建 pygame 游戏窗口
  • ✅ 如何绘制形状或角色
  • ✅ 如何响应键盘事件
  • ✅ 如何加载图片与音效

下一篇我们将进入更好玩的部分👇

👉 第2篇:《贪吃蛇进阶之路------从逻辑到AI自动寻路》

届时你将亲手打造一款完整的小游戏!


🔖 推荐阅读


🏁 小挑战

💡 尝试自己加一个边界检测功能:

当小方块移动到窗口边缘时,自动回弹!

(提示:判断 xy 是否小于0或超出屏幕宽高)

相关推荐
程序员小远2 小时前
软件测试之单元测试详解
自动化测试·软件测试·python·测试工具·职场和发展·单元测试·测试用例
心无旁骛~3 小时前
python多进程和多线程问题
开发语言·python
星云数灵3 小时前
使用Anaconda管理Python环境:安装与验证Pandas、NumPy、Matplotlib
开发语言·python·数据分析·pandas·教程·环境配置·anaconda
计算机毕设匠心工作室3 小时前
【python大数据毕设实战】青少年抑郁症风险数据分析可视化系统、Hadoop、计算机毕业设计、包括数据爬取、数据分析、数据可视化、机器学习
后端·python
计算机毕设小月哥3 小时前
【Hadoop+Spark+python毕设】智能制造生产效能分析与可视化系统、计算机毕业设计、包括数据爬取、Spark、数据分析、数据可视化、Hadoop
后端·python·mysql
计算机毕设小月哥6 小时前
【Hadoop+Spark+python毕设】中风患者数据可视化分析系统、计算机毕业设计、包括数据爬取、Spark、数据分析、数据可视化、Hadoop
后端·python·mysql
Keep_Trying_Go6 小时前
基于Zero-Shot的目标计数算法详解(Open-world Text-specified Object Counting)
人工智能·pytorch·python·算法·多模态·目标统计
计算机毕设匠心工作室6 小时前
【python大数据毕设实战】强迫症特征与影响因素数据分析系统、Hadoop、计算机毕业设计、包括数据爬取、数据分析、数据可视化、机器学习、实战教学
后端·python·mysql
国服第二切图仔6 小时前
Electron for 鸿蒙PC项目实战案例之数独游戏
游戏·electron·鸿蒙pc