新人请教战斗流程和其他的做法问题。

纯新人一枚,会点WEB开发技能。。。
工具:cocos creator v2.02
游戏:RPG单机,多人组队

1、战斗流程问题:
让a1,打对面的b1或者b2…这时候的逻辑流程是什么?
1、选择要打的b1/b2。
2、选择a移动的动画(因为b1/b2的位置不同,调用的动画也不同)。
3、到位置选择a1攻击的动画。
4、打人更新双方数据。
5,a1打完退回的动画?
这样正确吗?
还是说。
1、选择a1要打的b1/b2。
2、用js调用a1的移动动画,并把a1移动到要b1的面前的坐标。
3、当a1和b1碰撞时,触发攻击动画。
4、并更新双方相关状态。
5、当攻击动画播放完成后,js调用a1退回动画,并把a1移动到原坐标。

2、背包系统
假定一个背包里面有加金币的道具,加经验的道具,加基础属性攻击/防御/最大HP的道具等等。
这些道具的数据肯定是存在本地的库里面的(想用excel,如果能用sqllite就更好了)。
那么每一个道具对应的执行方法肯定不一样。
addGold(item_id){} addExp(item_id){}
这些在cocos里面大家一般是怎么区别的?
我想这样做。。
只用道具表:
item_id type或者action num
1 1/addGold 99
2 2/addExp 10
当使用道具的时候。
1、先判断道具数量是否足够。
2、根据道具的类型,执行相关方法。。

如果要用到关联的方式,另一个对应的item_action_config.js里面。
type action
1 addGold
2 addExp
这样关联,来达到使用某个道具调用某个方法,这样做对吗?是不是有更简单的做法?

3,场景切换和弹窗的选择?
比如在城镇场景。
在铁匠那升级道具,肯定有一个升级的界面。
那这个界面是做成场景切换好还是弹窗好?
另个这个场景肯定还有道具,商店之类的。

2赞

我一般战斗是这样做的。
1、选择a1要打的b1/b2。
2、根据远程/近战计算移动动作,播放移动动画(远程站在原地直接下一步)。回合制在移动前计算各种buff释放
3、移动动作完毕后播放战斗动画,单机可以即时更新双方数据,卡牌网游数据是提前计算好的。
4、退回原坐标
其中要注意的是,不管移动还是战斗动画,其中的位移都是由程序计算的,比如一个技能作用多个坐标时,技能的释放位置要根据多个角色的坐标计算。

背包系统比较简单,无论哪种实现方式都可以。
表格用excel填写通过工具转换成json/js使用
我一般这样做:
道具表里设置每个道具的类型。包括经验,金币之类的,全在这个表里。比如类型1经验,2金币,3普通道具,4任务道具
这样发放奖励的时候可以直接填写成1001;1002;1003 这样的字符串,然后写一个通用的方法用来处理发放奖励就OK了

场景切换一般游戏最多有3个场景 loading->主界面->战斗场景 其他的UI弹出框之类的都是做成prefab。多个大的界面像商店,道具之类的也是弹出层,全屏弹出层弹出后可以关闭底层UI的绘制

很详细,清楚怎么学下去了,非常感谢。

在这你有提到3和4,照着这样做遇到问题了,试了很久都不行。
我主要的执行逻辑是这样。
var a = this.comp.play('跑步循环‘),
var b = cc.moveTo(1,600,0);
var c = this.comp.play(‘攻击单次播放’)
var d = cc.rotateTo(0, 0, 180) //旋转180度
var e = this.comp.play('跑步循环),
var f = cc.moveTo(1,0,0);
var g = this.comp.play(‘站立循环’).
var action = cc.sequence(a,b,c,d,e,f,g);
this.node.runAction(action);
只执行到了C,后面的DEFG没有执行。
也试过spawn,也没作用。
sequence里面,b是用了callFunc来确定a移动到了具体位置后再执行b,
其他的CDEFG也试过用callFunc,但是没办法在执行完成后自动切换动画至播放。。
另外,在执行了C攻击后,被攻击的人物也要执行被打的动画,这个需要怎么做关联啊?
能提供一下简单的DEMO吗?卡在这几天了。