# API 简介&约定
miniExtend 是一个为迷你世界脚本设计的 lua 库。 使用 miniExtend 可以极大简化迷你世界脚本开发。 使用 miniExtend 并不困难。
👈点击查看 miniExtend 的优势
miniExtend 允许你像正常一样调用 lua 基本函数,例如 os.execute
函数,该函数正常情况是不能直接调用的。
miniExtend 允许你将脚本代码集中在全局作用域下管理,只需在 UI 作用域下添加简短的脚本并稍作修改即可,而不是在各个_作用域_之间来回切换,通常无法直接在全局作用域下绑定绑定UI 事件。
miniExtend 允许你执行基于对象的迷你世界 API ,这甚至允许你将原来所需的 3 个参数降至 0 个!一个例子是 CustomUI.UIView.Element:show()
,首先根据对象自身属性确定 2 个参数,然后根据 _G2["__OBJID"]
再确定 1 个参数!
阅读源代码,你会发现更多有趣的内容!
# 代码规范
- 使用
:
而不是.
调用 miniExtend 作用域和对象的函数。 - 如果没有说明对象属性的意义,不要修改这个属性,否则可能导致错误。
- miniExtend 不经常检查参数是否正确,请保证实参的正确性!
# 定义
# 脚本作用域
脚本文件所处的位置叫做脚本文件的作用域。
所处的位置和脚本文件在文件结构上的位置有关,例如有的脚本文件在地图文件夹中,而有的在 UI 界面文件夹中。
所处的位置决定了脚本在什么时候执行,以及脚本执行时的环境,这就是定义它的意义。
WARNING
不同的脚本作用域的 _G
是不同的,所以不同作用域下的脚本是隔离的,但有其它方式来让它们交流。
更多内容详见 core.lua
。
在 miniExtend ,一般将作用域分为两类:
全局作用域:该脚本文件位于地图文件夹中,辨别方式是其在脚本编辑器创建,其性质是该作用域下的文件总是在可见脚本中最先执行。
UI 作用域:该脚本文件位于自定义 UI 界面文件夹中,辨别方式是其在 UI 编辑器中创建,其性质是该作用域下的文件晚于全局作用域下的脚本文件执行,脚本可以使用
ScriptSupportEvent
监听所属 UI 界面的事件,全局作用域和其它 UI 作用域无法使用ScriptSupportEvent
这可能很难理解
没关系!你只需知道如何区分全局作用域和 UI 作用域即可!
除非你是 miniExtend 代码仓库贡献者,那样的话建议你理解它!
# 游戏帧
游戏帧是游戏的基本事件单位,游戏帧从 0 开始(以下简称“帧”)。
游戏数据每帧改变一次。
从第 0 帧开始,平均每 0.05秒 会进入新的游戏帧。每个游戏帧的时长是无规律,不确定的,这可能与游戏的计算量有关。
可以近似的把 1 帧当做 0.05s ,但要知道它并不是真正的 0.05s 。记住,不要利用游戏帧来做精密的计时器,类似的功能可以用 os.clock
替代。
对于延续性事件(例如玩家挖掘方块),每一帧会触发一次事件,这也体现了游戏帧的意义。
# 代码示例
本文档包含了一些代码示例,让它们正确运行的前提是你已经搭建好 miniExtend 环境,有的代码可能会有其它要求。
TIP
对于 UI 实例,在代码开头会列出一些局部变量,表示 UI 界面或元件的 id ,不要忘记替换它们!
# 关键字
以下是 miniExtend 关键字,避免意外地使用它们作为自己的标识符,改变脚本添加的函数的意义不会影响 miniExtend 的使用,但有的 API 可能会使用这些函数从而导致脚本无法正常运行。
- 脚本添加的函数:
copy_tableisTypeError
print_console
printtag
warn
- miniExtend 全局函数
getObjectId
setObjectId
- miniExtend 全局表/作用域/类
_G2
Console
CustomUI
Event