一、何魔基础原理
1. 极坐标公式
单位绕中心点旋转的兽争实现坐标计算:
`x = centerX + radius Cos(angle)`
`y = centerY + radius Sin(angle)`
2. 周期性触发
使用 `Timer` 或 `Trigger Add Event (Periodic)` 更新单位位置
二、实现步骤(使用 GUI 触发器)
1. 初始化光环单位
plaintext
触发器: Init Aura
事件
地图初始化
条件
动作
设置 CenterUnit = 你的霸中英雄单位 // 旋转中心单位
设置 AuraRadius = 200.00 // 光环半径
设置 RotationSpeed = 5.00 // 旋转速度(角度增量)
设置 AuraEffect = "aura.mdl" // 光环特效路径
设置 AuraUnitsGroup = 空单位组 // 存储所有光环单位
2. 创建旋转单位
plaintext
触发器: Create Aura Units
事件
单位
条件
触发单位 是 CenterUnit
动作
循环动作[循环A] 从 1 到 8, 运行:
设置 Angle = 转换 循环整数A 为实数 45.00 // 8个单位间隔45度
设置 OffsetX = AuraRadius Cos(Angle)
设置 OffsetY = AuraRadius Sin(Angle)
设置 SpawnPoint = (CenterUnit 的位置) + (OffsetX, OffsetY)
单位
单位
特效
单位组
3. 实现旋转+移动
plaintext
触发器: Rotate Aura
事件
时间
条件
动作
如果 AuraUnitsGroup 为空 则跳过
设置 CurrentCenter = (CenterUnit 的位置)
单位组
循环动作
设置 u = 选取单位
设置 currentAngle = (u 的面向角度) + RotationSpeed
设置 newX = (CurrentCenter 的X坐标) + AuraRadius Cos(currentAngle)
设置 newY = (CurrentCenter 的Y坐标) + AuraRadius Sin(currentAngle)
单位
单位
三、高级优化
1. 动态半径调整
添加实数变量 `AuraRadius` 并在触发器中动态修改
plaintext
动作
设置 AuraRadius = AuraRadius + 10.00 // 扩大半径
2. 跟随英雄移动
中心点 `CurrentCenter` 每次循环都会获取英雄当前位置,光环自动跟随
3. 防止内存泄漏
每次使用 `点 (Point)` 类型变量后必须调用 `清除点`
4. 特效同步
在移动单位后更新特效位置:
plaintext
特效
四、效果演示
完整代码可通过以上触发器组合实现动态旋转+移动的效果光环效果。
何魔