怎么在PyCharm中创建并运行第一个Pygame项目

南乔
南乔
发布时间:2026-11-03| 5人浏览过
原创

详细讲解如何在PyCharm中从零开始创建一个Pygame项目,包括环境准备、安装Pygame库、编写第一个游戏窗口程序以及运行和调试的完整流程。

这篇文章带你完成一件事:在 PyCharm 里从零建好一个 Pygame 项目,写出第一个能运行的游戏窗口,并且真正看到画面弹出来。整个过程涵盖环境检查、安装 Pygame、编写代码和运行调试,跟着做完你就有了一个可以继续往上加功能的起点。

准备工作:确认 Python 和 PyCharm

动手之前要确认两件东西已经装好——Python 解释器和 PyCharm。

Python:打开终端(Windows 上是命令提示符或 PowerShell,macOS / Linux 上是 Terminal),输入:

python --version

如果输出类似 Python 3.10.12 的版本号,说明 Python 已安装。Pygame 需要 Python 3.7 及以上版本,低于这个版本需要先升级。没有安装 Python 的话,去 python.org 下载安装包,安装时记得勾选 "Add Python to PATH",否则 PyCharm 可能找不到解释器。

PyCharm:社区版(Community Edition)免费且完全够用。如果你还没装,从 JetBrains 官网下载安装即可。打开 PyCharm 后能看到欢迎页面就说明准备就绪了。

第一步:在 PyCharm 中新建项目

打开 PyCharm,在欢迎界面点击 New Project(如果已经打开了某个项目,走菜单 File → New Project)。在弹出的新建项目窗口里,需要关注这几个设置:

  • Location:选择项目存放路径,最后一段目录名就是项目名,比如设成 ~/PycharmProjects/my_first_game。
  • Python Interpreter:展开解释器设置,选择 New environment using Virtualenv(推荐),Base interpreter 选你刚才确认好的那个 Python。用虚拟环境的好处是 Pygame 只装在这个项目里,不会影响其他项目。
  • 下方的 "Create a main.py welcome script" 可以勾上,它会帮你建一个 main.py 文件,后面我们直接在这个文件里写代码。

点 Create,等几秒钟 PyCharm 会建好项目并配好虚拟环境。左侧项目面板里会看到项目目录和一个 main.py 文件(如果勾了那个选项的话)。

第二步:安装 Pygame 库

项目建好了,但还没有 Pygame。有两种安装方式,在 PyCharm 里都很方便。

方式一:用 PyCharm 自带的终端。点击底部工具栏的 Terminal 标签页,打开的终端会自动激活项目的虚拟环境(你会看到提示符前面有 (venv) 字样)。在这里输入:

pip install pygame

等安装完成,终端会显示 Successfully installed pygame-x.x.x。

方式二:通过 PyCharm 的包管理界面。走菜单 File → Settings(macOS 上是 PyCharm → Preferences),左侧找到 Project: my_first_game → Python Interpreter。右侧列出了当前已安装的包,点击 + 号按钮,在搜索框里输入 pygame,选中它后点 Install Package,等安装完关闭窗口即可。

验证安装:在 Terminal 里输入 python -c "import pygame; print(pygame.ver)",能打印出版本号就说明安装成功了。

怎么在PyCharm中创建并运行第一个Pygame项目
图1:从确认环境到运行代码的完整操作流程

第三步:编写第一个 Pygame 程序

现在进入正题——写代码。把 main.py 里的内容全部替换成下面这段(如果没有 main.py,右键项目根目录选 New → Python File,命名为 main):

import sys
import pygame

# 初始化 Pygame 所有模块
pygame.init()

# 设置窗口大小和标题
screen_width = 640
screen_height = 480
screen = pygame.display.set_mode((screen_width, screen_height))
pygame.display.set_caption("我的第一个 Pygame 窗口")

# 定义颜色(RGB)
bg_color = (250, 251, 253)      # 浅灰白背景
rect_color = (101, 155, 155)    # 灰青色方块
text_color = (23, 50, 77)       # 深蓝文字

# 创建一个字体对象
font = pygame.font.SysFont(None, 48)
text_surface = font.render("Hello Pygame!", True, text_color)
text_rect = text_surface.get_rect(center=(screen_width // 2, 120))

# 定义一个方块的位置和速度
rect_x = 270
rect_y = 200
rect_speed = 3
direction = 1   # 1 向右,-1 向左

# 游戏主循环
clock = pygame.time.Clock()

while True:
    # 事件处理
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()

    # 更新方块位置
    rect_x += rect_speed * direction
    if rect_x + 100 >= screen_width or rect_x <= 0:
        direction *= -1

    # 绘制
    screen.fill(bg_color)
    pygame.draw.rect(screen, rect_color, (rect_x, rect_y, 100, 60))
    screen.blit(text_surface, text_rect)

    # 刷新屏幕
    pygame.display.flip()

    # 控制帧率
    clock.tick(60)

这段代码做了几件事情:初始化 Pygame、创建一个 640×480 的窗口、在窗口里画一段文字和一个会左右移动的方块,然后以每秒 60 帧的速度不断刷新画面。关掉窗口时程序正常退出。

几个要点值得解释一下:

  • pygame.init() 一次性初始化 Pygame 的所有子模块(显示、声音、字体等)。不调用这个函数,后面的功能基本都会报错。
  • set_mode() 接收一个元组 (宽, 高),返回一个 Surface 对象,它就是你的画布。
  • 游戏主循环是 Pygame 程序的核心:每一帧先处理用户事件(比如关闭窗口),然后更新数据,接着重新绘制画面,最后用 flip() 把绘制结果显示到屏幕上。
  • clock.tick(60) 限制循环速度——不加这行,循环会跑得飞快,CPU 占用率飙高,方块也会快到看不清。
怎么在PyCharm中创建并运行第一个Pygame项目
图2:Pygame 游戏主循环的四步结构——事件处理、数据更新、画面绘制、屏幕刷新

第四步:运行程序

代码写好后,运行方式有三种,选一种就行:

  1. 右键运行:在编辑器里右键点击代码空白处,选择 Run 'main'。
  2. 绿色三角:编辑器左侧行号旁边(通常在 if __name__ 那一行,或文件顶部),会出现一个绿色的运行按钮,点击即可。如果是我们这段代码,直接在 main.py 标签右键运行也行,因为代码是直接写在模块顶层的。
  3. 快捷键:macOS 按 Ctrl+Shift+R,Windows/Linux 按 Shift+F10。

运行成功的话,会弹出一个标题为"我的第一个 Pygame 窗口"的窗口,浅白色背景上有一行 "Hello Pygame!" 文字,下方有一个灰青色方块在左右来回移动。关掉这个窗口,PyCharm 底部的运行面板会显示 Process finished with exit code 0,说明程序正常退出。

如果窗口弹出来又立刻消失,检查代码里是不是漏了 while True 循环,或者 pygame.QUIT 事件里直接调用了 sys.exit() 之外的逻辑让循环提前结束了。

代码各部分拆解

上面那段代码虽然不长,但包含了 Pygame 程序的所有基本结构。这里按功能拆开来看。

导入与初始化:import pygame 导入库,pygame.init() 初始化。这两行几乎是所有 Pygame 程序的固定开头。import sys 是为了后面用 sys.exit() 干净地退出进程。

窗口创建:set_mode() 返回的 Surface 是你的"画布",后面的所有绘图操作都作用在它上面。set_caption() 设置窗口标题栏显示的文字。

颜色定义:Pygame 用 RGB 三元组表示颜色,每个分量范围是 0–255。把颜色定义成变量是一个好习惯,改起来方便,代码也更可读。

文字渲染:pygame.font.SysFont(None, 48) 创建一个使用系统默认字体、大小 48 的字体对象。render() 把文字画到一个 Surface 上,第二个参数 True 表示开启抗锯齿。get_rect(center=...) 用于居中定位。

方块运动:用一个变量 direction 控制方向,每帧移动 rect_speed 个像素,碰到窗口边缘就反转方向——这是最基本的碰撞检测思路。

怎么在PyCharm中创建并运行第一个Pygame项目
图3:项目目录与 main.py 内部代码结构对照

遇到问题怎么办

第一次运行 Pygame 项目,下面这些问题出现得比较多。

ModuleNotFoundError: No module named 'pygame'——最常见的原因是 Pygame 装到了系统 Python 里,而 PyCharm 项目用的是虚拟环境(或反过来)。在 PyCharm 底部的 Terminal 里确认提示符有 (venv),然后在这个终端里重新跑 pip install pygame。还可以检查 Settings → Python Interpreter,看列表里有没有 pygame。

窗口弹出后无响应——通常是忘了在主循环里处理 pygame.QUIT 事件。操作系统发现你的程序不响应关闭请求,就会标记窗口为"未响应"。把事件处理那段加上就好了。

中文标题或文字显示方块/乱码——SysFont(None, 48) 用的是系统默认字体,有些系统默认字体不支持中文。解决方法是指定一个支持中文的字体名,比如:

# Windows
font = pygame.font.SysFont("microsoftyahei", 36)
# macOS
font = pygame.font.SysFont("pingfangsc", 36)
# 或者使用字体文件
font = pygame.font.Font("assets/NotoSansSC-Regular.ttf", 36)

运行时 PyCharm 报 "SDK is not defined"——项目的解释器配置丢了。到 File → Settings → Project → Python Interpreter,重新选择解释器或新建一个虚拟环境。

下一步可以做什么

第一个窗口跑起来之后,你已经掌握了 Pygame 项目的基础骨架。接下来可以沿着几个方向扩展:

  • 加入键盘控制:在事件处理部分监听 KEYDOWN 事件,用方向键控制方块移动,替代自动运动。这会让你理解 Pygame 的输入系统。
  • 加载图片:用 pygame.image.load("player.png") 加载图片素材,把方块替换成角色图片。记得把图片文件放在项目目录下,路径要对得上。
  • 添加碰撞检测:放两个物体进去,用 Rect.colliderect() 检测它们是否碰撞,比如做一个接球游戏。
  • 添加声音:pygame.mixer 模块可以播放背景音乐和音效。
  • 整理代码结构:当代码超过一百行时,考虑把游戏逻辑封装进类里,分离出设置文件和资源目录。

每次添加一个新功能,运行看看效果,遇到报错就看 PyCharm 底部的错误信息和行号——这就是 PyCharm 作为 IDE 的优势,比纯命令行开发效率高不少。

怎么在PyCharm中创建并运行第一个Pygame项目
图4:本文核心要点回顾与后续学习扩展路径

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。