中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

[Cocos2D-X] Cocos2D-X TestCPP 詳解(二)Action 中

發布時間:2020-08-10 19:58:31 來源:網絡 閱讀:2230 作者:s13039962531 欄目:游戲開發

Cocos2D-X TestCPP詳解(二)Action 中

    昨天,我們介紹了 ActionsTest 中一些基本的動作。循序漸進,今天,我們就來介紹一些稍微復雜些的動作咯。當然這些動作會使你的游戲,看起來更炫~更流暢。

CardinalSplineBy / CardinalSplineTo:自定義路徑移動

  CCPointArray *array = CCPointArray::create(20);
  array->addControlPoint(ccp(0, 0));
  array->addControlPoint(ccp(s.width/2-30, 0));
  array->addControlPoint(ccp(s.width/2-30, s.height-80));
  array->addControlPoint(ccp(0, s.height-80));
  array->addControlPoint(ccp(0, 0));
  CCCardinalSplineBy *action = CCCardinalSplineBy::create(3, array, 0);

    CCCardinalSplineBy::create 參數1:執行時間 參數2:點數組 參數3:慣性
    
    這里,第三個參數,個人覺得叫慣性、張力都可以,看個人理解咯!


CatmullRomBy / CatmullRomTo:云線路徑移動

  CCCatmullRomTo *action2 = CCCatmullRomTo::create(3, array2);
  CCCatmullRomBy *action3 = CCCatmullRomBy::create(3, array2);

    CCCatmullRomTo::create 參數1:執行時間 參數2:點數組
    CCCatmullRomBy::create 參數1:執行時間 參數2:點數組

    大家看到了,這個云線呢,在拐彎處移動速度稍快哦。


BezierBy / BezierTo:貝塞爾曲線移動

  ccBezierConfig bezier;
  bezier.controlPoint_1 = ccp(0, s.height/2);
  bezier.controlPoint_2 = ccp(300, -s.height/2);
  bezier.endPosition = ccp(300,100);
  CCActionInterval*    bezierForward = CCBezierBy::create(3, bezier);

    CCBezierBy::create 參數1:執行時間 參數2:貝塞爾Config

    貝塞爾曲線的用途廣泛,當然咯,我們的游戲中也不缺乏他的身影,這里重要的說下ccBezierConfig 。Cocos2D-X 中需要用到貝塞爾曲線的地方都有他的身影。其實,它也沒有什么神秘的,只是一個擁有三個 CCpoint 的結構體,C2D-X 為了我們使用的方便提供了出來。


Blink:閃爍

  CCActionInterval*    action1 = CCBlink::create(2, 10);

    CCBlink::create 參數1:執行時間 參數2:閃爍次數

    這個就很簡單了,像我們游戲中被***的時候,要閃一下就用他,很方便,很簡單。    當然,效果也是很好的。


FadeIn / FadeOut:漸隱、漸顯

        CCActionInterval*    action1 = CCFadeIn::create(1.0f);  
        CCActionInterval*    action2 = CCFadeOut::create(1.0f);

     CCFadeIn::create 參數1:執行時間
    CCFadeOut::create 參數1:執行時間


TintTo / TintBy:顏色漸變

  CCActionInterval*    action1 = CCTintTo::create(2, 255, 0, 255);
  CCActionInterval*    action2 = CCTintBy::create(2, -127, -255, -127);

    CCTintTo::create 參數1:時間 參數2:red值 參數3:green值 參數4:blue值
    CCTintBy::create 參數1:時間 參數2:red值 參數3:green值 參數4:blue值

    這里的By是在此基礎之上變化。之前的都是在坐標上面變化,這個是在顏色上變化哦。


Sequence of InstantActions:動作回調

CCFiniteTimeAction*    action = CCSequence::create(
                CCPlace::create(ccp(200,200)),
                CCShow::create(),
                CCMoveBy::create(1, ccp(100,0)),
                CCCallFunc::create(this, callfunc_selector(ActionSequence2::callback1)),
                CCCallFuncN::create(this, callfuncN_selector(ActionSequence2::callback2)),
                CCCallFuncND::create(this, callfuncND_selector(ActionSequence2::callback3), (void*)0xbebabeba),
                NULL);

      CCCallFunc::create 參數1:函數所在對象 參數2:selector包裝函數
     CCCallFuncN::create 參數1:函數所在對象 參數2:selector包裝函數
    CCCallFuncND::create 參數1:函數所在對象 參數2:selector包裝函數
 參數3:自定義參數

    這里,我們第一次接觸到了 Cocos2D-X 中的回調函數,在游戲中,我們想在一個動作結束時得到一個反饋,我們就要用到這些函數。


RemoveSelf :消失

CCFiniteTimeAction*    action = CCSequence::create(
    CCMoveBy::create( 2, ccp(240,0)),
    CCRotateBy::create( 2,    540),
    CCScaleTo::create(1,0.1f),
    CCRemoveSelf::create(),
    NULL);

    CCRemoveSelf::create

    這個的效果大家看到了就是讓精靈越來越小,直到消失。


Spawn:同時執行動作

  CCAction*    action = CCSpawn::create(
                CCJumpBy::create(2, ccp(300,0), 50, 4),
                CCRotateBy::create( 2,    720),
                NULL);

    這個就是同時執行動作,動作的時間長度按照時間最長的動作決定。


DelayTime:延時

  CCFiniteTimeAction*    action = CCSequence::create( move, CCDelayTime::create(2), move, NULL);

    CCDelayTime::create 參數1:延時時間


OrbitCamera:球面軌跡旋轉

  CCActionInterval*    orbit1 = CCOrbitCamera::create(2,1, 0, 0, 180, 0, 0);

    CCOrbitCamera::create 參數1:執行時間 參數2:起始半徑  參數3:半徑差
  參數4:起始Z角  參數5:旋轉Z角差 參數6:起始X角
  參數5:旋轉X角差

    好了,今天也不早了就先介紹到這里。明天再見咯。

    CocoStudio 討論學習群:141444261
    Cocos2D-X  討論學習群:244959010





向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

岳西县| 通城县| 哈巴河县| 晋江市| 靖江市| 泰州市| 龙口市| 磐安县| 苗栗市| 夏邑县| 平乡县| 文山县| 五原县| 株洲市| 乃东县| 武强县| 定陶县| 西吉县| 井陉县| 集贤县| 阳西县| 武威市| 大荔县| 朝阳区| 沙湾县| 台中市| 图木舒克市| 建德市| 张家港市| 辽中县| 巍山| 茂名市| 砀山县| 杭锦旗| 昭苏县| 美姑县| 丽水市| 昌吉市| 巴东县| 平罗县| 徐州市|