坐标系、锚点、addChild方法的介绍(五)

来源:互联网 发布:数据大玩家直播室 编辑:程序博客网 时间:2024/04/29 08:09

坐标系:

(1)OpenGL坐标系:原点在左下角(笛卡尔直角坐标系)setPosition和图层渲染采用

(2)UIKit坐标系:原点在左上角(屏幕坐标系)

 两种坐标之间的转化:

CCDirector::sharedDirector()->convertToUI(sprite->getPosition());

CCDirector::sharedDirector()->convertToGL(sprite->getPosition());

绝对坐标:不参考依赖其他坐标系的,完全独立。

相对坐标:与之相反。(Cocos2d中的精灵添加是以this->addChild()添加,所以是相对坐标.

bool HelloWorld::init()
{
  CCSprite * sp1 =CCSprite::create("sprite.png");
   sp1->setPosition(ccp(100,100));
   this->addChild(sp1);


   CCSprite * sp2 =CCSprite::create("sprite.png");
   sp2->setPosition(ccp(100,100));
   sp1->addChild(sp2);                                                 //sp2以sp1左下角坐标为参照坐标
   return true;
}


锚点;是对节点自身而言的一个概念。


addCHild(CCSprite * x,int y, int tag):第二个参数越高代表绘制的越后(默认为0)。第三个的参数的理解:如果一个函数中的局部变量因超出作用域而结束,而在另个一函数中又想调用它,那么我就可以根据他的tag值来调用eg:CCSprite * sp1=(CCSprirte *)this->getChildByTag(1)因为返回的是Node类型的父节点所以要强制转换.这时我们就可以对sp1进行其他设置如位置改变之类。

注明:为考虑内存我们应该尽量避免使用成员变量。

0 0
原创粉丝点击