从 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·oracle·r语言·bash
SunnyRivers4 分钟前
Python 的下一代 HTTP 客户端 HTTPX 特性详解
python·httpx
hcnaisd25 分钟前
机器学习模型部署:将模型转化为Web API
jvm·数据库·python
微祎_5 分钟前
Flutter for OpenHarmony:构建一个 Flutter 旋转迷宫游戏,深入解析网格建模、路径连通性检测与交互式解谜设计
javascript·flutter·游戏
果粒蹬i9 分钟前
Python + AI:打造你的智能害虫识别助手
开发语言·人工智能·python
阿钱真强道10 分钟前
09 jetlinks-mqtt-属性主动上报-windows-python-实现
开发语言·windows·python·网络协议
Blossom.11810 分钟前
从单点工具到智能流水线:企业级多智能体AI开发工作流架构实战
人工智能·笔记·python·深度学习·神经网络·架构·whisper
亚林瓜子11 分钟前
pyspark添加一列时间戳数据并改名
python·spark
2401_8414956412 分钟前
【机器学习】标准化流模型(NF)
人工智能·python·机器学习·标准化流模型·概率生成模型·可逆变换·概率密度变换
Blossom.11813 分钟前
从“金鱼记忆“到“超级大脑“:2025年AI智能体记忆机制与MoE架构的融合革命
人工智能·python·算法·架构·自动化·whisper·哈希算法