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


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


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

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

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

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

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

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

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


顶部
性别:未知-离线 lufy


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




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

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

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


顶部
性别:未知-离线 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

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


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




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

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

我军应该只能走到两个敌军中间的位置吧
这个按照自己的想法,花点时间总结一个算法倒是也能,但是主要是想看看曹操传中是如果做的
顶部
性别:未知-离线 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 编辑 ]
顶部
性别:未知-离线 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


不好意思,理解错了
苍月所说的括号里的是所消耗的移动力啊
但是这样一来,上面的问题我军左右也不能移动了
顶部
性别:未知-离线 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)

顶部
性别:未知-离线 lufy


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




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

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

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




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

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

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