zoukankan      html  css  js  c++  java
  • Cocos2d-x学习笔记(十八)之 基本动作

      CCAction的子类CCFiniteTimeAction分为瞬时动作(CCActionInstant)和延时动作(CCActionInterval),其中瞬时动作的子类如下:

      CCCallFunc:执行回调函数。

      CCFilpX:x轴镜像翻转。

      CCFilpY:y轴镜像翻转。

      CCHide:隐藏。

      CCPlace:设置位置。

      CCReuseGrid:重用网络。

      CCShow:显示。

      CCStopGrid:停止网格。

      CCToggleVisibility:可见切换。

      瞬时动作,顾名思义,就是直接调用结果的动作,这中间不产生任何动画效果。

      

      延时动作(CCActionInterval)则不同,它会形成动画过程,其子类如下:

      CCBezierBy:贝塞尔曲线,移动固定的距离。它有一个子类CCBezierTo,也是贝塞尔曲线,移动到固定的点上。

      CCBlink:闪烁。

      CCDelayTime:延迟。

      CCFadeTo:变暗。

      CCMoveTo:移动到目的点。子类CCMoveBy,x、y轴坐标分别移动相应的相对距离。

      CCRotateTo:移动到相应的角度。有子类CCRotateBy,移动相应的角度,是在目前角度的基础上加上相对值。

      CCFadeIn:由无变亮。

      CCFadeOut:由亮变无。

      CCJumpBy:按抛物线轨迹移动相应距离,参数是相对的距离。有子类CCJumpTo,跳跃到某个固定的位置。

      CCSequence:动作序列。

      CCSpawn:合并多个动作,使多个动作同时进行。

      CCScaleTo:缩放到原来的固定倍数。有子类CCScaleBy,缩放相对的倍数。

      CCTintTo:色调变化到。

      CCTintBy:色调变化相对数值。

      CCAnimate:动画。

      CCReverseTime:时间逆向。

      CCRepeat:有限次重复。

      CCRepeatForever:无限次重复。

      CCActionCamera:摄像机动作。

      CCSkewTo:扭曲效果到设定的参数。有子类CCSkewBy,移动相对的参数。

      CCTargetedAction:动作的目标并不一定是动作的执行者动作。

      CCCardinalSplineTo:基样曲线移动到相应位置,也有CCCardinalSplineBy等其他子类。

      CCDeccelAmplitude:有相应幅度参数的动作,附带动作时间,有减速效果。

      CCAccelAmplitude:有相应幅度参数的动作,附带动作时间,有加速效果。

      CCAccelDeccelAmplitude:有相应幅度参数的动作,附带动作时间,有变速效果。

      好了,下面我们就来看一些动作类的使用示例:

      1、移动动作:

     1 CCSize s = CCDirector::sharedDirector()->getWinSize();
     2 //参数:时间、位置对象
     3 CCActionInterval* actionTo = CCMoveTo::create(2, CCPointMake(s.width - 40, s.height- 40));
     4 CCActionInterval* actionBy = CCMoveBy::create(2, CCPointMake(80, 80));
     5 //动作倒置
     6 CCActionInterval* actionByBack = actionBy->reverse();
     7 
     8 m_tamara->runAction( actionTo );
     9 m_grossini->runAction( CCSequence::create( actionBy, actionByBack, NULL ) );
    10 m_kathia->runAction( CCMoveTo::create(1, CCPointMake(40, 40)) );

      2、缩放动作:

    1 //可以两个参数或三个参数:两个参数:时间间隔、缩放比例,三个参数:时间间隔、x轴缩放比例、y轴缩放比例。
    2 CCActionInterval* actionTo = CCScaleTo::create(2.0f, 0.5f);
    3 CCActionInterval* actionBy = CCScaleBy::create(2.0f, 1.0f, 10.0f);
    4 
    5 m_grossini->runAction( actionTo );
    6 m_tamara->runAction( CCSequence::create( actionBy, actionBy->reverse(), NUKK ) );

      3、扭曲动作:

    1 //参数:时间间隔、x轴扭曲参数、y轴扭曲参数
    2 CCActionInterval* actionTo = CCSkewTo::create(2, 30.0f, -10.0f);
    3 CCActionInterval* actionBy = CCSkewBy::create(2, 0.0f, -10.0f);
    4 m_tamara->runAction( CCSequence::create( actionTo, actionTo->reverse(), NULL ) );
    5 
    6 m_grossini->runAction( CCSequence::create( actionBy, actionBy->reverse(), NULL ) );

      好了,实例就列举这么几个吧,其他的基本动作和实例的用法基本相同,比如:旋转动作(CCRotateTo、CCRotateBy)、跳跃动作(CCJumpTo、CCJumpBy)、贝塞尔曲线动作(CCBezierTo、CCBezierBy)、淡入淡出动作(CCFadeIn、CCFadeOut)、闪烁动作(CCBlink)、色值渐变动作(CCTintTo、CCTintBy)等。

  • 相关阅读:
    springboot部署到tomcat
    新建 SecondPresenter 实现类
    BaseFragment 基类
    BaseActivity 基类
    ProxyImpl 类
    BaseFragment 基类代码
    对于大量数据存储入库问题的解决办法
    MainActivity.java 文件
    activity_main.xml 添加自己画的view 组件
    MyView.java 自己画的view
  • 原文地址:https://www.cnblogs.com/atong/p/3282583.html
Copyright © 2011-2022 走看看