cocos2d 学习 第4天

1.在pushScene和popScene时可以加特效吗?如何加?
pushScene可以  pushScene(TransitionFade::create(2.0, scene))//淡入淡出特效
2.scheduleOnce//触发器(一次时间调度)
  void DrawTest::callOnce(float dt)
  {
    log("once");
    unschedule("timeDown");
  }
  this->scheduleOnce(CC_CALLBACK_1(DrawTest::callOnce, this), 5.0, "Once");
3.内存管理
(1)对象创建出来引用计数为1。
(2)当对象通过addChild函数加入父节点后,引用计数为2.
(3)当对象从父节点上移除后,引用计数-1.
(4)当场景渲染结束(drawScene()结束)后对象引用计数-1.
(5)如果场景渲染结束前对象的引用计数为1,则渲染之后引用计数变为0,这时,这一帧结束时会自动清理自动释放池中的引用计数为0的对象。
4.动作特效
(1)MoveTo函数  平移移动 参数是:(时间,位置)(位置是相对于父节点坐标系的原点)
     auto moveTo = MoveTo::create(1,Vec2(1200,375));
     MoveBy函数  参数是(时间,位置)(位置相对于当前位置)
     auto moveBy = MoveBy::create(1,Vec2(300,300)); 
     sprite->runAction(moveBy);
     sprite->runAction(moveTo);
(2)旋转(RotateTo)参数是:(时间,角度)(角度:正顺时针,最后精灵的角度= 角度%360,旋转的圈数=(度数-360)/360)
     auto rotateTo = RotateTo::create(1.0,540);
     auto rotateBy = RotateBy::create(5.0,720);
     sprite->runAction(rotateBy);
(3)缩放 参数是(时间,缩放比例)
      auto scaleTo = ScaleTo::create(1.5,2.0);//相对于精灵原始的尺寸
    auto scaleBy = ScaleBy::create(1.5,-2.0);//相对于精灵当前尺寸
    sprite->runAction(scaleBy);
(4)跳跃 参数是:(时间,位置,每次跳跃的距离,跳跃次数)
    auto jumpTo = JumpTo::create(2.0,Vec2(1200,600),100,6);//位置是相对于父节点坐标系的原点
    auto jumpBy = JumpBy::create(2.0,Vec2(1200,600),100,6);//位置是相对于当前位置
    sprite->runAction(jumpBy);
(5)反动作  reverse(); 求一个动作的反动作  MoveTo需要另一个精灵run MoveTo动作才能求其反动作。
    MoveBy 直接可以求其反动作  其他动作不能求其反动作。
    ActionInterval * reverseMoveBy = moveBy->reverse();
(6)闪烁 Blink 参数(时间,次数)
      auto blink = Blink::create(1.0,5);
(7)贝赛尔曲线 
    ccBezierConfig bezier;
    bezier.controlPoint_1 = Ver2(0,160);
    bezier.controlPoint_2 = Ver2(300,240);
    bezier.endPosition = Ver2(300,100);

    auto b = BezierTo::create(2.0,bezier);
    auto by = BezierBy::create(2.0,bezier);

(8)//缓冲动作
    auto m = MoveTo::create(2.0,Vec2(1200,375));
    auto eMI = EaseIn::create(m,2.0);
    auto eMO = EaseOut::create(m,2.0);
    auto eMIO = EaseInOut::create(m,2.0);
    auto easeBackIn = EaseBackIn::create(m);
    auto easeBackOut = EaseBackOut::create(m);
    auto easrBackInOut = EaseBackInOut::create(m);
    auto easeBounceIn = EaseBounceIn::create(MoveTo::creatr(2.0,Vec2(1240,660)));
(9)组合动作(序列动作) Sequence['siːkw(ə)ns]
    auto seq = Sequence::create(MoveTo::create(2.0,Vec2(1200.375)),RotateBy::create(1.5,1080),ScaleBy::create(2.0,2),ScaleBy::create(1.0,0.5),Blink::create(2.5,10),NULL);

(10)同步动作 Spawn[spɔːn]  里面的动作同时执行,互不影响
    auto spw = Spawn::create(MoveTo::create(2.0,Vec2(1200,375)),RotateBy::create(2.0,1080),NULL);
    sprite ->runAction(spw);                         


                                                                                                                                                                                                                                                                               

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值