1. 程式人生 > >cocos2d-x3.x的拖尾效果

cocos2d-x3.x的拖尾效果

作為一個實習,也就是傳說中的碼農,自身的程式碼基礎也不夠,所以暫時就不扒開底層對每個引數一一研究了,不過其實知道了api,完全可以通過自己檢視一步步理解,每個函式底層程式碼裡邊都有註釋。

MotionStreak類繼承自node,所以,基本上可以當做node來使用;基本上也比較簡單,直接複製自己專案的程式碼了先

建立一個拖尾的節點,執行moveto,在move過程產生拖尾效果,最後到目的點時呼叫回撥消除這個節點:

    auto streak=MotionStreak::create(10, 5, 20, Color3B(0,0,0), "bossdian.png");
    streak->setPosition(Point(800,900));
       auto moveto =MoveTo::create(0.3,Point(0,0));
       auto fun=[this](Node*psender)
        {
           auto streak=static_cast<MotionStreak*>(psender);
            streak->removeFromParent();
        };
       auto call=CallFuncN::create(fun);
        streak->runAction(Sequence::create(moveto,call,NULL));
       addChild(streak,200);

值得一提的時拖尾節點建立時的幾個引數:

 /** creates and initializes a motion streak with fade in seconds, minimum segments, stroke's width, color, texture filename */
   staticMotionStreak* create(float fade,float minSeg,float stroke,constColor3B& color,conststd::string& path);

通過註釋也不難理解:fade是這個拖尾效果消失的時間,也就是當節點走過某一個點時建立的這個尾巴在fade後消失;minseg表示拖尾和該節點的最小距離;stroke表示每條拖尾帶的粗細;後面兩個分別是rgb顏色和檔名。

基本的拖尾效果可以通過這些實現,但是一個可以拿來當做完整的技能拖尾,還是需要很多改變。