格斗游戏的主线是:挨打盒和攻击盒。挨打盒表示身体,攻击盒位于挨打盒的右边或者左边,以游戏人物朝向为准,当敌人或者英雄的状态机切换到攻击状态时。检测碰撞盒。有碰撞就表示了一次攻击。
格斗游戏主要ai是通过状态机来实现的,状态机大约有这几种
typedefenum _ActionState
{
kActionStateNone=0,//初始化
kActionStateIdle,//空闲
kActionStateAttack,//攻击
kActionStateWalk,//行走
kActionStateHurt,//受伤
kActionStateKnockedOut,//死亡
}ActionState;
coco2dx中计时器的使用如下:
long millisecondNow()
{
struct cc_timeval now;
CCTime::gettimeofdayCocos2d(&now,NULL);
return (now.tv_sec *1000 + now.tv_usec /1000);
}
通过计时器,随机数来切换状态机。源码地址如下:http://download.youkuaiyun.com/detail/cloud95/5280750