the*_*tic 3 iphone objective-c sprite-sheet cocos2d-iphone ipad
我已经建立了一个小的ipad游戏,spritesheets和batchnodes到处都是.但是我不知道它们是如何工作的,何时添加精灵表,何时将sprite添加到spritebatchnode等.
这是我在初始屏幕(主菜单)中所做的:
CCSpriteBatchNode *spriteSheet = [CCSpriteBatchNode batchNodeWithFile:@"sprites.png"];
screenSize = [CCDirector sharedDirector].winSize;
[[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:@"sprites.plist"];
[self addChild:spriteSheet];
Run Code Online (Sandbox Code Playgroud)
在其他类 - 我总是需要使用相同的批处理节点 - >"sprites.png" - 我打电话
CCSprite *someSprite = [CCSprite spriteWithSpriteFrameName:someSpriteFrameName.png];
Run Code Online (Sandbox Code Playgroud)
并将其添加到self.
[self addChild:someSprite]; // I do not understand why I would add my sprite to the batch node instead of self
Run Code Online (Sandbox Code Playgroud)
所以情况如下:
我有一个名为"sprites.png"的文件,我所有的精灵都在这里.
我似乎并没有完全掌握这个概念.我知道为什么使用它.但是如果有人能够以外行的方式再次向我解释一切,我真的很感激,所以我对我所做的事情100%肯定.请尝试解释它是基本的.
小智 8
CCSpriteBatchNode是CCNode的后继者,因此您必须为每个场景创建单独的实例.如果您有多个纹理文件,则可以在场景中使用多个批处理节点.
CCSpriteFrameCache 是一个单身,所以它在应用程序生命周期中保持不变.
将两者都添加到CCSpriteFrameCache.CCSpriteFrameCachesingleton具有loadedFilenames_字段(实例NSMutableSet),用于缓存所有场景的所有精灵帧.
当您期望大量具有相似纹理的精灵时,您必须使用批处理节点.例如,您希望每2秒生成100个硬币.如果你使用平常CCNode并在其上创建精灵,你的应用程序将CCSprite每2秒分配这100个对象.CCSpriteBatchNode针对性能和更好的内存使用.它UITableView与可重复使用的细胞一样工作.
使用可重用单元格滚动表格视图时,它不会创建新单元格.当必须在屏幕表视图上呈现新单元格时,只需在屏幕外找到具有相同重用标识符的单元格,并用新内容替换它的内容.CCSpriteBatchNode以同样的方式工作.当您尝试向其添加新的精灵时,该节点会尝试在屏幕外找到未使用的精灵并替换它的内容.
请记住,您添加的精灵CCSpriteBatchNode必须使用纹理文件中的纹理来创建此批处理节点.
以下示例基于您的问题中的代码:
CCSpriteBatchNode *batchNode = [CCSpriteBatchNode batchNodeWithFile:@"sprites.png"];
screenSize = [CCDirector sharedDirector].winSize;
[[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:@"sprites.plist"];
[self addChild:batchNode];
CCSprite *someSprite = [CCSprite spriteWithSpriteFrameName:@"someSpriteFrom_sprites.png_.png];
[batchNode addChild:someSprite]; // add sprite to batch node to get all advantages of it
Run Code Online (Sandbox Code Playgroud)
这是一篇关于CCSpriteBatchNode性能的好文章:http://www.learn-cocos2d.com/2011/09/cocos2d-spritebatch-performance-test/
| 归档时间: |
|
| 查看次数: |
2321 次 |
| 最近记录: |