游戏标题走马灯特效

2015-01-27 06:10:45 · 作者: · 浏览: 23

我不知道下面讲的特效的名称,就先叫走马灯特效吧,我也不知道真的走马灯特效是怎样的。这个有点像人浪效果。大致有两种方式实现。当然帧动画也可以做,但帧动画不在我们的讨论范围。程序实现有好处:速度好修改。



1. 每个独立变化


\



实现原理:大家先不要看整体效果,先特定关注单个子,比如第一个E字,它其实只有两个状态:一个实心,一个空心。它一直在重复一个动作:先变成实心的,很快就变成空心的,再变成实心,再空心...这样反复的交替。注意一个特点:实心出现的停留时间短些,空心的停留时间长些。 再看第二字,U,完全跟E是一个动作,只是比E慢一些时间出现。突然想起来这个效果就是球场上的人浪效果。每个人都有两个状态,站起来和蹲下,只是从左到右开始的时间不同。

cocZ??http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vczJkvt/M5cq1z9ajutfUtqjS5dK7uPZjbGFzc6OsvMyz0HNwcml0ZaOsy/y1xLP1yrzXtMystrzKx7/V0MS1xM28xqyjrMO/0ru49r6rwem1xL+qyrzWtNDQ1ti4tLavu621xGRlbGF5srvNrKOstavKx7zkuPTKsbzksu7Kx9K70fm1xKOsscjI57Xa0ru49srHMcPro6y908/CwLS+zcrHMS4yICwgMS40LCAxLjYsIDEuOCwgMi4wLiAgIDAuNsPruvPH0Lu7tb3KtdDEtcTR+dfT1rvNo8H0MC42w+ujrMi7uvPH0Lu7tb2/1dDEtcTR+dfTo6zNo8H0MS42w+u688fQu7u1vb/V0MSho9Xi0fm3tLi0tcTX9qGjyOe5+8Tjz+vV4rj2"人浪效果"从左往右的速度快一些。要好好地调一下这些delay的时间和停留的时间。
void TitleSprite::extraInit(float delayTime){
    auto seq = Sequence::create(DelayTime::create(delayTime), CallFunc::create(CC_CALLBACK_0(TitleSprite::changeToPressFrame, this)), NULL);
    this->runAction(seq);
}

void TitleSprite::changeToNormalFrame(){
    this->setSpriteFrame(_normalFrameName);
    auto changeFrameAction = Sequence::create(DelayTime::create(1.6), CallFunc::create(CC_CALLBACK_0(TitleSprite::changeToPressFrame, this)), NULL);
    this->runAction(changeFrameAction);
}

void TitleSprite::changeToPressFrame(){
    this->setSpriteFrame(_pressFrameName);
    auto changeFrameAction = Sequence::create(DelayTime::create(0.6), CallFunc::create(CC_CALLBACK_0(TitleSprite::changeToNormalFrame, this)), NULL);
    this->runAction(changeFrameAction);
}


2. 羽化图片刷过去


\





这种是不同上面的实现方式,是用一张斜的白色且边缘羽化的图片,从左往右移动实现的。因为之前讲过具体实现方式,这里就不赘述了,参考文章《cocos2d js ClippingNode 制作标题闪亮特效》

http://www.waitingfy.com/archives/1398