平台搭建好了,接下来就是设置人物的动作,主要是两个方面:行走,停止。
因为项目在创建的时候就已经默认设置屏幕的刷新频率为60次/秒,代码如下:
director->setDisplayStats(false);
director->setAnimationInterval(1.0 / 60);
游戏运行过程中,屏幕无时无刻不在刷新,所以我们只需要将resource文件中的关于人物的图片,完成关于人物停留的帧动画就ok了,
for (int i = 1; i <= 5; i++)
{
char pngName[260] = { 0 };
sprintf(pngName, "stay%d.png", i);
frameVector.pushBack(SpriteFrame::create(pngName, Rect(0, 0, 54, 58)));
}
StayAnimation = Animation::createWithSpriteFrames(frameVector, 0.1);
StayAnimation->setRestoreOriginalFrame(false);
StayAnimation->setLoops(10000);
StayAnimate = Animate::create(StayAnimation);
人物行走时动作的创建,与上面说的原理是一样的,就不再赘述了。
人物移动,行走是玩家控制的,其中动作间的切换,就需要设定不同的函数来控制,重点就在于获取人物(精灵)所在位置,以及停留时间的判断,这点跟碰撞检测是大同小异的。