怎么在PyCharm中创建并运行第一个Pygame项目
详细讲解如何在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)",能打印出版本号就说明安装成功了。
第三步:编写第一个 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 占用率飙高,方块也会快到看不清。
第四步:运行程序
代码写好后,运行方式有三种,选一种就行:
- 右键运行:在编辑器里右键点击代码空白处,选择 Run 'main'。
- 绿色三角:编辑器左侧行号旁边(通常在
if __name__那一行,或文件顶部),会出现一个绿色的运行按钮,点击即可。如果是我们这段代码,直接在main.py标签右键运行也行,因为代码是直接写在模块顶层的。 - 快捷键: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 个像素,碰到窗口边缘就反转方向——这是最基本的碰撞检测思路。
遇到问题怎么办
第一次运行 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 的优势,比纯命令行开发效率高不少。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













