核心概念
場景(Scene)和層(Layer)
場景:特定時間,特定地點發生的事件的集合
層:圖層
PS中的層一致,場景是由一個又一個層構成的
tips:一個場景可以有多個層,一個場景至少有一個層
精靈(Sprite)
在屏幕上移動的對象,他能被控制。
特點:
- 他是可以被控制的遊戲對象
- 通常是在屏幕上可以移動的對象
- 圖片元素,如背景畫
- 動畫,如骨骼動畫等
例:手遊刺激戰場中你人物的角色,角色手中的槍,載具等,這些對象都是精靈
序列幀動畫:很多張圖片以相同間隔的時間循環播放構成的
UI組件
界面上的元素
例:比如遊戲中的進度條,標籤,按鈕,菜單,滑動條,複選框,文本框等
導演(Director)
控制遊戲的製作流程,指導團隊完成各項任務。
節點類Node
什麼是遊戲元素?
如遊戲中的場景、精靈、文本,地圖、菜單、層…,任何的對象。
Cocos2d中用Node類來對應遊戲元素的概念,他是Cocos2d-x中最爲重要的根類。
Node的屬性
以下是比較重要的屬性
節點關係
假設有三個精靈被添加到了父精靈。如果給父精靈旋轉了一個角度,那麼子精靈也會選擇一個角度。
創建Node對象
這是部分設置還有很多參數。
增加子節點
在父節點中默認顯示層級,添加默認元素標識的子節點
parentNode->addChild(node);
在父節點中指定顯示層級,添加默認元素標識的子節點
parentNode->addChild(node,zorder);
在父節點中指定顯示層級,添加指定元素標識的子節點
parentNode->addChild(node,zorder,tag);
tips:以上是添加子節點的三種重載方式
查找子節點
通過元素標識查找:auto node=parentNode->getChildByTag(tag);
//通過元素查找會比通過名稱查找更快,因爲整形變量的遍歷比字符型更加高效
通過元素名稱查找:auto node=parentNode->getChildByName(name);
遍歷查找:
Node* findNode =nullptr;
int findTag=20;
for(auto node:parentNode->getChildren())
{
if(node->getTag()==findTag)
{
findNode=node;
break;
}
}
刪除子節點
通過元素標識刪除指定的節點:parentNode->removeChildByTag(tag);
通過元素名稱刪除指定的節點:parentNode->removeChildByname(name);
通過指定的子節點:parentNode->removeChild(childe);
通過所有的子節點:parentNode->removeAllChildren();
未完待續!