1樓:Coder-Chen
為了這個問題,我特意寫了一篇文章:【知乎解答】cocos2d-x中Contestsize和Dimensions有什麼不同
其他他們直接的差別不大,都是節點未轉化前大小!Dimensions翻譯為:規模,大小;
我們先看一下他們的原始碼:
/** Sets the untransformed size of the Label in a more efficient way.(其實就是一種更加高效的設定Size的方式) */
void Label::setDimensions(float width, float height) }
const Size& getDimensions() const
上述兩個介面就是Dimensions的使用,可以看出使用Dimensions是對Label自己的長寬進行設定見其成員:_labelDimensions,_labelWidth ,_labelHeight 。
_labelDimensions使用如下:
可以看出_labelDimensions這個值只是進行set和get,而沒有其他什麼用。
_labelWidth ,_labelHeight使用如下:
其中使用了cocos2d.Label.alignText,也就是文字的對齊方式。
所以我們很自然的想到Dimensions應該與對齊方式有關,其中setMaxLineWidth這些也說明了只有在setDimensions以後,對齊方式,顯示方式等才會生效。
接著我們通過編碼檢視自己的推論(新建乙個工程(cocos2dx 3.6版本),在HelloWord中嘗試一把就好了):
1、setDimensions
auto rootNode = CSLoader::createNode("MainScene.csb");
Label* lb1 = Label::createWithSystemFont("123abc123abc123abc123abc", "Arial", 24);
lb1->setPosition(300, 800);
lb1->setDimensions(200, 40);
rootNode->addChild(lb1);
2、setContentSize
auto rootNode = CSLoader::createNode("MainScene.csb");
Label* lb1 = Label::createWithSystemFont("123abc123abc123abc123abc", "Arial", 24);
lb1->setPosition(300, 800);
lb1->setContentSize(Size(200, 40));
rootNode->addChild(lb1);
結論:setContentSize和setDimensions都是設定節點大小。 但是對Label而言,setContentSize並沒有什麼用,而是需要setDimensions設定節點大小,而且Label只有呼叫setDimensions可以進行換行等功能。
//注:Label設定尺寸大小,使用的是setDimensions,而不是setContentSize !
參加 2020 年 12 月英語四級考試(CET 4)是一種什麼樣的體驗?
第九作坊 大一新生不請自來。我也是今年剛剛參加了英語四級。話說體驗?知道了原來四級要自己報名 知道了原來四級的聽力要準備耳機 知道了原來四級的准考證要自己列印 知道了原來四級的滿分有710這麼高 知道了原來四級的題型這麼搞 知道了原來四級先寫作文再寫聽力 知道了原來四級聽力結束要立即收答題卡一 還有...
備考英語四級?
新東方線上四六級 打好詞彙基礎。四級的各個題型要想做好都離不開詞彙,恰好你的準備時間充分,一定要先把詞彙基礎打牢,脫離詞彙談做題都是耍流氓。評估自己的弱項。有了詞彙基礎後,先找一套真題,嚴格按照考試時間認真答題,評分,找出自己哪項相對薄弱。在做單項訓練時著重練習弱項。但如果時間充沛,做到各項兼顧是更...
英語四級備考資料?
我這裡有些資料,應該是新東方的 四級學習 https 72k.us dir 23946541 37168846 45041a 西安文都考研 英語四級備考資料 1.真題 2.單詞書 對你沒看錯,就這兩個就能幫你過四級 一 先說你問的聽力吧 做完聽力真題後對完聽力答案,看一遍錄音原文,將所有題目 包括答...