有不少小伙伴学习编程的初衷是想开发游戏。
虽然直接用 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 pygame
import random
# 初始化 Pygame
pygame.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 = True
while 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_x
if keys[pygame.K_RIGHT] and square.right < 800:
square.x += speed_x
# 方块上下弹跳
square.y += speed_y
if square.top <= 0:
speed_y = 10 # 碰到顶部向下
if square.bottom >= 600:
speed_y = -10 # 碰到底部向上
# 检测碰撞
if square.colliderect(coin):
score += 1
coin.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()代码说明:
保存为 game.py,运行后用方向键移动方块,吃金币加分!

4. Pygame 的优缺点
优点:
缺点:
5. 其他 Python 游戏框架及适合场景
以下是基于 Python 的其他游戏开发模块:
选择建议:
6. 总结
Pygame 是 Python 初学者开发 2D 游戏的绝佳工具,简单、免费、易上手。通过弹跳方块游戏,你可以看到 Pygame 轻松实现图形、输入和碰撞检测。相比其他 Python 游戏框架,Pygame 适合快速开发小型 2D 游戏。如果你也对游戏开发感兴趣,那就快用 Pygame,创造你的第一个游戏吧!
如果本文对你有帮助,欢迎点赞、评论、转发。你们的支持是我更新的动力~
感谢转发和点赞的各位~
本文分享自 Crossin的编程教室 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!