在上一篇内容中,我们使用Pyxel Editor绘制资源,并加载。今天我们来在游戏界面中加上文字的显示,比如得分,提示信息等内容。在Pyxel中文字的显示功能很简单,只需要一个函数就搞定pyxel.text()。首先我们看看它的参数说明col参数:文字的颜色值,pyxel内置了16种颜色,可以和Editor中对应让我们先来个简单的示例,在屏幕中显示红色的HELLO,WORLD# 代码片段def draw(self): pyxel.cls(0) # 清空屏幕,背景设为黑色 # 在(10,10)位置显示红色文字 pyxel.text(10, 10, "HELLO, TEXT!!", 7)
是不是很简单,我们来做个动态计分效果,单纯的数字并不美观,可以通过字符串格式化,让分数显示的更规范,比如固定4位,不足补0.代码如下:import pyxelimport mathimport random# 游戏窗口尺寸(宽160,高120)W, H = 160, 120 # 游戏核心类class Game: def __init__(self): """构造函数:初始化游戏""" # 初始化分数(新增) self.score = 0 # 初始化Pyxel窗口 pyxel.init(W, H, title="Hello, Pyxel!!") # 加载资源文件(可选,本文重点是文字,也可注释掉) pyxel.load("shooter.pyxres") # 启动游戏循环 pyxel.run(self.update, self.draw) def update(self): """更新逻辑:每帧更新分数""" # 每帧分数+1(模拟游戏得分,可根据实际逻辑修改) self.score += 1 def draw(self): """绘制逻辑:显示分数""" # 清空屏幕,背景为黑色 pyxel.cls(0) # 绘制格式化的分数(核心代码) pyxel.text( 10, 10, # 文字位置:屏幕左上角(10,10) "SCORE:{:04}".format(self.score), # 格式化分数为4位补零 12 # 文字颜色:亮红色(12是Pyxel的颜色码) )# 程序入口def main(): Game()if __name__ == "__main__": main()
运行后它就显示分数的增长动画了,因为update函数每次刷新都会增加计数效果大致如下:当然我们也可以加入更多的文字,只需要调整Y坐标,比如在10,30的位置显示level信息pyxel.text(10, 30, "LEVEL:01", 15) # 白色显示关卡数
是不是很容易呢?今天主要是了解text的用法,配合字符串格式化和动态更新,能实现非常不错的效果。最后,不妨自己修改一下试试,例如把分数改成白色,在屏幕右上角显示。动起来动起来,欢迎评论区互动