Cocos2d-x 核心概念

場景(Scene)和層(Layer)

場景:特定時間,特定地點發生的事件的集合

層:圖層

PS中的層一致,場景是由一個又一個層構成的

tips:一個場景可以有多個層,一個場景至少有一個層

精靈(Sprite)

在屏幕上移動的對象,他能被控制。

特點:

  1. 他是可以被控制的遊戲對象
  2. 通常是在屏幕上可以移動的對象
  3. 圖片元素,如背景畫
  4. 動畫,如骨骼動畫等

例:手遊刺激戰場中你人物的角色,角色手中的槍,載具等,這些對象都是精靈

序列幀動畫:很多張圖片以相同間隔的時間循環播放構成的

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

未完待續!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章