SpriteSheet(精靈表單)的作用

Spritesheet(精靈表單),可以把它看作是一張巨大的圖片,裏面放着許許多多的Sprite(圖片)。與spritesheet對應的,還有一個plist文件,這個文件指定了每個獨立的sprite在這張“大圖”裏面的位置和大小,當代碼需要使用這個sprite的時候,就可以很方面地使用plist文件中的這些信息來獲取sprite。

這種處理方式的主要目的在於提高處理效率?因爲cocos2d對它進行了優化!如果使用spritesheet來獲取sprite,那麼當場景中有許多sprite的時候,如果這些sprite存放在同一個spritesheet,那麼cocos2d就會僅使用一次OpenGL  ES調用來渲染這些sprite。但是,如果是單個的sprite的話,那麼就會有N次OpenGL  ES調用。
其代碼調用示例如下:
[[CCSpriteFrameCache sharedSpriteFrameCache]  addSpriteFramesWithFile:@"TestSprintSheet.plist"];
CCSpriteBatchNode  *spriteSheet = [CCSpriteBatchNode  batchNodeWithFile:@"TestSprintSheet.png"];
[self addChild:spriteSheet];

CCSpriteBatchNode類在舊版本中爲CCSpriteSheet
使用精靈表單和CCSpriteBatchNode需要注意如下兩點:
1 使用CCSpriteBatchNode時,所使用的貼圖必須是同一張圖片,也不能指定精靈的深度。所有的精靈都必須在同一渲染層。

2 項目中的圖片資源可能不侷限於一張貼圖上,所以可以把多張貼圖合併成一張大的貼圖(合併的工具很多,大家可以自己搜索)。所以利用合成後的大貼圖創建一個CCSpriteBatchNode。然後創建CCSprite的時候,設置每個貼圖的具體區域就可以了。

在子龍山人的博客http://www.cnblogs.com/andyque/archive/2011/04/11/2012770.html中對這精靈表單的使用方式有更詳細的說明。

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