zoukankan      html  css  js  c++  java
  • <cocos2dx for WP7>初探CCAction(动作)

    cocos2d-x为我们提供了相当方便的动作制作。主要有两种:瞬时动作(基类CCActionInstanse)和延时动作(基类CCActionInterval)。我估计大部分人关心的都是延时动作,因为有动感,才能称为动作嘛。

    延时动作中,有很多种类型:移动(CCMoveTo,CCMoveBy),旋转(CCRotateTo,CCRotateBy),变形(CCScaleTo,CCScaleBy),跳跃(CCJumpTo,CCJumpBy)等动作。具体可以到http://www.cocos2d-x.org/embedded/cocos2d-x/d7/d12/classcocos2d_1_1_c_c_action.html查看。

    实现动作的方法:

    1,创建动作绑定结点(代码来自官方的Test工程)

    2,定义动作

    CCActionInterval actionTo = CCMoveTo.actionWithDuration(2, new CCPoint(s.width - 40, s.height - 40));
    
    
    

    3,动作执行


    上面的就可以完成一个简单的移动动作。

    通过研究Test工程。动作的完成主要是由每个动作类的actionWithDuration(在规定条件内完成动作),和reverse(恢复,反过来执行一遍动作)来完成。

    比如上面的定义动作的方法,就是在2秒内移动到距离右上角(40,40)的地方。如果还要返回到原位,用原来的轨迹。那么修改为如下:

    动作的合成主要靠CCSequence(类似队列,按照顺序执行动作),CCRepeatForever(无限重复动作),CCRepeat(有限重复动作)等完成。

    CCSequence用法:

    动作执行顺序就是先执行actionTo,再执行action.reverse()这个动作,其实CCSequence也有Reverse这个方法。那动作的执行顺序就是从后面到前面了。

    CCRepeatForever用法:


    例子:m_grossint.runAction(CCRepeatForever.actionWithAction(CCSequence.actions(actionTo,actionTo.reverse())));

    CCRepeat的用法和CCRepeatForever的用法类型。就是多了个time(次数)这个参数。

     

    那么,复杂的动作怎么实现呢,那得靠你的想象力了。怎么把简单的动作组合到一块。

    复杂的动作基本都是靠CCSequence,CCRepeat等组合起来使用,具体例子可以看官方的test工程。里面提供了大量的例子。我就不在这里展示了。

       

     
    
    
    
    
  • 相关阅读:
    nginx下根据指定路由重定向
    Ubuntu下配置apache开启https
    php+websocket搭建简易聊天室实践
    rsync + git发布项目
    nginx下配置Yii2 rewrite、pathinfo等
    新装NGINX重启,出现错误 nginx: [error] open() "/usr/local/nginx/logs/nginx.pid"
    wamp mysql服务意外停止
    PHP异步请求
    php curl_errno 60
    php开启fileinfo扩展
  • 原文地址:https://www.cnblogs.com/fengyun1989/p/2476051.html
Copyright © 2011-2022 走看看