找回密码
 点一下
查看: 1663|回复: 9

求问是否可以实现单位移动速度的各向异性?

[复制链接]
发表于 2018-3-5 17:31:23 | 显示全部楼层 |阅读模式
   比如一个scv,我想让他往东边走的时候速度为2倍,往西边走的时候速度为1/2
   求教各位大佬,这该如何实现呢?
发表于 2018-3-8 20:13:22 | 显示全部楼层
完全可以,根据单位移动的方向,贴一个行为上去就好,不过需要触发器支持,验证器似乎无法验证移动方向。
回复

使用道具 举报

 楼主| 发表于 2018-3-9 21:11:34 | 显示全部楼层
感谢大佬回答。我还想求教下,
我找不到返回瞬时速度矢量的函数,用speed,velocity都查不到,不知道有没有。只找到一个facing,如果用facing的话,星际2里面有没有不转身就走的单位啊?
即使我用facing得到了单位的瞬时朝向,我附加一个什么行为能改变单位的速度矢量呢?找死找不到相关函数啊。

没接触过war3 scII的编辑器,对其中的函数一无所知,想在mod里弄个雪天效果就折腾了3个小时。要是有scII编辑器各种资源的简单介绍教程就好了。

回复

使用道具 举报

发表于 2018-3-9 21:46:58 | 显示全部楼层
确实是这样。不过如果你的地图不存在卡地形的情况,可以使用单位点到移动目标点之间的朝向。或者使用其他移动方式可能会更简单(比如我自己的图里使用键盘移动,所以直接能获取单位的移动方向)。
不过如果使用鼠标移动,且存在路径障碍,单位的移动方向似乎没有啥太好的思路,我在想想看吧。
回复

使用道具 举报

发表于 2018-3-9 21:48:57 | 显示全部楼层
本帖最后由 yxxiaobin 于 2018-3-9 22:05 编辑

如果实在无法获取实时移动方向,可以参考卫星定位的方法,判断单位的位置较刚才偏向了哪里,就能判断在这一小段时间单位朝向哪里移动,如果这个时间间隔做的够短,能近似得出单位的移动方向。
---------------------------------------------------

测试了一下果然可以,当单位向右移动时速度快,向左移动时速度变慢:
1.SC2Map (18.86 KB, 下载次数: 3)
我做的没0.0625秒验证一次,如果不要求响应很快,有比较在意效率的话,可以适当调慢验证计时。

点评

非常感谢,从你编写的地图了学了不少内容。 为啥你的unitbehaviouradd里面 增益中 有减速这个动作,而我的没有呢? 1个小时前我下载了教程里面的一个地图,也是unitbehaviouradd里,他的地图里就有加速10%,减速10  详情 回复 发表于 2018-3-9 22:35
回复

使用道具 举报

 楼主| 发表于 2018-3-9 22:35:37 | 显示全部楼层
yxxiaobin 发表于 2018-3-9 21:48
如果实在无法获取实时移动方向,可以参考卫星定位的方法,判断单位的位置较刚才偏向了哪里,就能判断在这一 ...

非常感谢,从你编写的地图了学了不少内容。
为啥你的unitbehaviouradd里面 增益中 有减速这个动作,而我的没有呢?
1个小时前我下载了教程里面的一个地图,也是unitbehaviouradd里,他的地图里就有加速10%,减速10%。而我写的mod里就没有。
显示是unkownbehaviour,但是实际运行是有效的。复制粘贴到我的mod里就无效了。
回复

使用道具 举报

 楼主| 发表于 2018-3-11 17:27:29 | 显示全部楼层
好吧,这个问题折腾了一个小时也解决了,原来在数据里面还有个+号,可以添加行为。
现在又多出来个新问题,如何实时选择地图上所有的单位,并做个循环一个个给他们添加动作呢?
回复

使用道具 举报

 楼主| 发表于 2018-3-14 21:24:22 | 显示全部楼层
这个坑爹东西折腾了4个小时, 终于找到个函数 unitgroup可以把某个区域内的单位 group起来,然后再用unitgroupunit按照数组的方式一个个调用。
对着内部函数一个个看,猜意思,还要猜sc的数据存储方式。。 。真尼玛爆炸。

点评

我觉得你先弄个简中版编辑器,了解一下触发器GUI比较好,知道了函数的意义,然后在转向代码也不晚。  发表于 2018-3-18 19:15
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 点一下

本版积分规则

Archiver|移动端|小黑屋|地精研究院

GMT+8, 2024-11-22 11:41 , Processed in 0.130608 second(s), 24 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表