Pyxel 是一款特别友好的 Python 像素游戏开发库,专门用来做复古像素风的小游戏,也是 Python 里做像素游戏的绝佳入门选择。它轻量化、简单好上手,不用懂复杂的游戏引擎知识,哪怕你是 Python 新手,也能很快用它做出能玩的小游戏,整体风格主打一个复古怀旧的 8bit 像素风,像小时候玩的红白机、掌机游戏那种感觉,特别有味道。这也是就是说,对新手非常的友好,通过实践做个小游戏,更能提高学习的兴趣。
它最吸引人的一点,是不用额外装绘图软件画像素、不用装音频软件做音效,甚至不用依赖其他 Python 游戏库,Pyxel 自己就把写代码、画像素图、调复古配色、做 8bit 音效 / 背景音乐这些事全包了,真正做到一站式搞定像素小游戏的所有开发环节,这也是它和其他 Python 游戏库最大的区别。
Pyxel 是标准的 Python 第三方库,安装方式和装其他库一模一样,打开电脑的终端 / 命令提示符,输入一行命令就行,国内小伙伴建议用镜像源,安装速度会快很多,不会卡顿超时:
# 基础安装方式pip install pyxel# 国内镜像源安装(推荐,速度更快)pip install pyxel -i https://mirrors.aliyun.com/pypi/simple/
其实所有用 Pyxel 做的游戏,就像搭积木一样简单:
首先,我们会先用 pyxel.init() 写一行代码,设定好游戏窗口的大小、游戏标题、每秒的画面帧数,这就相当于给游戏搭好了一个「空画布」,是所有 Pyxel 游戏的第一步。
然后,Pyxel 有一个「游戏主循环」的机制,这个循环会一直跑,每秒跑 60 次(也就是我们设定的帧率),每次循环里都会做两件事,对应两个我们自己写的函数,这两个函数就是 Pyxel 的核心:一个是 update() 函数,这个函数只负责处理游戏的逻辑—— 比如检测你有没有按方向键、角色的位置要不要移动、游戏里的敌人会不会往前走、有没有撞到障碍物这些,只改游戏里的数值,不做任何画面的绘制。另一个是 draw() 函数,这个函数紧跟在 update() 之后执行,只负责画游戏画面—— 根据 update 里更新好的角色位置,画出角色、画出背景、画出文字提示,只做画面渲染,不管游戏逻辑。
简单说就是:update() 负责“游戏里的事发生了什么”,draw() 负责把发生的事画出来让你看到。最后我们用 pyxel.run(update, draw) 启动这个循环,游戏就开始运行了。废话不说,看个简单小例子:
import pyxel# 初始化游戏窗口:宽160 高120,游戏标题自定义,帧率60(画面丝滑不卡顿)pyxel.init(160, 120, title="我的第一个Pyxel像素游戏", fps=60)# 定义玩家(粉色方块)的初始位置,在窗口正中间player_x, player_y = 80, 60# 游戏逻辑处理:只负责移动方块,不画画面def update(): global player_x, player_y # 按方向键就移动,每次移动2个像素,手感刚好 if pyxel.btn(pyxel.KEY_LEFT): player_x -= 2 if pyxel.btn(pyxel.KEY_RIGHT): player_x += 2 if pyxel.btn(pyxel.KEY_UP): player_y -= 2 if pyxel.btn(pyxel.KEY_DOWN): player_y += 2# 游戏画面绘制:只负责画东西,不管逻辑def draw(): pyxel.cls(0) # 先把整个窗口清成黑色,避免画面残留重影 pyxel.rect(player_x-4, player_y-4, 8, 8, 8) # 画8x8的粉色小方块 pyxel.text(45, 10, "按方向键移动方块哦~", 11) # 画白色的提示文字# 启动游戏,缺一不可pyxel.run(update, draw)
上面就是效果图,里面的粉色方块能跟着你的方向键自由移动,画面流畅,这就是一个完整的 Pyxel 小游戏雏形了。从这个例子就能看出来,Pyxel 真的能用很少的代码,做出能玩的游戏。
总之,它不是最强大的游戏库,但绝对是最适合 Python 新手入门游戏开发、最能快速感受到做游戏的快乐的库,也是能提升学习兴趣的一个不错的工具。