找回密码
 点一下
查看: 2070|回复: 28

关于模拟“植物大战僵尸”这个游戏系统的问题

[复制链接]
发表于 2009-8-21 20:20:03 | 显示全部楼层 |阅读模式
近日突然想去模拟植物大战僵尸的游戏系统。但是个人对于如何限制防御塔只攻击横向同行的怪物没有好的方法。不知道各位能否有什么思路?必须用T才能解决么?

恩,想了想,除了让防御塔只攻击横向这一个方向的问题,还有如何让这些怪物只往前面走、只往前面打的问题。。
发表于 2009-8-21 22:23:54 | 显示全部楼层
单位被攻击判断被攻击单位的面向
回复

使用道具 举报

 楼主| 发表于 2009-8-21 22:49:18 | 显示全部楼层
也就是说,用T?

如何控制攻击单位面向?有这方面的语句么?

-----------------
刚才实验了一下,即使限定了防御塔的朝向,他仍然会攻击其他方向的目标。这一点似乎不管用。关于僵尸不走直线的问题,我决定用路径阻断器来做。
回复

使用道具 举报

发表于 2009-8-22 08:42:08 | 显示全部楼层
没玩过这图.
那个攻击横向 你可以用被攻击事件 判断被攻击者的面向方向 如果不符合指定要求 就对攻击者发布停止命令
回复

使用道具 举报

发表于 2009-8-22 09:10:50 | 显示全部楼层
那不是图,是小游戏………………

攻击时判断两点间方向,不满足则取消攻击
回复

使用道具 举报

 楼主| 发表于 2009-8-22 09:29:26 | 显示全部楼层
上班中,我先整理一下思路,晚上回家继续试试。此贴将编辑试验结果。

----------
这个T的事件能用“每0.01秒循环判定么?”  因为僵尸刚出现的时候有的塔还没进攻击范围。
回复

使用道具 举报

发表于 2009-8-22 10:08:03 | 显示全部楼层
全部模拟
回复

使用道具 举报

发表于 2009-8-22 10:11:55 | 显示全部楼层
应该用“任意单位被攻击”做事件吧


话说我对植物大战僵尸很有爱 [s:166]
回复

使用道具 举报

发表于 2009-8-22 10:35:48 | 显示全部楼层
难道把转身速度改零不行吗?
回复

使用道具 举报

发表于 2009-8-22 11:16:40 | 显示全部楼层
模拟那个游戏
还是用单位模拟投射物才行
因为没有目标植物也攻击的
回复

使用道具 举报

发表于 2009-8-22 11:33:36 | 显示全部楼层
引用第9楼疯人¢衰人于2009-08-22 11:16发表的  :
模拟那个游戏
还是用单位模拟投射物才行
因为没有目标植物也攻击的


说的也是··差点忘了三线豌豆,小杨桃这种东西··
回复

使用道具 举报

发表于 2009-8-22 12:01:21 | 显示全部楼层
我怎么记得没目标植物不动的啦………………
回复

使用道具 举报

发表于 2009-8-22 12:11:02 | 显示全部楼层
引用第11楼zhuzeitou于2009-08-22 12:01发表的  :
我怎么记得没目标植物不动的啦………………

指的是多线攻击的植物
比如三线豌豆,某条线上出现了僵尸,另两条则没有,但它的三条线上都会射出豌豆····(不过话说回来,做进RPG图实用性也不高,直接模拟三线豌豆的攻击角度刚好能覆盖三条路就行了)
回复

使用道具 举报

发表于 2009-8-22 12:13:00 | 显示全部楼层
哦哦,这个貌似是的……
回复

使用道具 举报

 楼主| 发表于 2009-8-22 13:49:03 | 显示全部楼层
现在问题来了:我从来没有接触过判断两点间方向的写法,对这个完全没有概念。。。

恩,具体说,就是那个角度是什么数值。。。  这个我弄不清楚。。。
回复

使用道具 举报

发表于 2009-8-22 13:54:33 | 显示全部楼层
触发里有,在实数范围内
回复

使用道具 举报

 楼主| 发表于 2009-8-22 14:03:11 | 显示全部楼层
恩,正右边是几度呢?我刚才试了0度好像不对,一个塔都不攻击了。。。
回复

使用道具 举报

发表于 2009-8-22 14:24:31 | 显示全部楼层
……这个不外乎0,90,180,270这四个角度……自己做尝试吧
回复

使用道具 举报

 楼主| 发表于 2009-8-22 14:43:47 | 显示全部楼层
发现问题不只于此。。 因为这个角度不可能恰好是整数,我给了一个点范围,可是这些塔还是一个都不攻击。郁闷。。。

[trigger]
TOWERfangxiang
    事件
        单位 - 玩家12(棕色) 的单位 被攻击
    条件
        (((攻击单位) 的所有者) 的控制者) 等于 用户
    动作
        设置 fangxiang = (((攻击单位) 的位置) 到 ((触发单位) 的位置) 的角度)
        如果所有条件成立则做动作1,否则做动作2
            If - 条件
                fangxiang 大于 -10.00
                fangxiang 小于 10.00
            Then - 动作
                单位 - 对 (攻击单位) 发布 攻击 命令到目标: (触发单位)
            Else - 动作
                单位 - 对 (攻击单位) 发布 停止 命令
[/trigger]


修改后,达到了目的了,这个问题也算得到了解决。现在在考虑不让僵尸串行的问题。
回复

使用道具 举报

发表于 2009-8-22 14:49:34 | 显示全部楼层
不要用面向角度……
如果是建筑,面向角度是固定不变的
请使用两点间角度这一项,如果要处理内存泄露请搜索相关内容并补充一些简单的jass知识

而且你的绝对值用的是反的,应该是角度的绝对值与某值作比较
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-7-22 04:17 , Processed in 0.064016 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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