核心API变化 - Xrysnow/LuaSTG-x GitHub Wiki
接口变化
大多数接口与LuaSTGPlus相同。提供接口文档,适用于IDE的文档提示功能,以EmmyLua的格式编写。
框架函数
函数 |
状态 |
ChangeVideoMode |
=>Lua |
DoFile |
|
ExtractRes |
=>Lua |
GetFPS |
|
LoadPack |
=>Lua |
Print |
|
SetFPS |
|
SetResolution |
=>Lua |
SetSplash |
=>Lua |
SetTitle |
=>Lua |
SetVsync |
|
SetWindowed |
=>Lua,弃用 |
ShowSplashWindow |
弃用 |
SystemLog |
|
UnloadPack |
=>Lua |
绘图函数
- PostEffectCapture / PostEffectApply暂时不能使用,请使用CreateRenderTarget / PushRenderTarget / PopRenderTarget代替。由于实现原因,PostEffectCapture / PostEffectApply需要创建临时对象,出于性能考虑,只提供了一个临时对象。
- 增加函数:CreateShaderProgramFromPath, CreateShaderProgramFromString,用于编译 shader并提供错误信息。编译成功时返回cocos::backend::Program对象,否则返回nil并将错误信息写入日志。
函数 |
状态 |
BeginScene |
|
CreateGLProgramFromPath |
新增 |
CreateGLProgramFromString |
新增 |
EndScene |
|
PopRenderTarget |
=>Lua |
PostEffect |
=>Lua |
PostEffectApply |
=>Lua,弃用 |
PostEffectCapture |
=>Lua,弃用 |
PushRenderTarget |
=>Lua |
RenderClear |
|
SetFog |
|
SetOrtho |
|
SetPerspective |
|
SetViewport |
|
输入控制函数
- GetLastChar暂未实现。
- 按键代码与plus不同,见src/keycode.lua。不影响使用。
- 增加一系列手柄功能相关的函数。其使用已由其他lua代码完成。
- 手柄按键不再映射到固定按键代码,而是直接影响GetKeyState和GetLastKey的返回值。
函数 |
状态 |
GetKeyState |
|
GetLastChar |
暂未实现 |
GetLastKey |
|
GetMousePosition |
|
GetMouseState |
|
对象控制函数
- 增加RegisterClass函数。其使用已由其他lua代码完成。
- 增加GetLastXY, SetLastXY, UpdateParticle, FreeObject, Clone, RawNew函数,用于提供对ex+0.80d的部分兼容。
- CollisionCheck函数可以接受游戏对象作为参数。
- 增加CollisionCheck3D函数。
- Del和Kill函数可以接受碰撞组或游戏对象数组作为参数。
- 增加函数BindNode,用于将cocos::Node对象绑定到游戏对象。
渲染函数
- 增加RenderSector函数,用于boss血条渲染。
- 增加DrawCollider函数,用于绘制碰撞盒。此功能主要逻辑由lua代码控制,见src/core/corefunc.lua。
函数 |
状态 |
DrawGroupCollider |
新增 |
Render |
=>Lua |
Render4V |
=>Lua |
RenderRect |
=>Lua |
RenderSector |
新增 |
RenderTexture |
|
资源控制函数
- LoadFont仅支持HGE的纹理字体。由于cocos只支持BMFont格式,加载是通过内部转换实现的,转换存在一定限制。后续会提供加载BMFont格式的功能。
- LoadTTF参数由name, path, width, height改为name, path, size。
- LoadFX只能加载用GLSL编写的shader,支持像素着色器和顶点着色器,详见doc/lstg/resource.lua。内置的boss扭曲效果已经重写。DX与OGL的坐标系不同,不再需要翻转y轴,编写shader时请注意。
- 增加函数GetImageScale,弃用函数IsRenderTarget。
- 资源控制函数全部交由lua实现。
声音控制函数
- 由于实现原因,以流方式播放的声音更改播放位置时存在少量延迟,获取播放位置的精度受到限制。
- 声音控制函数全部交由lua实现。
文本渲染函数
- 文本渲染函数全部交由lua实现。
- 增加CalcTextSize函数,用于计算文字渲染后的尺寸,详见src/core/respool.lua。
杂项
- Execute函数已删除,请使用Lua提供的os.execute。
其它
- json/cjson模块由C实现改为cocos提供的Lua实现。
- 不推荐使用lfs模块,请改用plus或cocos提供的接口。
- 颜色对象可以通过a, r, g, b属性直接获取和设置各分量的值