Cocos2d-x3.0 TestCPP目錄筆記

1.不多說,重力加速度。
2.ActionMangerTest:此Test是爲了展示通過導演類來獲得動作管理器ActionManager類,來控制節點動作。
①CrashTest:銷燬demo,在精靈執行旋轉的同時執行讓精靈延時消失和該層延遲自我銷燬,此係列動作同時執行。
②LogicTest:先讓grossini橫向移動150像素,然後讓其X,Y一同縮放2倍。
③PauseTest 通過動作管理器實現動作延遲。知識點:   
    auto director = Director::getInstance();
    director->getActionManager()->addAction(action, grossini, true);//將action添加到grossini,
    第三個參數true代表暫停此動作。
    schedule( schedule_selector(PauseTest::unpause), 3); 3爲間隔,單位爲秒。3秒後回調函數。
    但是確實是5秒。求大神解答。
④StopActionTest:執行一個動作後停止(Sprite*)->stopActionByTag(kTagSequence);
⑤ResumeTest:暫停3秒後,grossini執行旋轉360°的同時放大2倍。
    auto director = Director::getInstance();
   director->getActionManager()->pauseTarget(pGrossini);//pauseTarget(Node*)停止當前節點一切動作
   director->getActionManager()->resumeTarget(pGrossini);//resumeTarget(Node*)恢復節點所有動作。
   兩個方法成對出現。
3.Actions-Basic:此demo中體現ccp由Point代替
①ActionManual:直接設置精靈的屬性demo。
const Color3B Color3B::RED    (255,   0,   0);
const Color3B Color3B::GREEN  (  0, 255,   0);
const Color3B Color3B::BLUE   (  0,   0, 255);
//第四個參數爲透明度,前三個同上
const Color4B Color4B::RED    (255,   0,   0, 255);
const Color4B Color4B::GREEN  (  0, 255,   0, 255);
const Color4B Color4B::BLUE   (  0,   0, 255, 255);
//參數同上,就是用比例方式傳參
const Color4F Color4F::WHITE  (    1,     1,     1, 1);
const Color4F Color4F::YELLOW (    1,     1,     0, 1);
const Color4F Color4F::GREEN  (    0,     1,     0, 1);
const Color4F Color4F::BLUE   (    0,     0,     1, 1);
const Color4F Color4F::RED    (    1,     0,     0, 1);
const Color4F Color4F::MAGENTA(    1,     0,     1, 1);
const Color4F Color4F::BLACK  (    0,     0,     0, 1);
const Color4F Color4F::ORANGE (    1,  0.5f,     0, 1);
const Color4F Color4F::GRAY   (0.65f, 0.65f, 0.65f, 1);
//下面的求解釋
const BlendFunc BlendFunc::DISABLE = {GL_ONE, GL_ZERO};
const BlendFunc BlendFunc::ALPHA_PREMULTIPLIED = {GL_ONE, GL_ONE_MINUS_SRC_ALPHA};
const BlendFunc BlendFunc::ALPHA_NON_PREMULTIPLIED = {GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA};
const BlendFunc BlendFunc::ADDITIVE = {GL_SRC_ALPHA, GL_ONE};

②ActionMove:MoveTo/MoveBy。用法:此動作是移動。
        auto actionTo = MoveTo::create(2, Point(s.width-40, s.height-40));
        auto actionBy = MoveBy::create(2, Point(80,80));
        auto actionByBack = actionBy->reverse();
③ActionRotate:RotateBy/RotateTo。用法:此動作是旋轉。
         auto actionTo = RotateTo::create( 2, 45);
         auto actionBy = RotateBy::create(2 ,  360);
         auto actionByBack = actionBy->reverse();
④ActionRotateBy3D:RotateBy。在3D世界旋轉。X,Y座標的基點是左下角,Z座標的基點就是中心?
     從源碼看出,只有RotateBy有,用法:
       auto actionBy1 = RotateBy::create(4, Vertex3F(360, 0, 0));
       auto actionBy2 = RotateBy::create(4, Vertex3F(0, 360, 0));
       auto actionBy3 = RotateBy::create(4 ,Vertex3F(0, 0, 360));
⑤ActionScale:ScaleTo/ScaleBy。此動作是設置縮放,參數大於零放大,小於一是縮小,負數爲翻轉。
        用法:
           auto actionTo = ScaleTo::create(2.0f, 0.5f);
           auto actionBy = ScaleBy::create(2.0f, 1.0f, 10.0f);
           auto actionBy2 = ScaleBy::create(2.0f, 5.0f, 1.0f);
⑥ActionSkew:SkewTo/SkewBy。此動作是設置傾斜。用法:(此動作不懂)
               auto actionTo = SkewTo::create(2, 37.2f, -37.2f);
            auto actionToBack = SkewTo::create(2, 0, 0);
            auto actionBy = SkewBy::create(2, 0.0f, -90.0f);
            auto actionBy2 = SkewBy::create(2, 45.0f, 45.0f);
⑦ActionRotationalSkew:同樣是RotateBy/RotateTo。只不過是兩個參數,分別是X和Y。用單獨的旋轉角度。
      用法:
       auto actionByBack = actionBy->reverse();
       auto actionTo = RotateTo::create(2, 180, 180);
       auto actionToBack = RotateTo::create(2, 0, 0);
       auto actionBy = RotateBy::create(2, 0.0f, 360);
       auto actionByBack = actionBy->reverse();

       auto actionBy2 = RotateBy::create(2, 360, 0);
       auto actionBy2Back = actionBy2->reverse();
⑧ActionRotationalSkewVSStandardSkew:標準Skew和Rotate比較,據發現Skew會牽扯到縮放係數。
         用法同上。
⑨ActionSkewRotateScale:三個動作同時執行。SizeMake改爲Size。
      用法:
       box->runAction(Sequence::create(actionTo, actionToBack, NULL));
       box->runAction(Sequence::create(rotateTo, rotateToBack, NULL));
       box->runAction(Sequence::create(actionScaleTo, actionScaleToBack, NULL));
⑩ActionJump:JumpTo/JumpBy。不用解釋。
基本動作完成,綜上總結Skew和Rotate都爲區別爲,Skew改變了節點的縮放係數,具體改變求講解。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章