例子
+在这一小节中会较多的介绍更多的一些预定义函数, 以及定义一些自己的工具函数等等, +在后面的节中还会包含一些 helper 在 C# 侧协助实现的函数.
+ +// TODO
+ + + + + + +diff --git a/404.html b/404.html index e015aa1..1e35f9d 100755 --- a/404.html +++ b/404.html @@ -736,11 +736,31 @@
Note
我个人不太会配置这种 lua 环境, 所以如果你遇到了大量的未定义警告你可以选择在设置中搜索 Lua.diagnostics.enable
并将其关闭.
顺便, 其中第一个参数的类型是个 Vector2
, 表示一个二维向量, 这种类型的值你可以调用 vector2(1, 1)
函数来从返回值得到,
顾名思义它的第一个参数是 x 坐标, y 坐标. 这里它的含义是玩家死亡时的特效方向.
// TODO
+从这一小节开始就需要使用一小些 C# 知识了, 不过不需要太多, 你只需要能看懂 C# 侧的函数, 字段, 属性等的定义就行.
+要引用一个 C# 类, 首先需要在文件顶部使用 require 函数:
+1 +2 +3 +4 +5 |
|
参数需要以 "#<完整类名>" 格式传入, 比如上述代码就会得到一个 C# 类 Celeste
, 这样我们可以来调用一下产生冻结帧的静态方法:
1 +2 +3 +4 +5 |
|
就像你在 C# 中所做的一样, 不过这里使用上面获取到的 celeste
作为你在 C# 中书写的类名. 上述代码应该会导致你进入 trigger 时冻结 0.5 秒.
通常, 如果你需要访问 C# 代码对玩家做一些有趣的变动, 获取玩家类的实例以及在实例上调用方法是必不可少的.
+在 LuaCutscene 中我们可以使用预定义和赋值的 player
全局变量, 也就是在任何方法内都能使用的变量, 例如, 在进入 trigger 时将玩家的冲刺设为 2:
1 +2 +3 |
|
上述代码访问了 player 全局变量, 并且设置其 Dashes
字段为 2, 也就是设置冲刺数为2, 不过这样会导致在空中也恢复为 2, 所以我们加入在是否在安全地面(草莓能结算的那种)上的检测:
1 +2 +3 +4 +5 |
|
上述代码中 OnSafeGround
就是一个属性. 不过上面这段代码有一些问题, 当你从上往下掉入 trigger 时, 只有进入的那一帧才会检测并恢复冲刺,
+这有时候就不是我们想要的结果, 所以我们使用一个新的特殊函数 onStay
:
1 +2 +3 +4 +5 |
|
这会让这段代码在玩家接触到 trigger 的每一帧都执行代码, 符合我们目前的需求. 初次之外还有另外两个: onEnter
和 onLeave
,
+它们都不是协程函数, 前者在玩家进入 trigger 时触发(这与 onBegin
不同, 比如在剧情进行时你依然可以控制进出 trigger),
+后者在玩家离开 trigger 时执行.
当然我们还可以调用一些方法, 比如剧情开始时强制丢弃抓取物:
+1 +2 +3 |
|
注意在调用成员方法时我们需要使用 : 符号, 这是到目前为止的一个特例.
+对于私有成员的访问, 在 Everest Core (截止 4446) 上有一些问题导致完全不能访问, +经过询问似乎是 Core 的一些缓存问题, 在 Stable 上不会出现, 故这里暂时跳过, +相关私有成员访问可在 C# 侧操作作为替代.
+相信如果你没有太多 C# 知识的话, 这一小节你肯定是很困惑不知道发生了什么的, 不过没关系, 你依然可以直接使用后续提到的代码段和现成的函数来做你喜欢的事.
@@ -1519,10 +1639,10 @@在这一小节中会较多的介绍更多的一些预定义函数, 以及定义一些自己的工具函数等等, +在后面的节中还会包含一些 helper 在 C# 侧协助实现的函数.
+ +// TODO
+ + + + + + +diff --git a/extra_luacs/examples/index.html b/extra_luacs/examples/index.html new file mode 100755 index 0000000..5b31b52 --- /dev/null +++ b/extra_luacs/examples/index.html @@ -0,0 +1,937 @@ + + + +
+ + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+