[windows+cocos2dx](绝对/相对)坐标系、锚点、深度、

cocos2dx里面有两种坐标系,第一个是OpenGL坐标系,第二个是UIKit坐标系。

OpenGL坐标系是以左下角为原点(0,0),UIKit(界面坐标系)是以左上角为原点。

初识坐标系

//坐标系和锚点
CCSprite *sprite = CCSprite::create("aladdin.png");  
sprite->setPosition(ccp(0,0));
this->addChild(sprite);  

CCSprite *sprite1 = CCSprite::create("aladdin.png");  
sprite1->setPosition(ccp(480,320));
sprite1->setAnchorPoint(ccp(1,1));
this->addChild(sprite1); 

CCPoint point = CCDirector::sharedDirector()->convertToUI(sprite1->getPosition());
CCLOG("x:%f,y:%f",point.x,point.y);
[windows+cocos2dx](绝对/相对)坐标系、锚点、深度、_第1张图片 [windows+cocos2dx](绝对/相对)坐标系、锚点、深度、_第2张图片


相对坐标系

如果一个节点添加在另外一个节点之上,那么子节点就是以父节点的坐标系为参考坐标系
//相对坐标系
CCSprite *sp1 = CCSprite::create("icon.png");
sp1->setPosition(ccp(200,200));
this->addChild(sp1);

CCSprite *sp2 = CCSprite::create("CloseNormal.png");
sp2->setPosition(ccp(0,0));
sp1->addChild(sp2);
[windows+cocos2dx](绝对/相对)坐标系、锚点、深度、_第3张图片


深度关系

z值越大,显示的层级越高,越靠近屏幕方向。

//深度
CCSprite *sp1 = CCSprite::create("background.png");
sp1->setPosition(ccp(size.width*0.5,size.height*0.5));
this->addChild(sp1,1);

CCSprite *sp2 = CCSprite::create("CloseNormal.png");
sp2->setPosition(ccp(90,90));
this->addChild(sp2,0);

CCSprite *sp3 = CCSprite::create("CloseNormal.png");
sp3->setPosition(ccp(size.width-90,90));
this->addChild(sp3,2);

[windows+cocos2dx](绝对/相对)坐标系、锚点、深度、_第4张图片


全局变量Tag

如果我们在一个方法中定义的精灵,我们想要在其他方法中也要用到,那么我们就可以使用tag这个属性,也就是对这个精灵标记了一个全局变量编号,所程序任何位置都可以通过CCSprite * sp = this->(CCSprite*)getChildByTag()来获取到该精灵对象。

定义的时候可以这样定义,第三个参数就是tag属性
this->addChild(sp1,0,1);


欢迎关注我的围脖

==================== 迂者 丁小未 CSDN博客专栏=================

MyBlog:http://blog.csdn.net/dingxiaowei2013             MyQQ:1213250243

Unity QQ群:375151422      cocos2dx QQ群:280818155

====================== 相互学习,共同进步 ===================



你可能感兴趣的:(锚点,cocos2dx,OpenGL坐标系)