Skip to main content

createTrigger 创建触发器

createTrigger

类型: MethodDeclaration

所属类: CommandFunctionList

定义位置: command.ts

描述

创建触发器

参数

参数名类型描述默认值
\{triggerId, caster, origin, angle, distance, scale, timeScale\}`{
triggerId: string
caster: ActorGetter
origin: PositionGetter
angle: AngleGetter
distance: number | VariableGetter
scale: number | VariableGetter
timeScale: number | VariableGetter
}`--

返回值

类型: CommandFunction

源代码

位置: 第 6807 行

protected createTrigger({triggerId, caster, origin, angle, distance, scale, timeScale}: {
triggerId: string
caster: ActorGetter
origin: PositionGetter
angle: AngleGetter
distance: number | VariableGetter
scale: number | VariableGetter
timeScale: number | VariableGetter
}): CommandFunction {
const getTriggerId = Command.compileString(triggerId)
const getCaster = Command.compileActor(caster)
const getOrigin = Command.compilePosition(origin)
const getAngle = Command.compileAngle(angle)
const getDistance = Command.compileNumber(distance)
const getScale = Command.compileNumber(scale, 1, 0.1, 10)
const getTimeScale = Command.compileNumber(timeScale, 1, 0.1, 10)
return () => {
const data = Data.triggers[getTriggerId()]
const caster = getCaster()
const origin = getOrigin()
if (data && caster && origin) {
const angle = getAngle(origin)
const cos = Math.cos(angle)
const sin = Math.sin(angle)
const trigger = new Trigger(data)
const distance = getDistance()
const x = origin.x + distance * cos
const y = origin.y + distance * sin
trigger.angle = angle
trigger.caster = caster
trigger.target = CurrentEvent.targetActor ?? null
trigger.skill = CurrentEvent.triggerSkill ?? null
trigger.timeScale = getTimeScale()
trigger.setScale(getScale())
trigger.setPosition(x, y)
trigger.updateVelocity()
// 如果在低优先级事件中创建触发器
// 有必要立即更新动作方向
trigger.updateAnimation(0)
Scene.trigger.append(trigger)
}
return true
}
}

文档生成时间:2025/7/7 12:07:06