从 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或超出屏幕宽高)

相关推荐
云水木石30 分钟前
Android 的下一个战场:Windows 应用与游戏?
android·windows·游戏
Ven%1 小时前
从单轮问答到连贯对话:RAG多轮对话技术详解
人工智能·python·深度学习·神经网络·算法
谈笑也风生1 小时前
经典算法题型之复数乘法(二)
开发语言·python·算法
先知后行。1 小时前
python的类
开发语言·python
dyxal2 小时前
Python包导入终极指南:子文件如何成功调用父目录模块
开发语言·python
nnerddboy2 小时前
解决传统特征波段选择的不可解释性:2. SHAP和LIME
python·机器学习
电商API&Tina2 小时前
【电商API接口】关于电商数据采集相关行业
java·python·oracle·django·sqlite·json·php
weixin_421585012 小时前
解释代码:val_pred = vxm_model.predict(val_input)--与tensor对比
python
xwill*2 小时前
python 字符串拼接
linux·windows·python
superman超哥2 小时前
仓颉锁竞争优化深度解析
c语言·开发语言·c++·python·仓颉