[windows+cocos2dx](絕對/相對)座標系、錨點、深度、
阿新 • • 發佈:2019-01-25
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
====================== 相互學習,共同進步 ===================