🎮 物理碰撞 — 演示图实战
演示图:物理碰撞测试.w3x
触发器数:2
📁 本地路径:
F:\AI\AI-machine\W3演示图\物理碰撞测试.w3x
📑 触发器目录
- init
- spell
📜 触发器代码
init
text
触发器: init (初始化) [✓]
───────────────────────────────────────────────────────
事件
└─ 地图初始化
条件
└─ 无
动作
├─ 战争迷雾开关: EnabledDisabledDisabled
└─ 迷雾遮罩开关: EnabledDisabledDisabledspell
text
触发器: spell (玩家/英雄) [✓]
───────────────────────────────────────────────────────
事件
└─ 任意单位 - PlayerUnitEventSpellEffect
条件
└─ 技能ID比较(施法技能ID(), OperatorEqualENE, A000)
动作
├─ 设置局部变量:"u"=触发单位()
├─ 设置局部变量:"x1"=单位X坐标(读取局部变量("u"))
├─ 设置局部变量:"y1"=单位Y坐标(读取局部变量("u"))
├─ 设置局部变量:"x2"=GetSpellTargetX()
├─ 设置局部变量:"y2"=GetSpellTargetY()
├─ 设置局部变量:"ang"=AngleBetweenPoints(Location(读取局部变量("x1"), 读取局部变量("y1")), Location(读取局部变量("x2"), 读取局部变量("y2")))
├─ ── 单位质量 ──
├─ 设置局部变量:"m"=随机实数(100.00, 120.00)
├─ ── 单位初始速度 ──
├─ 设置局部变量:"v"=随机实数(3.00, 5.00)
├─ ── 单位x轴初始速度 ──
├─ 设置局部变量:"vx"=OperatorRealMultiply(读取局部变量("v"), 余弦(读取局部变量("ang")))
├─ ── 单位y轴初始速度 ──
├─ 设置局部变量:"vy"=OperatorRealMultiply(读取局部变量("v"), 正弦(读取局部变量("ang")))
├─ ── 动能损失系数(因为魔兽碰撞体积的关系,建议设置为1,小于1会导致多次碰撞检,需要优化) ──
├─ 设置局部变量:"e"=1.00
├─ 设置局部变量:"b"=创建单位(指定坐标)((读取局部变量("u")的所有者), e000, 读取局部变量("x1"), 读取局部变量("y1"), 读取局部变量("ang"))
├─ 保存数据到哈希表: [单位类型.读取局部变量("b")."m"] = 读取局部变量("m")
├─ 保存数据到哈希表: [单位类型.读取局部变量("b")."vx"] = 读取局部变量("vx")
├─ 保存数据到哈希表: [单位类型.读取局部变量("b")."vy"] = 读取局部变量("vy")
├─ 启动计时器: 创建计时器(), 0.02s (循环)
└─ YDWETimerRemoveUnit: 10.00, 读取局部变量("b")