标题: 问题:关于曹操传中的寻路和挡格率, 已全部解决,感谢godtype,周瑜,特别感谢:司徒苍月
性别:未知-离线 lufy


Rank: 5Rank: 5
组别 校尉
级别 裨将军
功绩 13
帖子 310
编号 347822
注册 2009-11-21


问题:关于曹操传中的寻路和挡格率

最近因为工作不太忙,所以在试着研究用flash做曹操传式的战旗游戏

具体请看我的帖子
用AS3.0开发flash版曹操传-初级

已经实现了一些简单的功能,但是出现了几个问题
请高手们帮忙解答一下

曹操传中寻路的时候,旁边有敌人在的话,就走不过去了
所以,才有了赤兔马的恶路突击
这个地方,曹操传中是如何处理的?
移动范围是如何限制它缩小的

另外曹操传中挡格率的计算公式是什么?

[ 本帖最后由 lufy 于 2010-6-3 15:36 编辑 ]


顶部
性别:男-离线 godtype
(毅)

刘国公
广南东路经略使
枢密直学士
★★★★★★★★★★★★
★★★

Rank: 24Rank: 24Rank: 24
柱国(正二品) 轩辕春秋年度最佳(轩辕工作室)
组别 经略使
级别 卫将军
好贴 1
功绩 1314
帖子 6207
编号 111321
注册 2007-2-18
来自 我家
家族 轩辕学院


发表于 2010-6-2 12:35 资料 个人空间 短消息 只看该作者
突击移动的代码在437D59
命中率其实就是挡格率,命中率数值不发生的话,就会被档格,代码在43B50D
可以看一下。


顶部
性别:未知-离线 lufy


Rank: 5Rank: 5
组别 校尉
级别 裨将军
功绩 13
帖子 310
编号 347822
注册 2009-11-21




QUOTE:
原帖由 godtype 于 2010-6-2 12:35 发表
突击移动的代码在437D59
命中率其实就是挡格率,命中率数值不发生的话,就会被档格,代码在43B50D
可以看一下。

感谢回答,但是本人对汇编什么的一窍不通
虽然知道了代码位置,怕也看不明白

其实,我倒不是研究突击移动,我是想知道曹操传寻路的时候,有敌军在的时候,是怎么判断和限制的,因为是自己写代码,如果这里知道的话,突击移动的时候,把这个限制去掉就可以了
顶部
性别:男-离线 godtype
(毅)

刘国公
广南东路经略使
枢密直学士
★★★★★★★★★★★★
★★★

Rank: 24Rank: 24Rank: 24
柱国(正二品) 轩辕春秋年度最佳(轩辕工作室)
组别 经略使
级别 卫将军
好贴 1
功绩 1314
帖子 6207
编号 111321
注册 2007-2-18
来自 我家
家族 轩辕学院


发表于 2010-6-2 12:52 资料 个人空间 短消息 只看该作者
突击这个我也没有弄明白,只是知道代码位置,或者等其他高手回答吧。
顶部
性别:未知-离线 lufy


Rank: 5Rank: 5
组别 校尉
级别 裨将军
功绩 13
帖子 310
编号 347822
注册 2009-11-21




QUOTE:
原帖由 godtype 于 2010-6-2 12:52 发表
突击这个我也没有弄明白,只是知道代码位置,或者等其他高手回答吧。

挡格这里是解决了

物理攻击的命中率
X代表我方的爆发力,Y代表敌方的爆发力。R表示命中率
if (x>2*y)
r=100;
else if(x>y)
r=(x-y)*10/y+90;
else if(x>y/2)
r=(x-y/2)*30/(y/2)+60;
else
r=(x-y/3)*30/(y/3)+30;
注:手套和盾有加成效果。比如敌人有辅助防御15%的宝物,那么最终的命中率是r-15

剩下的,就是寻路了,只要知道了,寻路的时候遇到敌军是如果加限制的话,就能解决了
顶部
性别:男-离线 周瑜

栎阳侯谏议大夫

Rank: 16
组别 翰林学士
级别 征西将军
好贴 10
功绩 943
帖子 4714
编号 1808
注册 2003-11-3
家族 瓦岗寨


发表于 2010-6-2 21:11 资料 主页 文集 短消息 只看该作者
我认为用的是宽度优先,旁边有敌人的话,剩余步数直接归零,不再入队列。
顶部
性别:未知-离线 lufy


Rank: 5Rank: 5
组别 校尉
级别 裨将军
功绩 13
帖子 310
编号 347822
注册 2009-11-21




QUOTE:
原帖由 周瑜 于 2010-6-2 21:11 发表
我认为用的是宽度优先,旁边有敌人的话,剩余步数直接归零,不再入队列。

感谢周大关注
但是还是不大明白具体做法
比如下面
空地 空地 我军 空地 空地
空地 敌军 空地 敌军 空地
空地 空地 空地 空地 空地

我军应该只能走到两个敌军中间的位置吧
这个按照自己的想法,花点时间总结一个算法倒是也能,但是主要是想看看曹操传中是如果做的
顶部
性别:未知-离线 司徒苍月
(kagami☆sama)

越国公
荆南节度使
枢密直学士

Rank: 22Rank: 22Rank: 22Rank: 22
柱国(正二品)
组别 节度使
级别 大将军
好贴 7
功绩 2823
帖子 28883
编号 52341
注册 2005-11-2
来自 创界山
家族 司徒实业


我认为可以视作敌军周围四向直接耗尽移动力,突击移动时,则消耗对应移动力,以此达到寻路效果

例如你所说的

设我军移动力为x,此地移动力消耗为y,不可移动处为#

空地(y) 空地(x) 我军(0) 空地(x) 空地(y)
空地(x) 敌军(#) 空地(x) 敌军(#) 空地(x)
空地(y) 空地(x) 空地(y) 空地(x) 空地(y)

[ 本帖最后由 司徒苍月 于 2010-6-3 11:28 编辑 ]
顶部
性别:未知-离线 lufy


Rank: 5Rank: 5
组别 校尉
级别 裨将军
功绩 13
帖子 310
编号 347822
注册 2009-11-21




QUOTE:
原帖由 司徒苍月 于 2010-6-3 11:23 发表
我认为可以视作敌军周围四向直接耗尽移动力,突击移动时,则消耗对应移动力,以此达到寻路效果

例如你所说的

设我军移动力为x,此地移动力消耗为y,不可移动处为#

空地(y) 空地(x) 我军(0) 空地(x) 空 ...

感谢关注,但是我还是再强调一下吧
我问的不是突击移动怎么做,而是周围有敌人的时候,如何限制移动
曹操传中有敌军在的时候,移动范围就缩小了

主要是限制这里不清楚怎么弄,突击移动我的想法就是去掉这个限制就可以了

[ 本帖最后由 lufy 于 2010-6-3 11:46 编辑 ]
顶部
性别:未知-离线 司徒苍月
(kagami☆sama)

越国公
荆南节度使
枢密直学士

Rank: 22Rank: 22Rank: 22Rank: 22
柱国(正二品)
组别 节度使
级别 大将军
好贴 7
功绩 2823
帖子 28883
编号 52341
注册 2005-11-2
来自 创界山
家族 司徒实业


移动范围即当前移动力耗尽所能达到的区域,这样说明应该没有什么问题

所以我单纯的从移动力的消耗上来解释移动范围,尽量降低算法复杂度

对于玩家来说,他们不会考虑你的算法如何,只要达到相同效果即可

[ 本帖最后由 司徒苍月 于 2010-6-3 13:02 编辑 ]
顶部
性别:未知-离线 lufy


Rank: 5Rank: 5
组别 校尉
级别 裨将军
功绩 13
帖子 310
编号 347822
注册 2009-11-21




QUOTE:
原帖由 司徒苍月 于 2010-6-3 13:01 发表
移动范围即当前移动力耗尽所能达到的区域,这样说明应该没有什么问题

所以我单纯的从移动力的消耗上来解释移动范围,尽量降低算法复杂度

对于玩家来说,他们不会考虑你的算法如何,只要达到相同效果即可

从移动力来算移动范围当然没有错,事实上,我现在的算法也是这样,并且已经实现了,具体可以下载我的帖子的附件测试

可关键在于,旁边是敌军或是我军的移动范围是不一样的,不是吗

上面的问题,我军应该是无法从两个敌军中间穿过的,
但是如果把两个敌军换成我军的话,则可以通过了

我的问题就在于这里是如何判断和搜索的

[ 本帖最后由 lufy 于 2010-6-3 13:37 编辑 ]
顶部
性别:未知-离线 lufy


Rank: 5Rank: 5
组别 校尉
级别 裨将军
功绩 13
帖子 310
编号 347822
注册 2009-11-21


不好意思,理解错了
苍月所说的括号里的是所消耗的移动力啊
但是这样一来,上面的问题我军左右也不能移动了
顶部
性别:未知-离线 司徒苍月
(kagami☆sama)

越国公
荆南节度使
枢密直学士

Rank: 22Rank: 22Rank: 22Rank: 22
柱国(正二品)
组别 节度使
级别 大将军
好贴 7
功绩 2823
帖子 28883
编号 52341
注册 2005-11-2
来自 创界山
家族 司徒实业




QUOTE:
原帖由 lufy 于 2010-6-3 13:38 发表
不好意思,理解错了
苍月所说的括号里的是所消耗的移动力啊
但是这样一来,上面的问题我军左右也不能移动了

可以啊,我设的移动力x,那么移动范围就是x被耗尽时,所能走到的范围,如那图所示,即左、右、下,三格可行
顶部
性别:未知-离线 司徒苍月
(kagami☆sama)

越国公
荆南节度使
枢密直学士

Rank: 22Rank: 22Rank: 22Rank: 22
柱国(正二品)
组别 节度使
级别 大将军
好贴 7
功绩 2823
帖子 28883
编号 52341
注册 2005-11-2
来自 创界山
家族 司徒实业


算法以宽度优先,设我军坐标为(m,n),移动力x,敌军坐标(o,p)

先算宽度,即从(m,n-1)开始计算,(m,n-2),(m,n-3)。。。直到x耗尽,为上边线

同理从(m,n+1)开始计算,(m,n+2),(m,n+3)。。。直到x耗尽,为下边线

。。。。。。。。。。(也就是n^2级循环)

敌军所在坐标消耗移动力255(以二进制计算),即不可移送,其四周(o-1,p),(o+1,p),(o,p-1),,(o,p+1)消耗移动力为x

即可实现你所需要的算法

再细化,我军分我军、友军,敌军为敌军A,敌军B(可相互攻击)。。。。。。。以不同势力代码区分即可

[ 本帖最后由 司徒苍月 于 2010-6-3 14:18 编辑 ]
顶部
性别:未知-离线 lufy


Rank: 5Rank: 5
组别 校尉
级别 裨将军
功绩 13
帖子 310
编号 347822
注册 2009-11-21




QUOTE:
原帖由 司徒苍月 于 2010-6-3 14:16 发表
算法以宽度优先,设我军坐标为(m,n),移动力x,敌军坐标(o,p)

先算宽度,即从(m,n-1)开始计算,(m,n-2),(m,n-3)。。。直到x耗尽,为上边线

同理从(m,n+1)开始计算,(m,n+2),(m,n+3)。。 ...

原来如此,多谢详解
我加入游戏试试看
顶部
性别:未知-离线 lufy


Rank: 5Rank: 5
组别 校尉
级别 裨将军
功绩 13
帖子 310
编号 347822
注册 2009-11-21


算法已经完成了,
不过因为挺长时间没有玩曹操传了,觉得有点别扭,公司电脑里没有曹操传
熟悉的朋友看看曹操传中下面这种情况算正常吗
我记不太清楚了


图片附件: 1.JPG (2010-6-3 15:09, 13.43 K)

顶部
性别:未知-离线 司徒苍月
(kagami☆sama)

越国公
荆南节度使
枢密直学士

Rank: 22Rank: 22Rank: 22Rank: 22
柱国(正二品)
组别 节度使
级别 大将军
好贴 7
功绩 2823
帖子 28883
编号 52341
注册 2005-11-2
来自 创界山
家族 司徒实业


从你的效果图来看,你所需要的目的已经达到了
顶部
性别:未知-离线 lufy


Rank: 5Rank: 5
组别 校尉
级别 裨将军
功绩 13
帖子 310
编号 347822
注册 2009-11-21




QUOTE:
原帖由 司徒苍月 于 2010-6-3 15:10 发表
从你的效果图来看,你所需要的目的已经达到了

那就结案了,非常感谢
顶部

正在浏览此帖的会员 - 共 2 人在线




当前时区 GMT+8, 现在时间是 2024-10-1 17:11
京ICP备2023018092号 轩辕春秋 2003-2023 www.xycq.org.cn

Powered by Discuz! 5.0.0 2001-2006 Comsenz Inc.
Processed in 0.011954 second(s), 10 queries , Gzip enabled

清除 Cookies - 联系我们 - 轩辕春秋 - Archiver - WAP