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)));

    

    

}


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