Pygame 简介
有不少小伙伴学习编程的初衷是想开发游戏。
虽然直接用 Python 开发商业游戏的情况并不多见,但通过 Python 开发小游戏,理解游戏的开发原理,熟悉游戏引擎的运作方式,也是很合适的。
今天就给大家介绍一下 Python 开发游戏最知名的框架 Pygame。
如果想看更详细一点的 Pygame 教程,可点击:
1. Pygame 是什么?
Pygame 是 Python 的一个免费库,专为开发 2D 游戏设计,适合刚学 Python 的新手。它能让你轻松创建贪吃蛇、打砖块等小游戏,主要功能包括:
显示图片和图形,如角色、背景。
处理键盘和鼠标操作。
播放音效和背景音乐。
检测物体碰撞。
Pygame 代码简单直观,在 Windows、Mac、Linux 上都可以运行,非常适合初学者做小游戏或练习编程。
2. 安装 Pygame
确保已安装 Python(建议选择尽量新的版本)。
打开命令行(Windows 用 CMD,Mac 用终端)。
输入命令:
pip install pygame安装成功会有相应的提示信息。
3. Pygame 快速上手
我们用一个简单的游戏来演示 Pygame 的用法:
一个方块可在屏幕底部左右移动,自动上下弹跳,碰到随机出现的金币就会加分。按空格键暂停/继续,用方向键控制左右移动。
import pygameimport random# 初始化 Pygamepygame.init()# 创建窗口screen = pygame.display.set_mode((800, 600))pygame.display.set_caption("弹跳方块吃金币")# 方块和金币square = pygame.Rect(400, 550, 50, 50) # 方块位置coin = pygame.Rect(random.randint(0, 750), random.randint(0, 500), 30, 30) # 金币位置speed_x, speed_y = 5, -10 # 方块初始速度score = 0 # 分数# 时钟和字体clock = pygame.time.Clock()font = pygame.font.SysFont(None, 36)# 游戏主循环running = Truewhile running:# 处理事件for event in pygame.event.get():if event.type == pygame.QUIT:running = False# 键盘控制左右移动keys = pygame.key.get_pressed()if keys[pygame.K_LEFT] and square.left > 0:square.x -= speed_xif keys[pygame.K_RIGHT] and square.right < 800:square.x += speed_x# 方块上下弹跳square.y += speed_yif square.top <= 0:speed_y = 10 # 碰到顶部向下if square.bottom >= 600:speed_y = -10 # 碰到底部向上# 检测碰撞if square.colliderect(coin):score += 1coin.x, coin.y = random.randint(0, 750), random.randint(0, 500)# 绘制画面screen.fill((255, 255, 255)) # 白色背景pygame.draw.rect(screen, (255, 0, 0), square) # 红色方块pygame.draw.circle(screen, (255, 255, 0), coin.center, 15) # 黄色金币score_text = font.render(f"Score: {score}", True, (0, 0, 0))screen.blit(score_text, (10, 10)) # 显示分数pygame.display.flip()clock.tick(60) # 60 帧每秒pygame.quit()
代码说明:
窗口和对象:创建 800x600 窗口,用 pygame.Rect 表示方块和金币。
移动:方向键控制左右,speed_y 实现上下弹跳。
碰撞:用 square.colliderect(coin) 检测吃金币。
画面:用 screen.fill 清屏,pygame.draw 画图形,screen.blit 显示文字。
保存为 game.py,运行后用方向键移动方块,吃金币加分!
4. Pygame 的优缺点
优点:
简单易学,适合 Python 新手。
免费,跨平台运行。
社区活跃,教程和素材丰富。
缺点:
仅限 2D 游戏,功能较简单。
大型游戏性能可能不足。
需手动实现复杂逻辑。
5. 其他 Python 游戏框架及适合场景
以下是基于 Python 的其他游戏开发模块:
Pygame Zero:极简化的 Pygame 变种,适合儿童或零基础者。无需手动写事件循环,适合快速开发简单游戏(如迷宫、贪吃蛇)。
Arcade:现代 2D 游戏库,性能优于 Pygame,支持更多图形效果,适合稍复杂的 2D 游戏(如平台跳跃游戏)。
Kivy:跨平台框架,支持 PC 和移动端(Android/iOS),适合开发触摸屏游戏或交互应用(如手机小游戏)。
Panda3D:支持 3D 和 2D 游戏,功能强大但稍复杂,适合需要 3D 效果的项目(如简单 3D 冒险游戏)。
选择建议:
零基础或小游戏:Pygame Zero,代码最少
简单 2D 游戏:Pygame,平衡易用性和功能
复杂 2D 游戏:Arcade,性能更好
移动端游戏:Kivy
3D 游戏:Panda3D
6. 总结
Pygame 是 Python 初学者开发 2D 游戏的绝佳工具,简单、免费、易上手。通过弹跳方块游戏,你可以看到 Pygame 轻松实现图形、输入和碰撞检测。相比其他 Python 游戏框架,Pygame 适合快速开发小型 2D 游戏。如果你也对游戏开发感兴趣,那就快用 Pygame,创造你的第一个游戏吧!
如果本文对你有帮助,欢迎点赞、评论、转发。你们的支持是我更新的动力~