找回密码
 点一下
查看: 2648|回复: 6

[已解决]今天看长枪突刺的JASS的时候感觉到的一点技巧(新手写的,见笑)

[复制链接]
发表于 2009-3-4 16:30:48 | 显示全部楼层 |阅读模式
分类好难选啊!

长枪突刺,就是将一个敌人打晕,然后把它推得老远。其中一个重要的要素就是碰到单位停下来。我是个新手,我一直以为要做一个单位组,判断距离。但是长枪突刺的JASS是这样写的
  1.     call SetUnitPositionLoc( udg_ChangQiangTuCi_Mubiao, udg_ChangQiangTuCi_dian2 )
  2.     set udg_ChangQiangTuCi_dian3 = GetUnitLoc(udg_ChangQiangTuCi_Mubiao)
  3.     if (DistanceBetweenPoints(udg_ChangQiangTuCi_dian2, udg_ChangQiangTuCi_dian3) >= 5.00 ) then
  4. /// 撞到了敌人,突刺结束
  5.     endif
复制代码

也就是说,我放单位的位置和它真实所在的位置如果差了5以上,那么就停止。
我一开始不理解,这样的东西怎么可以作为停止的条件呢?
看了半天才知道,如果你把这个东西移动到另外一个东西上面的话,当然,魔兽会将它移开,自然,距离就会大于5了。这就表示撞到了,不论是撞到了墙还是人。

这是我的一点收获,拿来跟大家分享,高手不要见笑。

评分

参与人数 1威望 +10 收起 理由
eff + 10

查看全部评分

发表于 2009-3-4 16:34:45 | 显示全部楼层
回LS,这是不对的。
应该是两个点的距离<120(假设),才算撞到了呀~~
快改吧~~
回复

使用道具 举报

发表于 2009-3-4 20:12:25 | 显示全部楼层
就算不判断也不要紧, 不信你试试.

当然如果你移动的步子太大的话还是不行
回复

使用道具 举报

 楼主| 发表于 2009-3-5 22:27:47 | 显示全部楼层
但是这确实是真三的源代码啊,我玩了那么久,还没出现过撞到人身上不停的啊
回复

使用道具 举报

发表于 2009-3-14 02:04:17 | 显示全部楼层
看看是不是还有个函数定义了只要距离小于某一值,自动认为他离任何物体距离为无穷?
回复

使用道具 举报

发表于 2009-3-16 12:32:07 | 显示全部楼层
这个是根据移动到点 的函数特点来判断的.
如果 移动到某点 而那点有了障碍 比如单位
那样单位的实际移动位置 就不是在那点了
那样判断下每次移动的位置 是否正确 就可以知道是否碰到障碍
(如果用的setunix 就不能这样判断了``)
回复

使用道具 举报

发表于 2009-3-17 01:03:23 | 显示全部楼层
LS正解,话说我以前用T写的击退就是这样做的
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-21 23:40 , Processed in 0.087223 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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