找回密码
 点一下
楼主: yongsmlaiaini

魔兽争霸,高级【战棋】系统

[复制链接]
1 GA币 回复本帖可获得 10 GA币奖励! 每人限 1 次(中奖概率 70%)
发表于 2011-12-11 20:29:05 | 显示全部楼层
←_← 大概帮楼主想个思路  手头没WE所以不帮忙了
假设 某个单位移动力为4
判定的时候在这个单位脚下创建马甲或者光圈
设定变量=这个单位的移动力 也就是4
选取这个光圈周围可以移动的格子(区域?)在选取的每一个格子上创建马甲单位
将新建的这些马甲单位添加进单位组之类的
将变量上的数字-1
选取刚刚创建的单位组里面的所有马甲做动作
把马甲周围可以移动的区域上创建新马甲(如已经有马甲在区域上就不需在这个地方创建)
……直到变量=0
回复

使用道具 举报

发表于 2011-12-11 21:51:39 | 显示全部楼层

回 18楼(chyj4747) 的帖子

chyj4747:虽然我还蛮感兴趣的,但是最近考试,空的时间嘛……至少23号之后,如果LZ有耐心等到那个时候的话~

另外我是不大喜欢移植系统的,一方面是移植来的东西毕竟不是自己做的,出了问题万一要是找不到作者……
另一方面是,自己写的系统才能运用自如嘛,别人的东西即便看懂了 .. (2011-12-11 12:33) 
确实是的...记性真好啊...不过那个图已经完成发布了...是帮人打工的...战棋类的图是我一直准备做的...就是没想好怎样的系统比较好...
回复

使用道具 举报

发表于 2011-12-11 22:02:40 | 显示全部楼层
破喉咙:←_← 大概帮楼主想个思路  手头没WE所以不帮忙了
假设 某个单位移动力为4
判定的时候在这个单位脚下创建马甲或者光圈
设定变量=这个单位的移动力 也就是4
选取这个光圈周围可以移动的格子(区域?)在选取的每一个格子上创建马甲单位
....... (2011-12-11 20:29)
喉咙的思路很好的反应出了你没有看前面的回复~
LZ是不要单位移动力的。。
回复

使用道具 举报

发表于 2011-12-11 22:50:06 | 显示全部楼层

回帖奖励 +10 GA币

回 22楼(chyj4747) 的帖子

chyj4747:喉咙的思路很好的反应出了你没有看前面的回复~
LZ是不要单位移动力的。。 (2011-12-11 22:02) 
→_→ 没看回复我自豪 字那么多谁看得下去啊
回复

使用道具 举报

发表于 2011-12-11 22:54:39 | 显示全部楼层
破喉咙:→_→ 没看回复我自豪 字那么多谁看得下去啊 (2011-12-11 22:50)
没让你看我的思路啊…………
思路之前几楼不是有关于移动力的讨论吗。。我一开始也以为LZ要的是移动力的那种……直到我的膝盖中了一箭(突然发现这句特别好用~)
回复

使用道具 举报

 楼主| 发表于 2011-12-12 11:34:07 | 显示全部楼层
楼上的膝盖好了么?话说上古5我的机子已经跑不动了。。。
刚又看了十楼下,我通畅了。貌似我一直都忘了说,我是要移动力的,也就是单位移动力为4的时候,最终只能移动四个格子。。
是我疏忽了。但是貌似20楼的方法是有问题的。因为不可能只创建四个方向的,是在单位身体周围所有可能移动的方向。
回复

使用道具 举报

发表于 2011-12-12 11:55:50 | 显示全部楼层
yongsmlaiaini:楼上的膝盖好了么?话说上古5我的机子已经跑不动了。。。
刚又看了十楼下,我通畅了。貌似我一直都忘了说,我是要移动力的,也就是单位移动力为4的时候,最终只能移动四个格子。。
是我疏忽了。但是貌似20楼的方法是有问题的。因为不可能只创建四个方向的,是在单位身体周围所有可 .. (2011-12-12 11:34)

我可以吐槽。。不对。。喷一下LZ吗……
我之前早就跟你说了这个问题额……

然后QQ我已经加了,不知道LZ确认没。。我现在这里网速极度不给力,刷新GA页面要好几十秒。。所以QQ打开不能……


另外20楼得方法基本没问题啊……
要我做的话也就类似喉咙的那个方法。。最多再加快点判断速度
我觉得是LZ没完全理解喉咙说的吧。。喉咙的方法有个基础点和我之前那些截图是一样的,就是扩散出去的格子再次扩散,不是说只从单位开始向四个方向扩散,而是以每次扩散的格子为基础再向四个方向扩散~
回复

使用道具 举报

发表于 2011-12-13 22:52:52 | 显示全部楼层

回帖奖励 +10 GA币

过多的马甲会导致很卡
不过用马甲可以实现异步显示,这点倒是在多人上很方便

另外,完全可以用修改地面纹理的方法
可移动距离用判断单位位置点到某一确定的地面纹理中心的距离来判断可移动距离
每个纹理中心用点来记录即可

至于可移动范围
根据需求有阴影禁止通行范围和占用禁止通行和路径计算三种

占用就是可移动范围内有单位或障碍物的地方不可通行
其他地方可以通行,有些会区分,敌方单位周围范围1不可通过之类的

阴影禁止通行范围就是把移动单位作为光源,某一不可通行障碍物作为光障碍物
阴影范围内是不可通行的

最后路径计算方法就是不管障碍物,单位移动力为零前能走到的敌方可通行
不能到达的范围不可通行

一般的SLG都是4方移动的,
那直接用XY轴坐标加减指定偏差值获取周围点

占用禁止通行最简单,直接按照可移动距离生成移动范围
对范围内所有点设置地面纹理
遍历这个范围内单位,根据移动规则将不可移动范围重置地面纹理即可

哦,记得条件是可以判断纹理的

阴影禁止通行类似占用禁止通行,写好阴影算法即可

最后是路径计算,类似20楼方法,
将某一路径距离的所有纹理中心点存储到数组
遍历求四个方向点
判断地面纹理
不是可通行的加入下一数组
递归此函数即可
回复

使用道具 举报

发表于 2011-12-14 03:10:18 | 显示全部楼层

回帖奖励 +10 GA币

为了金钱,顶了
回复

使用道具 举报

发表于 2012-1-1 19:56:28 | 显示全部楼层

回帖奖励 +10 GA币

最近也在做战棋的某人受益了!
回复

使用道具 举报

发表于 2012-1-1 20:20:57 | 显示全部楼层

回帖奖励 +10 GA币

唔.......不知道lz请不清楚什么叫做广度优先搜索(BFS)呢~

这种问题其实用广搜会很方便的说~(觉得没必要A*D*呢)

嗯大致介绍下思路好了,可能对lz有用~

首先有一种数据结构叫做队列~先进的数据先出,后进的数据后出~
然后的话,第一次,添加玩家起始点周围每一个可以前进的点,以及目前的移动步数,压入队列~

一个布尔变量 B,初始为false
接下来是一个无限循环~循环执行的条件,就是队列不为空~
{
    设置 A=队列中第一个点
    A点出队列~
    如果A点是终点
            则退出循环
            之前每一次出队列的点组合起来,就是路径~
            B设为true
    选取A周围可行走(且没有访问过得点(刚才漏了))的所有点以及移动步数,加入队列
}
循环过后,你就已经能够获得完整的路径了~
而且保证一定是最短路径的说~

当然必须判断B=true,如果B=false说明没有路~


至于计算范围的话~更简单些~
①起始点周围可行点(包括剩余步数)入队~
②循环 ↓(退出条件为队列空)
③获得队列最前的点,并且出队,改点记录为可以到达~
④若改点剩余步数大于0,则该点周围,可通行且未访问过的点入队(包括步数,步数为刚才那点-1)
⑤循环 ↑
回复

使用道具 举报

发表于 2012-1-3 15:41:57 | 显示全部楼层

回帖奖励 +10 GA币

希望能够做出来嘻嘻期待
回复

使用道具 举报

发表于 2012-1-3 20:55:24 | 显示全部楼层
[s:178]

嘿嘿,我能用T做出上面的SLG系统
至于寻路的算法的话,额这个还没考虑过,不过我觉得这个判断不会那么难,目前能够做的就是地形对单位的影响,以及道路通路的判断。

我觉得重点是在考虑SLG里面最重要的东西就是电脑的AI问题。。。这个比较麻烦唉,例如单位如果有100种技能,到底什么时候适合释放等等系列问题比较蛋疼
回复

使用道具 举报

发表于 2012-1-8 17:18:20 | 显示全部楼层

回帖奖励 +10 GA币

谢谢您的辛苦发帖www.wzi580.com   www.zbyz98.com  www.yunzuoba.com
回复

使用道具 举报

发表于 2012-2-19 15:18:06 | 显示全部楼层
我自己的做法是设置角色的移动能力为0.计算其可以移动到的范围(假设角色移动能力为4):
先计算角色四周,看是不是有不能移动的格子,可以移动的格子做上移动光标,设定这些格子为1.然后每个设定为1的格子看看四周没有计算过的地方,可以移动的就标记成2。然后就此循环就得出了所有可以移动的格子。角色行动过后就把其转换成中立单位

可能没有说清楚~~
回复

使用道具 举报

发表于 2012-5-3 20:40:11 | 显示全部楼层
虽然本人不会楼主的问题 但是 如果是战棋的话 最好用六边形的格子而不是四边形 因为四边形如果沿对角线移动的话能走的更远 但是六边形则是一样的
另外如果用六边形的话 触发或许会做的简单点吧 因为这样就可以用圆形区域了
回复

使用道具 举报

发表于 2013-5-9 13:31:18 | 显示全部楼层

这个构想好啊  等待LZ出图
回复

使用道具 举报

发表于 2013-5-18 19:59:25 | 显示全部楼层
挖坟……
回复

使用道具 举报

发表于 2013-5-19 08:54:24 | 显示全部楼层
怎么这么多人挖坟。。。

是不是该处罚一下呢。

点评

所以我已经把q1315793131禁言3天了  发表于 2013-5-19 11:03
表示我已经处理过了,之前q1315793131那人六连还是七连来着。。然后1257116920是来吐槽的  发表于 2013-5-19 11:02
回复

使用道具 举报

发表于 2016-2-15 13:57:02 | 显示全部楼层
厉害
看上去蛮有意思的地图。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-4 02:31 , Processed in 0.775470 second(s), 23 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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