• cocos2dx for wp之精灵动作——Actions


    CCFiniteTimeAction:有限次动作执行类,就是按时间顺序执行一系列动作,执行完后动作结束;这里我们就是学习这个类

    从图中,我们可以看出动作主要分为两大类:CCActionInstanse(瞬时动作的基类)和CCActionInterval(延时动作的基类)

     CCActionInstanse(瞬时动作的基类)

    CCCallFunc :执行函数   CCFlipX/Y:  X/Y翻转          CCHide :隐藏

    CCPlace : 设置位置       CCReuseGrid :重用网格     CCShow :显示

    CCStopGrid :停止网格   CCToggleVisibility : 可见切换

    CCActionInterval(延时动作的基类)我们用的最多的就是延时动作。CCActionInterval的子类有很多,可以通过cocos2d-x自带的tests例子来学习。

    主要有这些动作:

    CCMoveTo/CCMoveBy :移动     CCScaleTo/CCScaleBy:缩放    CCRotateTO/CCRotateBy:旋转 

    CCSkewTo/CCSkewBy :扭曲     CCJumpTo/CCJumpBy :跳跃   CCBezierTo/CCBezierBy :贝塞尔曲线

    CCBink :闪烁                          CCFadeIn/CCFadeOut :淡入淡出  CCTintTo/CCTintBy :染色

    CCSpawn :同步                       CCRepeat/CCRepeatForever :有/无限次重复

    CCDelayTime:延迟

    下面是一个例子:grossini是一个精灵

    CCActionInterval actionBy = CCJumpBy.actionWithDuration(2, new CCPoint(100, 100), 50, 4);
    CCFiniteTimeAction actionByBack = actionBy.reverse();
    
    grossini.runAction(CCSequence.actions(actionBy, actionByBack));

    而一般我们都可以这样写,将几个动作一起组合在一起来实现精灵的动作。

    CCAction action = CCSequence.actions(
    CCSpawn.actions(CCAnimate.actionWithAnimation(animation, false),
    CCMoveBy.actionWithDuration(0.28f, position),
    CCCallFuncND.actionWithTarget(this, onWalkDone, tag))
    );
    grossini.runAction(action);

    CCSequence 是动作序列,把若干个动作按顺序组合在一起,然后依次执行。 

    CCSpawn 是将若干个动作组合在一起,同时执行它们(并行执行),执行时间以最长的那个动作为准。

    参数是CCFiniteTimeAction[] actions一个动作数组,比如说CCMoveBy、CCSkewBy、CCScaleBy等动作数组。一般在CCSpawn的最后一个动作放一个CCCallFunc,放一个回调函数(这里是onWalkDone)作为动作执行完后的处理(比如说:显示信息、人物面向等)。

  • 相关阅读:
    【转】Java中super和this的几种用法与区别
    公寓上网新认证方式破解研究
    移动设计
    破解哈工程大学深澜认证路由器
    Arch Linux安装记录
    foreach新解
    工具大全(转载)
    Linux 入门
    设置为驼峰命名
    efcore Add-Migration 错误
  • 原文地址:https://www.cnblogs.com/dieaz5/p/3006290.html
Copyright © 2020-2023  润新知