cocos2d 學習 第六章

2022-08-05 12:21:14 字數 1920 閱讀 6195

可以通過很多方式用單個檔案或者 紋理貼圖集(

texture atlases

)來生成精靈。 

紋理貼圖集是一張包含很多的紋理貼圖(),通常用於存放單個角色動畫的所有動畫幀。 

實際上你可以把任何放進同一張紋理貼圖中。我們的目的是把盡可能多的放進同一張紋理貼圖中,以達到節省空間的目的。很多

cocos2d

開發者使用

zwoptex

這個軟體來建立紋理貼圖集。

「精靈批處理」(

sprite batching

)是用於提高精靈渲染速度的技術。

它可以提高渲染大量相同精靈的速度,它同紋理貼圖集配合使用的效率最高。 

如果你將紋理貼圖集與精靈批處理配合使用的話,你只要呼叫一次渲染方法就可以完成紋理貼圖集裡所有的渲染。 

「渲染方法呼叫」(

draw call

)是把必要的資訊傳遞給圖形處理硬體以完成整個或者部份渲染的過程。

當你使用

ccsprite

的時候,每生成乙個

ccsprite

節點都會呼叫一次渲染方法。

每一次渲染方法呼叫導致的系統開銷疊加起來會使遊戲的幀率大約降低

15%或者更多

(除非你使用

ccspritebatchnode

,它的 作用是作為乙個額外的層用於新增多個精靈節點。

前提是這些精靈節點使用的是同乙個紋理貼圖)。 

一、ccspritebatchnode

每次系統在螢幕上渲染一張貼圖時,圖形處理硬體必須首先準備渲染,然後渲染圖形,最後在完成渲染以後進行清理。上述過程是每一次在啟動渲染和結束渲染之間存在的固定系統開銷。如果圖形處理硬體知道你需要使用同一張紋理貼圖渲染一組精靈的話,圖形處理硬體將只需要為這一組精靈執行一次準備,

渲染,最後清理的過程了。

把使用同一張紋理貼圖的一組ccsprite節點新增到同乙個ccspritebatchnode裡,比逐個渲染ccsprite要高效很多。 

建立多個ccsprite節點,將它們新增到同乙個ccspritebatchnode中以提高渲染速度

1 ccspritebatchnode* batch = [ccspritebatchnode batchnodewithfile:@"

bullet.png"];

2[self addchild:batch];

3for (int i = 0; i < 100; i++)

4

ccspritebatchnode的作用很像cclayer,因為它本身並不顯示在螢幕上。不過 你只能把ccsprite加入ccspritebatchnode。 

不過你只能把ccsprite加入ccspritebatchnode。ccspritebatchnode 將乙個檔名作為引數,使用這個引數的原因是所有被新增進 ccspritebatchnode的ccsprite節點都必須使用同乙個檔案。 

因為所有的ccsprite節點都新增到同乙個 ccspritebatchnode中,所以所有ccsprite節點都會使用相同的z-order(深度) 

來渲染。如果你的遊戲要求子彈在敵人的前面和後面同時飛過的話,你就必須 使用兩個ccspritebatchnode節點,因為只有這樣你才能使用具有不同z-order 的子彈精靈。 

通常,在預設的初始化方法-(id)init中,不應該呼叫除了[super init]

以外的方法。如果你必須在類的初始化方法中呼叫像[super initwith...]這樣

的方法,你應該將初始化方法命名為類似於-(id)initwith...這樣的格式 

1 +(id)bulletwithship:(ship *)ship 45

6 -(id)initwithship:(ship *)ship

15return

self;

16 }

mysql第六章 第六章 mysql日誌

第六章 mysql日誌 一 錯誤日誌 錯誤日誌的預設存放路徑是 mysql 存放資料的地方 hostname.err 1.修改錯誤日誌存放路徑 mysqld log error data mysql mysql.log 2.檢視配置命令 show variables like log error 3...

第六章 學習筆記

1.引數分為位置引數和關鍵字引數。def func positional para x,y,z passdef func keyword para kwd1 1,kwd2 4,kwd3 9 pass2.1 當有多個位置引數時,可以用乙個星號來收集引數,函式內使用這些位置引數時可以通過for 迴圈依次...

第六章學習記錄

教材學習內容總結 1 使用關鍵字inte ce來定義乙個介面,介面的定義分為介面宣告和介面體 inte ce printable 2 介面提中包含常量的宣告 沒有變數 和抽象方法 介面體只有抽象的方法,沒有普通的方法,而且介面體中所有的常量的訪問許可權一定都是public,而且是static常量,所...