节点接口(Node)
节点脚本可用于渲染形状、图像、文本、画板等。 脚本化节点可附加到任意 Node 上,并在宿主节点的本地变换空间中渲染。
更多信息请参阅 节点脚本(Node Scripts)。
方法(Methods)
init
init(self: T, context: Context) -> boolean
节点创建时调用一次。如果初始化成功则返回 true。
有关使用 init 的更完整示例,请参阅 实例化组件。
-- 定义脚本的数据和输入。
type MyNode = {}
-- 脚本初始化时调用一次。
function init(self: MyNode, context: Context): boolean
return true
end
-- 返回一个工厂函数,Rive 使用它来构建 Node 实例。
return function(): Node<MyNode>
return {
init = init
}
end
advance
advance(self: T, seconds: number) -> boolean
可选的每帧更新。如果节点应继续接收 advance 调用则返回 true。
有关使用 advance 的更完整示例,请参阅 固定步长前进。
-- 定义脚本的数据和输入。
type MyNode = {}
-- 每帧调用以推进模拟。
-- 'seconds' 是自上一帧以来经过的时间。
function advance(self: MyNode, seconds: number): boolean
return false
end
-- 返回一个工厂函数,Rive 使用它来构建 Node 实例。
return function(): Node<MyNode>
return {
advance = advance,
}
end
update
update(self: T) -> ()
当输入值变化时调用。
-- 定义脚本的数据和输入。
type MyNode = {}
-- 当任何脚本输入值变化时调用。
function update(self: MyNode)
print('An script input value has changed.')
end
-- 返回一个工厂函数,Rive 使用它来构建 Node 实例。
return function(): Node<MyNode>
return {
update = update,
}
end
draw
draw(self: T, renderer: Renderer) -> ()
调用以使用提供的 渲染器(Renderer) 渲染节点。
有关使用 draw 的更完整示例,请参阅 实例化组件。
-- 定义脚本的数据和输入。
type MyNode = {}
-- 每帧调用(在 advance 之后)以渲染内容。
function draw(self: MyNode, renderer: Renderer) end
-- 返回一个工厂函数,Rive 使用它来构建 Node 实例。
return function(): Node<MyNode>
return {
draw = draw,
}
end
drawCanvas
drawCanvas(self: T) -> ()
在 drawCanvases 阶段(在 draw 之前)调用。 所有 canvas:beginFrame / canvas:beginRenderPass 调用都必须在此处进行。
pointerDown
pointerDown(self: T, event: PointerEvent) -> ()
指针按下事件处理函数。
function handlePointerDown(self: MyGame, event: PointerEvent)
print('Pointer Position: ', event.position.x, event.position.y)
event:hit()
end
return function(): Node<MyGame>
return {
init = init,
advance = advance,
draw = draw,
pointerDown = handlePointerDown,
}
end
pointerMove
pointerMove(self: T, event: PointerEvent) -> ()
指针移动事件处理函数。
function handlePointerMove(self: MyGame, event: PointerEvent)
print('Pointer Position: ', event.position.x, event.position.y)
event:hit()
end
return function(): Node<MyGame>
return {
init = init,
advance = advance,
draw = draw,
pointerMove = handlePointerMove,
}
end
pointerUp
pointerUp(self: T, event: PointerEvent) -> ()
指针抬起事件处理函数。
function handlePointerUp(self: MyGame, event: PointerEvent)
print('Pointer Position: ', event.position.x, event.position.y)
event:hit()
end
return function(): Node<MyGame>
return {
init = init,
advance = advance,
draw = draw,
pointerUp = handlePointerUp,
}
end
pointerExit
pointerExit(self: T, event: PointerEvent) -> ()
指针离开事件处理函数。
function handlePointerExit(self: MyGame, event: PointerEvent)
print('Pointer Position: ', event.position.x, event.position.y)
event:hit()
end
return function(): Node<MyGame>
return {
init = init,
advance = advance,
draw = draw,
pointerExit = handlePointerExit,
}
end
gamepadConnected
gamepadConnected(self: T, event: GamepadConnected) -> ()
游戏手柄连接事件处理函数。
gamepadEvent
gamepadEvent(self: T, event: GamepadEvent) -> ()
游戏手柄输入变化事件处理函数。
gamepadDisconnected
gamepadDisconnected(self: T, event: GamepadDisconnected) -> ()
游戏手柄断开事件处理函数。