Cocos2d-x學習筆記之CCScene、CCLayer、CCSprite的默認坐標和默認錨點實驗
結論:實踐證明這三個東西的默認坐標都是0,0 默認錨點都是0.5,0.5。
bool HelloWorld::init() { bool bRet = false; do { CC_BREAK_IF(! CCLayer::init()); CCSprite * sprite = CCSprite::create("image1.png"); this->addChild(sprite); //獲得CCSprite的默認坐標,CCSprite設置坐標的時候是用自己的錨點位置占據(jù)在坐標上的。 CCLog("CCSprite.x=%f,CCSprite.y=%f",sprite->getPosition().x,sprite->getPosition().y); //獲得CCSprite的默認錨點 CCLog("sprite1Anchor.x=%f,sprite1Anchor.y=%f",sprite->getAnchorPoint().x,sprite->getAnchorPoint().y); //獲得CCLayer的默認坐標 CCLog("CCLayer.x=%f,CCLayer.y=%f",this->getPosition().x,this->getPosition().y); //獲得CCLayer的默認錨點 CCPoint point = this->getAnchorPoint(); CCLog("layerAnchor.x=%f,layerAnchor.y=%f",point.x,point.y); bRet = true; } while (0); return bRet; }
CCScene* HelloWorld::scene() { CCScene * scene = NULL; do { // 'scene' is an autorelease object scene = CCScene::create(); CC_BREAK_IF(! scene); // 'layer' is an autorelease object HelloWorld *layer = HelloWorld::create(); CC_BREAK_IF(! layer); // add layer as a child to scene scene->addChild(layer); layer->show(); } while (0); // return the scene return scene; }
void HelloWorld::show() { //獲得CCScene的默認坐標 CCScene * scene = (CCScene *)this->getParent(); CCLog("CCScene.x=%f,CCScene.y=%f",scene->getPosition().x,scene->getPosition().y); //獲得CCScene的默認錨點 CCPoint point = scene->getAnchorPoint(); CCLog("SceneAnchor.x=%f,SceneAnchor.y=%f",point.x,point.y); }
這里有一點非常值得注意,就是函數(shù)ignoreAchorPointForPosition(),這個函數(shù)的意 思是在設置節(jié)點(包括CCScene,CCLayer,CCSprite)的坐標的時候是否忽略錨點,我們都知道在設置坐標的時候就是用錨點去占據(jù)坐標的位置,如果忽略了錨點,那么就是以左下角為占據(jù)坐標的那個位置,或者說錨點就是左下角的點。 查詢官方的API得到的結論是:This is an internal method, only used by CCLayer and CCScene. Don't call it outside framework. The default value is false, while in CCLayer and CCScene are true。這個函數(shù)的默認值是false,但是對于CCScene和CCLayer它的值是true。如果是這樣的話,我們在設置CCScene和CCLayer的坐標的時候就是以 左下角為錨點的,而不是(0.5,0.5)。但是對于CCSprite來說正好是相反的,它對于這個函數(shù)的默認值就是false,也就是錨點就是它 本身的默認錨點(0.5,0.5)。
相關文章
詳解C語言中的rename()函數(shù)和remove()函數(shù)的使用方法
這篇文章主要介紹了詳解C語言中的rename()函數(shù)和remove()函數(shù)的使用方法,是C語言入門學習中的基礎知識,需要的朋友可以參考下2015-09-09C語言?深入理解動態(tài)規(guī)劃之計數(shù)類DP
動態(tài)規(guī)劃可謂是大名鼎鼎,筆試面試中的高頻考點,也是重點難點,動態(tài)規(guī)劃類型題目靈活多變,難度系數(shù)也相對較高,往往我們做不好動態(tài)規(guī)劃的題目就會與心儀的offer失之交臂,本篇文章我們就一起來研究一下動態(tài)規(guī)劃的計數(shù)類DP2022-04-04