好了,上一篇文章中我们介绍了如何创建一个精灵,那么现在我们给他加点动作(action)。下面我总结了一下一些基本的动作函数。
CCPoint p=ccp(size.width/2+100, size.height/2); //放置 其实就相当于setposition CCPlace *ac1=CCPlace::create(p); //隐藏 CCHide *ac2=CCHide::create(); //显示 CCShow *ac3=CCShow::create(); //可见切换 CCToggleVisibility *ac4=CCToggleVisibility::create(); //to移到到指定位置,by是相对的位置,移到的是增量 CCMoveTo *ac5=CCMoveTo::create(2.0f, p); //跳跃到,4个参数分别是时间,位置,跳跃的高度,跳跃次数 CCJumpTo *ac6=CCJumpTo::create(2.0f, p, 10, 2); //贝塞尔曲线,先设置贝塞尔参数,两个控制点,一个结束点 ccBezierConfig bezier; bezier.controlPoint_1=ccp(100, 100); bezier.controlPoint_2=ccp(300, 300); bezier.endPosition=ccp(500, 500); CCBezierTo *ac7=CCBezierTo::create(2.0f, bezier); //放大 CCScaleTo *ac8=CCScaleTo::create(2.0f, 2.0f); //旋转 CCRotateTo *ac9=CCRotateTo::create(2.0f, 200); //闪烁 CCBlink *ac10=CCBlink::create(2.0f, 3); //色调变换 CCTintTo *ac11=CCTintTo::create(2.0f, 0, 234, 255); //变暗到 CCFadeTo *ac12=CCFadeTo::create(2.0, 200); //由无变亮 CCFadeIn *ac13=CCFadeIn::create(2.0f); //由亮到无 CCFadeOut *ac14=CCFadeOut::create(2.0f); //序列,顾名思义就是按照顺序一个个动画执行,别忘了最后要加上NULL,表示结束了 CCSequence *seq=CCSequence::create(ac1,ac2,ac3,NULL); //同步,几个动画一起执行 CCSpawn *spawn=CCSpawn::create(ac1,ac2,ac3,NULL); //有次数的的重复动画 CCRepeat *repeat=CCRepeat::create(seq, 10); //无限重复,但不能参与序列,同步动画 CCRepeatForever *repeatForver=CCRepeatForever::create(seq); //由慢至快,第二个参数表示加速率 CCEaseIn *ac16=CCEaseIn::create(ac5, 2.0f); //这些都是关于速度变化的动画 CCEaseInOut *ac17=CCEaseInOut::create(ac5, 2.0f); //延迟 CCDelayTime *delatTime=CCDelayTime::create(1.0f); pSprite->runAction(ac17);
好了,当然里面并不是很全,还有些是to和by的区别,大家都可以去尝试尝试。。。。。。。。