Roope的Cocos2d-x学习之旅 002:简简单单的运动

I just don’t want to regret it:

  1.   你想去哪,你想走多远 ——MoveTo和MoveBy:
            MoveTo(你想去哪)它的作用也就是从某个地方到另一个地方,比如A(x1, y1),B(x2, y2 );当我们想把精灵从A移动到B点时,我们就可以用MoveTo(A MoveTo B,就是这么理解啦~)。
            MoveBy(你想走多远)它的作用就是A运动B这个距离这么远。也就是到达C(x1 + x2, y1 + y2);(A add B,就这么理解~[最右]
            具体实现如下:
          

 //截取屏幕大小
              Size visibleSize = Director::getInstance()->getVisibleSize();

               //定义一个精灵
                Sprite* Roope = Sprite::create("sprite.png");
                Roope->setPosition(Point(50, visibleSize.height / 2));//放置的位置
                this->addChild(Roope);

               //你想去哪
              //MoveTo* moveTo = MoveTo::create(0.9f, Point(250, 150));
              //Roope->runAction(moveTo);

            //你想走多远
               MoveBy* moveBy = MoveBy::create(0.9f, Point(250, 150));
               Roope->runAction(moveBy);


   2 .   我要减肥——ScaleTo和ScaleBy:
           首先是ScaleTo,ScaleTo的create有三个参数:
            float duration: 动作的持续时间,单位为秒。
            float sx : x方向的拉伸值。
            float sy : y方向的拉伸值。
            示例如:

        Size visibleSize = Director::getInstance()->getVisibleSize();

         Sprite* roope = Sprite::create("sprite.png");
         roope->setPosition(Point(visibleSize.width / 2, visibleSize.height / 2));
         addChild(roope);

         ScaleTo* scaleTo = ScaleTo::create(5.5f, 0.4f, 1.0f);

         roope->runAction(scaleTo);



        
          然后是ScaleBy,ScaleBy的create参数和ScaleTo的一样。
          ScaleBy::create(2.8f, 0.4f, 1.0f );    

          这里要说一下ScaleTo和ScaleBy的区别所在。ScaleTo的效果是不管精灵当前的拉伸倍数是多少,它就会把精灵缩放到指定的倍数。而ScaleBy的效果是在精灵当前的倍数的基础上,再次拉伸。

          如:
        


Size visibleSize = Director::getInstance()->getVisibleSize();

        Sprite* roope1 = Sprite::create("sprite.png");
        roope1->setPosition(Point(100, visibleSize.height / 2));
        roope1->setScale(2.0f);//拉伸精灵
        addChild(roope1);

        Sprite* roope2 = Sprite::create("sprite.png");
        roope2->setPosition(Point(400, visibleSize.height / 2));
        roope2->setScale(2.0f);//拉伸精灵
        addChild(roope2);

        ScaleTo* scaleTo = ScaleTo::create(3.0f, 1.0f, 1.0f);
        ScaleBy* scaleBy = ScaleBy::create(3.0f, 2.0f, 1.0f);

        roope1->runAction(scaleTo);
        roope2->runAction(scaleBy);



              这里就可以发现两者巨大的差别。
            
3 .   闪亮登场——Blink:
            
              Blink可以是精灵闪烁,并且可以指定闪烁次数,使用方法类似MoveTo等类。其create函数有两个参数。
              float duration :动作持续时间,单位为秒。
              float uBlink : 闪烁次数。
                
              示例如:
             
   


 Size visibleSize = Director::getInstance()->getVisibleSize();

    Sprite* roope = Sprite::create("sprite.png");
    roope->setPosition(Point(visibleSize.width / 2, visibleSize.height / 2));
    addChild(roope);

    Blink* blink = Blink::create(5.0f, 10);
    roope->runAction(blink);



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值