写写卡牌战斗原理

写写卡牌游戏思路,绝对原创,功能之卡牌战斗功能

战斗xml文件

version=“1.0” encoding=“ISO-8859-1”?>




false

1 1 100 1000 10 skill0.png skill1.png skill2.png skill3.png skill4.png attack0.png attack1.png attack2.png attack3.png attack4.png attack5.png injure0.png injure1.png injure2.png injure3.png injure4.png false 2 2 100 1001 11 partner_skill0.png partner_skill1.png partner_skill2.png partner_skill3.png partner_skill4.png partner_attack0.png partner_attack1.png partner_attack2.png partner_attack3.png partner_attack4.png partner_attack5.png partner_injure0.png partner_injure1.png partner_injure2.png partner_injure3.png partner_injure4.png false 1 3 102 1002 12 sanyan_skill0.png sanyan_skill1.png sanyan_skill2.png sanyan_skill3.png sanyan_skill4.png sanyan_attack0.png sanyan_attack1.png sanyan_attack2.png sanyan_attack3.png sanyan_attack4.png sanyan_attack5.png sanyan_injure0.png sanyan_injure1.png sanyan_injure2.png sanyan_injure3.png sanyan_injure4.png false 4 3 102 1002 13 xiongmao_skill0.png xiongmao_skill1.png xiongmao_skill2.png xiongmao_skill3.png xiongmao_skill4.png xiongmao_attack0.png xiongmao_attack1.png xiongmao_attack2.png xiongmao_attack3.png xiongmao_attack4.png xiongmao_attack5.png xiongmao_injure0.png xiongmao_injure1.png xiongmao_injure2.png xiongmao_injure3.png xiongmao_injure4.png

战斗第一步。战斗布局
对方:两排三列
4 5 6

1 2 3

自己方:两排三列
1 2 3

4 5 6

解析战斗xml文件后 x代表没有出战人员
对方:两排三列
X X X

sanyan xiongmao X

自己方:两排三列

zhujiao sanyan X

X X X

战斗第2步。战斗出手顺序

解析双方所有出战人员的速度sude属性值。解析后

第一手,对方xiongmao

第二手,对方sanyan

第三手,己方sanyan

第四手,己方zhujiao

战斗第3步。攻击目标

我自己设定。攻击目标和英雄技能种类相关。常见的种类,我设定为
attackType
1 近战 英雄对面第一排单个目标

2 远战 英雄对面第二排单个目标

3 近战横排 英雄对面第一排全部目标

4 远战横排 英雄对面第二排全部目标

5 竖排 英雄对面所在列全部目标

6 全体 英雄对面全部目标

解析双方所有出战人员的攻击对象
attackType
属性值。解析后

第一手,对方xiongmao,攻击类型4目标后排全部(没有对象,根据游戏策划,找不到后排就找前排,所以,是己方sanyan和己方zhujiao全部前排目标,神仙道都有默认和找不到对象的另外一种情况)

第二手,对方sanyan,攻击类型3目标前排全部(默认己方sanyan和己方zhujiao)

第三手,己方sanyan,攻击类型2目标后排单个(默认的没找到,只好另一种策划,近战单个,所以,目标对方熊猫)

第四手,己方zhujiao,攻击类型1目标前排单个(默认对方sanyan)
目标查找还要判断
是否死亡,下面讲
批注:sudu大小越大越先攻击,
相同大小,随机决定

批注2:对于单个前排,后排,所在列对方找不到(没有出战或者死亡,只好游戏策划,从左到右所在列找。玩过神仙道都知道),
对于所在列全列攻击类型5,自己列找不到,也是从左到右找。策划问题。

写法:

战斗布局函数()
战斗逻辑函数()
第一轮出手顺序()没出场的的自然在xml战斗文件中没有写。写了肯定是没死亡的,第一论嘛
{
查询默认目标是否存在(出场了,且没死亡(气血大于0))

false

表示没有死亡

true

表示死亡
查询目标die值和位置die为false表示找到,true,那就找非默认位置,另一种策划

如果找到有找到,包括非默认都找不到(),表示全部死亡了。战斗胜利
如果找到找到() {
己方攻击动画(图片动画,另外plist动画也可以。xml就写


attack.plist




6




sanyan.png



)最后用i0到count的值6-1,写出 sanyani.png六张动画,如果需要的话,

技能动画()

同理,技能动作(出手位置,移动到目标位置),

技能动画技能动作并列播放cocos2d那个CCSpawn

然后回调函数,对方受伤动画(找到对方,对方就播放受伤动画,如果死亡,播放死亡动画)

怎么判断,是否死亡。

对方气血-当前攻击者伤害值,小于等于0就死了撒。

所以要写受伤函数(计算对方气血,没死亡(受伤动画,受伤音效),死亡(死亡动画和音效。音效也可以类似动画写在战斗xml文件里, 重点,写xml值die的false为true))

回调函数。查找第2手出手的,再来执行战斗逻辑调用当前
战斗逻辑函数() 。第三手。第四手,执行完后,返回第一手,要判断,第一手有可能死亡了,如果死亡,跳过,查下一手

为什么不用while写。除非你只想一下就看完战斗结果,过程都不看了呀,你一刀来我一刀,我做的flash战斗就是这样的

}

}

至于其他功能,地图滚动,就不说了,假如一场战斗有4批怪,那就胜利一次后,回调滚动地图,解析下次战斗的另一个xml战斗文件了。功能循环重来。知道自己失败,己方全都die,或者胜利,4次战斗都胜利