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

    

    

}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值