Cocos2d-基礎知識

CCNode節點類

        CCNode節點類CCScene、CCLayer、CCSprite等類的基類,cocos2d-x框架中所有能夠繪製,或能夠容納可以繪製的對象的對象就是CCNode的子類。

CCNode特點:

1,每個節點都可以包含子節點。

2,節點包含有週期性回調方法。

3,可以執行動作。

4,含有大量屬性。

CCNode常用函數

節點相關:

addChild();

removeChildFromParent();

removeChild:();

getChildByTag();

動作

runAction();

stopAction();

stopAllActions();

stopActionByTag();

時間調度相關:

schedule();

scheduleUpdate();

unschedule();

CCNode常用屬性:

座標:

錨點:

縮放係數:

標籤:

二、座標與錨點;

座標    iOs平臺提供兩種標系,一種是屏幕座標系,另一種是openGL座標系。

cocos2d-引擎是基於OpenGL ES進行的圖形渲染,是三維座標系,所以當x、y軸映射到手機屏幕上時,其座標系原點屏幕左下角。

   座標運算:

CCPointExtension.h文件爲我們提供了多種座標運算的方法;

ccpAdd(const CCpoint &v1,const CCPoint &v2);  將兩個座標相加。

ccpSub(const CCPoint &v1,const CCPoint %v2);    將兩相座標相減。

ccpDistance(const CCpoint &v1,const CCPoint &v2);計算兩點間的直線距離。

ccpLength(const CCPoint &point);計算點與原點的直線距離。

錨點:

簡單說就是一個節點相對於座標的參考點。

節點座標系;

1節點座標是指和某個特定節點相關聯的座標系。

2和GL座標系也是一致的,x軸向右,y軸向上,但原點在父節點的左下角。

世界座標系

1世界座標系是所有座標體系的參考標準,“世界”即指的遊戲世界。

2世界座標系和GL座標系一致,原點在屏幕左下角,x軸向右,y軸向上。

座標系的轉換;

節點座標系轉換爲世界座標系

CCPoint convertToWordSpace(const  CCPoint &nodePoint);

世界座標系轉換爲節點座標系;

CCPoint convertToNodeSpace(const CCPoint worldPoint);



點.h文件

    void update(float dt);

    void myUpdate(float dt);

點.cpp文件


bool HelloWorld::init()

{

    //////////////////////////////

    // 1. super init first

    if ( !CCLayer::init() )

    {

        return false;

    }

    

    

    CCSprite *spr=CCSprite::create("Icon.png");

    spr->setPosition(ccp(100300));

    this->addChild(spr,0,1);//第二個參數是z軸的位置,第三個參數是個標籤。

    ////3代表調用3次,1.0f代表第一次調用等多長時間,調用一次是0.5秒,1.0是中間間隔的時間。

    schedule(schedule_selector(HelloWorld::myUpdate), 0.5f31.0f);

   

    

    scheduleUpdate();

    

       

    return true;

}

void HelloWorld::myUpdate(float dt)

{

    //this是層的對象。

    //getChildByTag(1)通過標籤得到節點。

    CCSprite *spr=(CCSprite*)this->getChildByTag(1);

    spr->setPosition(ccpAdd(spr->getPosition(), ccp(100)));//getPosition() 精靈的當前位置。x+10.

    

}

void HelloWorld::update(float dt)

{

    CCSprite *spr=(CCSprite*)this->getChildByTag(1);

    spr->setPosition(ccpAdd(spr->getPosition(), ccp(10)));

    

    

}


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