写写卡牌游戏思路,绝对原创,功能之卡牌战斗功能
战斗xml文件
version=“1.0” encoding=“ISO-8859-1”?>
false
战斗第一步。战斗布局
对方:两排三列
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次战斗都胜利