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/21 20:53:39