Posted on 2010-11-22 16:20
点点滴滴 阅读(322)
评论(0) 编辑 收藏 引用 所属分类:
08 游戏SDK
动作切换序列思路模拟:
人物的动作分为上半身,下半身动作
上半身动作:休闲、走路(向前、向后、向左、向右)、跑步(向前、向后、向左、向右)、准备战斗、跳(开始跳,跳循环、结束跳)
下半身动作:休闲、走路(向前、向后、向左、向右)、跑步(向前、向后、向左、向右)、准备战斗、跳(开始跳,跳循环、结束跳)
控制逻辑:
*******************************************************悲伤的分割线****************************************************************
队列命令问题:
1.走路的时候队列创建太频繁,进行解决(使用队列池)
2.上面一个队列执行完毕后执行下一个队列。
3.队列要能够同时处理两个命令,因为在运动的时候是一个命令,战斗的时候是另外一个命令。
4.初步决定使用两个队列,分别控制上半身和下班身动作。
第一种解决方案思路整理(走路+攻击):
1.命令分类,外部根据命令往队列里面插入命令
2.命令开始执行,成员变量记住命令的参数,并在渲染的每一帧执行命令。
3.执行的每一帧插值,处理命令
举例:
1.往命令队列中插入走路命令。 1
2.在每一帧中执行走路命令,保存目标位置和源位置,并进行插值。
3.往命令队列中插入准备攻击命令 2 有一帧不走动了。解决思路:执行攻击的时候也执行走路插值。??有可能没有问题,因为速度过快
4.开始执行准备攻击命令
5.在每一帧中执行准备攻击命令 3
6.往命令队列中插入走路命令。
7.在每一帧中执行走路命令,保存目标位置和源位置,并进行插值 4
想法:
1.上半身和下半身无任何影响(战斗:如果下半身进行休闲动作才改变,否则只改变动作。移动:如果上半身休闲才改变,否则不改变)
2.上半身动作影响下半身.(施法:直接修改上下半身动作为施法)
3.动作播放结束后处理为
队列影响:
第二种情况直接用队列一个一个处理。
第一种情况比较难处理(在处理战斗时候,处理换动作命令,然后处理移动命令)
//StartAction分为全身和上半身。。。。。
动作分组:
休闲动作,不打断动作,进度条动作, 动作播放完毕。
不可行:因为只有一个队列,所以执行走路命令的时候不能处理战斗的命令。 此方法抛弃。
*******************************************************希望的分割线****************************************************************
麻烦:
解决方案:
对外接口:外部参数不管上半身,下半身动作,根据命令类型分配到上半身和下半身队列中去,控制上半身和下半身休闲,战斗。//全身动作或者上半身动作。
1.分为上半身,下半身动作两个命令队列分别处理上半身和下半身动作。
举例:
走路+战斗:
1.命令队列中插入走路命令
2.向上半身,下半身队列中分发各分发一个走路命令。
3.会同时处理走路命令。
4.命令队列中增加战斗命令。
5.判断下半身时候休闲,不是的话分发战斗命令,向上半身队列中分发战斗命令。
6.处理上半身,下半身动画播放过程中的处理。
注意:
1.上半身的动作和下半身一样的时候。根据下半身的动作帧数控制。
2.分发器,根据不同的游戏有不同的分发原则。
*******************************************************希望的分割线****************************************************************