Skip to content

核心API变化

Xrysnow edited this page Dec 18, 2020 · 1 revision

接口变化

大多数接口与LuaSTGPlus相同。提供接口文档,适用于IDE的文档提示功能,以EmmyLua的格式编写。

框架函数

  • SetFPS,SetVsync可以在运行中使用。
函数 状态
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属性直接获取和设置各分量的值