1. 程式人生 > >[windows+cocos2dx](絕對/相對)座標系、錨點、深度、

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


相對座標系

如果一個節點新增在另外一個節點之上,那麼子節點就是以父節點的座標系為參考座標系
//相對座標系
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);


深度關係

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


全域性變數Tag

如果我們在一個方法中定義的精靈,我們想要在其他方法中也要用到,那麼我們就可以使用tag這個屬性,也就是對這個精靈標記了一個全域性變數編號,所程式任何位置都可以通過CCSprite * sp = this->(CCSprite*)getChildByTag()來獲取到該精靈物件。定義的時候可以這樣定義,第三個引數就是tag屬性
this->addChild(sp1,0,1);

歡迎關注我的圍脖

==================== 迂者 丁小未 CSDN部落格專欄=================

Unity QQ群:375151422      cocos2dx QQ群:280818155

====================== 相互學習,共同進步 ===================