Cpse核心文件位于./CpseCore/中,主文件夹中DemoGame.py是基于Cpse开发的一款示例游戏。详细介绍以及说明文档请查看CPSE2说明文档.pdf
The CPSE core file is located in ./CpseCore/ , DemoGame.py is a sample game developed based on CPSE. Please refer to CPSE2说明文档.pdf for detailed introduction and documentation
CPSE2是一款基于Python的Windows平台控制台画面渲染引擎,提供了丰富的游戏引擎功能,可以实现在Windows控制台高效率渲染画面以及开发游戏。
Cpse2 is a Python based console image rendering engine for Windows platform. It provides rich game engine functions and can achieve efficient rendering of images and game development on Windows console.
CpseEngine为CPSE2基本类,负责CPSE2的画面渲染,进行CPSE2的任何渲染操作均需要通过实例化后的CpseEngine进行操作,CpseEngine中亦包含许多实用方法为开发提供帮助。
Code | |
---|---|
Cpse.CpseEngine() | |
参数列表 | |
None | |
示例Code | |
cpse = Cpse.CpseEngine() |
CpseFrame为CPSE2基本类,负责CPSE2的画面组建,所有CPSE2所渲染出的画面均为一个CpseFrame,可通过调整实例化后的CpseFrame改变画面。CpseFrame中可添加CpseObject,在CpseFrame中可以组织调整 CpseObject,最后提供给CpseEngine进行渲染。
Code | ||
---|---|---|
Cpse.CpseFrame(frameSize:tuple) | ||
参数列表 | ||
frameSize | Tuple | Frame的宽高 |
Code | ||
frame = Cpse.CpseFrame((50,50)) |
CpseObject为CPSE2基本类,作为CPSE2画面的基本组成部分。
Code | ||
---|---|---|
Cpse.CpseObject(objList:list,anchorPoint:tuple) | ||
参数列表 | ||
objList | List | Object的组成列表 |
anchorPoint | Tuple | Object的锚点 |
Code | ||
obj = Cpse.CpseObject([[0,0,0],[1,0,0],[0,1,0],[1,1,0]],(0,0)) |
Code | ||
---|---|---|
CpseEngine.StartRenderingAndShowThread(frame,maxFPs,updata) | ||
介绍 | ||
启动CpseEngine渲染Frame并Show的进程 | ||
参数列表 | ||
frame | CpseFrame | 被渲染的Frame |
maxFPs | int | 最大渲染帧率;可空,默认100 Fps |
updata | function | 更新函数,每渲染帧会执行一次;可空,默认无函数 |
Code | ||
cpse.StartRenderingAndShowThread(frame,maxFPs=120,updata=updata) |
Code |
---|
CpseEngine.ExitRenderingAndShowThread() |
介绍 |
结束CpseEngine渲染Frame并Show的进程 |
Code |
cpse.ExitRenderingAndShowThread() |
Code | ||
---|---|---|
CpseEngine.RenderingFrame(frame) | ||
介绍 | ||
渲染Frame,返回渲染完成后的CRObj对象,该对象为Frame的渲染结果。该方法仅渲染Frame,并不会显示到控制台,需使用CpseEngine.ShowCRObj才可以将CRObj显示到控制台。如非使用预渲染技术或自定义渲染过程,建议直接使用包含渲染和显示的CpseEngine.StartRenderingAndShowThread() | ||
参数列表 | ||
frame | CpseFrame | 被渲染的Frame |
返回值类型 | ||
CRObj | 已完成渲染的Frame,可用CpseEngine.ShowCRObj显示到控制台 | |
Code | ||
crobj = cpse.RenderingFrame(frame) |
Code | ||
---|---|---|
CpseEngine.ShowCRObj(crobj) | ||
介绍 | ||
将已经完成渲染的Frame显示到控制台,该方法只会显示一帧,请配合循环使用。如非使用预渲染技术或自定义渲染过程,建议直接使用包含渲染和显示的CpseEngine.StartRenderingAndShowThread() | ||
参数列表 | ||
Crobj | CRObj | 已经渲染完成的Frame,可用CpseEngine.RenderingFrame渲染Frame |
Code | ||
cpse.ShowCRObj(crobj) |
Code | ||
---|---|---|
CpseEngine.ObjectMoveKeyboardControlSet(cpseFrame,obj,buttonTuple,speed) | ||
介绍 | ||
快速创建CpseObject键盘控制上下左右移动 | ||
参数列表 | ||
cpseFrame | CpseFrame | 被控制的CpseObject所在的Frame |
obj | CpseObject | 被控制的CpseObject |
buttonTuple | Tuple | 上下左右四个方向的控制按键;可空,默认为("w","s","a","d") |
speed | int | 移动速度;可空,默认为1 |
Code | ||
cpse.ObjectMoveKeyboardControlSet(frame,obj) |
Code | ||
---|---|---|
CpseEngine.WaitRun(time,function) | ||
介绍 | ||
等待时间后执行函数 | ||
参数列表 | ||
time | float | 等待的时间 |
function | function | 被执行的函数 |
Code | ||
cpse.WaitRun(2,Run) |
Code | ||
---|---|---|
CpseEngine.WaitRunRe(time,function) | ||
介绍 | ||
每过去指定时间后运行函数 | ||
参数列表 | ||
time | float | 等待的时间 |
function | function | 被执行的函数 |
Code | ||
cpse.WaitRunRe(2,Run) |
Code | ||
---|---|---|
CpseEngine.GetKeyboardButtonDown(key) | ||
介绍 | ||
获取按键是否按下 | ||
参数列表 | ||
Key | Any | 被获取的按键,字母按键提供字母字符串,控制按键调用Cpse的key变量 |
Code | ||
cpse.GetKeyboardButtonDown("j") cpse.GetKeyboardButtonDown(Cpse.key.ctrl_l) |
Code | ||
---|---|---|
CpseFrame.AddObject(obj,pos) | ||
介绍 | ||
用于往Frame中添加Object | ||
参数列表 | ||
obj | CpseObject | 被添加的CpseObject |
pos | tuple | obj在Frame中的位置 |
Code | ||
frame.AddObject(obj,(0,1)) |
Code | ||
---|---|---|
CpseFrame.AddObject(obj) | ||
介绍 | ||
删除Frame中第一个同类型的CpseObject | ||
参数列表 | ||
obj | CpseObject | 被删除的CpseObject |
Code | ||
frame.DelObject(obj) |
Code | ||
---|---|---|
CpseFrame.SetObjectPoint(obj,pos) | ||
介绍 | ||
设置Object在Frame中的位置 | ||
参数列表 | ||
obj | CpseObject | 被设置的CpseObject |
pos | tuple | 设置点 |
Code | ||
frame.SetObjectPoint(obj,(50,50)) |
Code | ||
---|---|---|
CpseFrame.GetObjectPoint(obj) | ||
介绍 | ||
获取Object在Frame中的位置 | ||
参数列表 | ||
obj | CpseObject | 被获取的CpseObject |
返回值类型 | ||
tuple | CpseObject的所在点 | |
Code | ||
pos = frame.GetObjectPoint(obj) |
Code | ||
---|---|---|
CpseFrame.MoveObject(obj,direction = "f",distance = 1) | ||
介绍 | ||
移动Object | ||
参数列表 | ||
obj | CpseObject | 被移动的CpseObject |
direction | str | 移动方向,提供str指定方向,默认为f("f"前,"b"后,"u"上,"d"下) |
distance | int | 移动距离,默认为1 |
Code | ||
frame.MoveObject(obj) |
Code | ||
---|---|---|
CpseFrame.SetObjectLifeCycle(obj,time,function) | ||
介绍 | ||
设置Object的生命周期,生命周期时间结束后会被销毁 | ||
参数列表 | ||
obj | CpseObject | 被设置的CpseObject |
time | float | 生命周期时间 |
function | function | 生命周期函数,生命周期结束后会执行一次 |
Code | ||
frame.SetObjectLifeCycle(Obj,1) |
Code | ||
---|---|---|
CpseObjct.SetObjectList(_list) | ||
介绍 | ||
设置Object的列表 | ||
参数列表 | ||
_list | list | 被设置的列表 |
Code | ||
obj.SetObjectList(_list) |
Code | |
---|---|
CpseObjct.GetObjectList() | |
介绍 | |
获取Object的ObjectList | |
返回值类型 | |
list | CpseObject的List |
Code | |
_list = obj.GetObjectList() |
Code | ||
---|---|---|
CpseObjct.SetAnchorPoint(anchorPoint) | ||
介绍 | ||
设置Object的锚点 | ||
参数列表 | ||
anchorPoint | tuple | 被设置的锚点 |
Code | ||
obj.SetAnchorPoint((1,1)) |
Code | |
---|---|
CpseObjct.GetAnchorPoint() | |
介绍 | |
获取Object的锚点 | |
返回值类型 | |
tuple | CpseObject的锚点 |
Code | |
pos = obj.GetAnchorPoint() |
Code | ||
---|---|---|
CpseObjct.SetTag(tag) | ||
介绍 | ||
设置Object的标签 | ||
参数列表 | ||
tag | str | 标签名 |
Code | ||
obj.SetTag("Player") |
Code | |
---|---|
CpseObjct.GetTag() | |
介绍 | |
获取Object的标签 | |
返回值类型 | |
str | CpseObject的标签 |
Code | |
tag = obj.GetTag() |
Code | ||
---|---|---|
CpseObjct.SetKeyPoint(posTag,pos) | ||
介绍 | ||
用于创建/更改Object的关键点 | ||
参数列表 | ||
posTag | str | 关键点标签 |
pos | tuple | 关键点坐标 |
Code | ||
obj.SetKeyPoint("muzzle",(-1,-1)) |
Code | ||
---|---|---|
CpseObjct.GetKeyPoint(posTag) | ||
介绍 | ||
获取Object的关键点 | ||
参数列表 | ||
posTag | str | 关键点标签 |
返回值类型 | ||
tuple | CpseObject的关键点坐标 | |
Code | ||
pos = obj.GetKeyPoint("muzzle") |
Code | ||
---|---|---|
CpseObjct.AcceptCollisionStart(trigger) | ||
介绍 | ||
启用Object的碰撞检测,每帧若触发碰撞会触发trigger函数 | ||
参数列表 | ||
trigger | function | 触发函数,该函数需要设置接受下述参数:"target",用于获取被碰撞对象的CpseObject;"selfObj",用于碰撞体获取自身。 |
Code | ||
obj.AcceptCollisionStart(Trigger_Collision_Obj) |
Code |
---|
CpseObjct.AcceptCollisionEnd() |
介绍 |
关闭Object的碰撞检测 |
Code |
obj.AcceptCollisionEnd() |
Code | |
---|---|
CpseObjct.GetKeyPoint(posTag) | |
介绍 | |
将该CpseObject复制,返回复制完成的CpseObject | |
返回值类型 | |
CpseObject | 复制完成的CpseObject |
Code | |
tempObj = Obj.CopyObject() |
Code | ||
---|---|---|
CpseObjct.TextToObjectList(text,color = 0x07) | ||
介绍 | ||
静态方法。将Text转换为CpseObjectList,以此显示文字,暂不支持多行。部分半角符号会出现渲染错误。 | ||
参数列表 | ||
posTag | str | 被转换的文字 |
color | int | 文字颜色,提供十六进制数,默认为黑色(0x07) |
返回值类型 | ||
list | 返回CpseObjectList | |
Code | ||
obj = CpseObject(CpseObject.TextToObjectList(f"您的得分:{score}"),(0,0)) |