找回密码
 点一下
查看: 465|回复: 7

我如何使得一个单位自动移动?求解答

[复制链接]
发表于 2015-8-16 18:47:14 | 显示全部楼层 |阅读模式
我是这样想的:
有一个中立单位放在那,当有玩家单位进入它周围一定区域内的话,它就向一个点移动。
判断什么的好说,可是我怎么让它动起来?

触发器里面那个移动是瞬移啊。我怎么办?
大神帮帮忙
发表于 2015-8-16 22:43:13 | 显示全部楼层
有个动作叫对单位发布指令。不过默认情况下发布的是无目标的指令。

你得先选中指令参数最左边的括号,改为点目标指令,然后参数里选移动就好啦。

点评

3Q3Q3Q~~ 谢谢谢谢。 那么更进一步,如果我想让它按照一个路径移动呢? 也就是说并非直线朝向点,比如走弧线或S型曲线。 我应该怎么办?不会是用好多点来实现吧?  详情 回复 发表于 2015-8-17 03:32
回复

使用道具 举报

 楼主| 发表于 2015-8-17 03:32:09 | 显示全部楼层
麦德三世 发表于 2015-8-16 22:43
有个动作叫对单位发布指令。不过默认情况下发布的是无目标的指令。

你得先选中指令参数最左边的括号,改 ...

3Q3Q3Q~~
谢谢谢谢。

那么更进一步,如果我想让它按照一个路径移动呢?
也就是说并非直线朝向点,比如走弧线或S型曲线。
我应该怎么办?不会是用好多点来实现吧?
回复

使用道具 举报

发表于 2015-8-17 04:04:27 | 显示全部楼层
没错。

在发布指令的时候你可以选择是替代现有指令还是追加在后面。如果选追加的话就相当于发布了一个Shift命令。就和你平时操纵单位的时候一样。

点评

哦,原来是这样。。。。 凌晨回复我。。。 别嫌我事多啊,那么我要更进一步了。 实际上我想的是,这个单位处在一个我规划的路线中间,根据条件不同会分别向两边运动。相当于铁轨上的火车一样。 可如果路线非直  详情 回复 发表于 2015-8-17 10:46
回复

使用道具 举报

 楼主| 发表于 2015-8-17 10:46:11 | 显示全部楼层
麦德三世 发表于 2015-8-17 04:04
没错。

在发布指令的时候你可以选择是替代现有指令还是追加在后面。如果选追加的话就相当于发布了一个Sh ...

哦,原来是这样。。。。
凌晨回复我。。。

别嫌我事多啊,那么我要更进一步了。
实际上我想的是,这个单位处在一个我规划的路线中间,根据条件不同会分别向两边运动。相当于铁轨上的火车一样。
可如果路线非直线,而我需要用多个点追加命令来实现的话。根据它位置的不同(处于不同的两点中间)改变方向的时候岂不是很麻烦?
我需要枚举每一种情况来判断?然后分别设计追加的指令?

不知道你能不能看懂我的意思。。。。

回复

使用道具 举报

发表于 2015-8-18 05:51:37 | 显示全部楼层
我做过和你这个设计类似的东西,是一个轨道列车,是可以做出来的。
首先将这条轨道上的点添加进一个变量数组里面,举例,如果有9个点,分别将其命名为p1到p9,装进一个点数组里面。
接下来需要判断当前火车在铁轨上的位置,因为铁轨是弯曲的,所以不能直接用距离百分比来判断,这时候需要做一个遍历,判断当前火车距离点数组里的每一个点的距离,算出距离当前火车最近的两个点是哪两个。
QQ截图20150818052350.jpg
比如这里,距离车子最近的点是p3,然后是p4,从而我们可以得知,车子当前的位置在p3和p4之间。
如果这个时候要让车子向右走,就对其发布移动命令,从p4点一直发布到p9点。(向左走的话就发布移动命令,倒着遍历,从p3点到p1点)

如果车子在这个位置:
QQ截图20150818053108.jpg
得到了距离车子最近的两个点是p8和p9,要想让车子向左走,就反向遍历发布移动命令从p8到p1,要想让车子向右走,则发布移动命令从p9到p9(其实就只有一次命令了)。

铁轨要画得标准一些,连续的两个点之间的距离要小于与其他点的距离,上述铁轨画法就是正确的,这种则不正确:
QQ截图20150818053653.jpg
可以看到,这条轨道的p3和p6之间的距离居然比p3到p4之间的距离还要近,如果火车在靠近p3或者p6的位置,用上述方法就不能得到准确的位置。
解决的方法是将轨道画得更细腻一些,让相邻的点保持最近距离:
QQ截图20150818054049.jpg

点评

哦,原来是这个思路。 谢谢你啦,回答得如此细致。  详情 回复 发表于 2015-8-20 01:12
回复

使用道具 举报

 楼主| 发表于 2015-8-20 01:12:50 | 显示全部楼层
七键守护神 发表于 2015-8-18 05:51
我做过和你这个设计类似的东西,是一个轨道列车,是可以做出来的。
首先将这条轨道上的点添加进一个变量数 ...

哦,原来是这个思路。
谢谢你啦,回答得如此细致。
回复

使用道具 举报

发表于 2015-9-2 23:08:19 | 显示全部楼层
本帖最后由 lanyuetingfeng 于 2015-9-2 23:09 编辑

我也做过类似系统,和7姐的大致相同,不过也有些细微的差异。
在我的系统中,每一个路径点都会被记录,车子不会停在这些路径点之外的地方,这样就不必判断车子离那个点更近一点,直接判定车子在哪一个点上就好了。但是这个系统的弊端在于,只适合回合式的操控,如果你需要在车子运行过程中的任意时间都能即时响应操控,还需要做如下改进:为每辆车子绑定两个标记,可以使用变量,也可以使用单位自定义值,第一个标记指定出发点,第二个标记指定目的地(或者一个指定出发点,一个指定行进方向,即正向还是反向)。这样你就能很方便的知道车子的位置和行进方向。
这种系统有一个很大的好处——你不必考虑轨道的形状了,你甚至可以做出多重交叉的复杂路线来。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-7-20 18:10 , Processed in 0.274071 second(s), 29 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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