"learn iPhone and iPad cocos2d Game Development" 学习(Tips 5)


tips 1:CCSpriteBatchNode的CCSprite节点都必须使用同一个图片文件,你可以把不同的图片放到同一个纹理贴图集中,然后利用CCSpriteBatchNode将所有图片渲染出来, 以提高渲染速度。当你需要显示两个或者更多个相同的CCSprite节点时,你可以使用CCSpriteBatchNode。组合在一起的CCSprite节点越多,使用 CCSpriteBatchNode得到的效果提升就越大。不过因为所有的CCSprite节点都添加到同一个 CCSpriteBatchNode中,所以所有CCSprite节点都会使用相同的z-order(深度)来渲染。你可以把CCSpriteBatchNode看成CCLayer,唯一的区别是:CCSpriteBatchNode 只接受使用同一张纹理贴图的CCSprite节点。


tips 2在默认的初始化方法-(Id)init中,不应该调用除了[super init]以外的方法。如果你必须在类的初始化方法中调用像[super initWith...]这样的方法,你应该将初始化方法命名为类似于-(id)initWith...


tips 31. 通过定义自己的方法来封装常用的代码。2. 使用Objective-C的类别(Category)给已存在的类添加额外的方法。 3. 定义资源文件(比如动画帧文件)时要使用命名规则。


tips 4注:如果你使用了512x512像素或者更大的纹理贴图集,你应该在游戏开始之前加载贴图。因为加载这么大的贴图是需要一些时间的(在最坏的情况下会导致游戏停滞好几秒钟)


tips 5cocos2d会自动生成所有图片的缓存,所以你需要一个方法来卸载不再需要的贴图内存。大多数情况下,你可以依赖cocos2d来帮你卸载: 

[[CCSpriteFrameCache sharedSpriteFrameCache] removeUnusedSpriteFrames];

 [[CCTextureCache sharedTextureCache] removeUnusedTextures];

很显然,在有不需要用到的贴图存在时,你才应该调用上述方法。

如果你想在加载新场景之前完全删除所有内存中的贴图,你应该使用以下方法:

[CCSpriteFrameCache purgeSharedSpriteFrameCache]; 

[CCTextureCache purgeSharedTextureCache];


tips 6你要小心那些从网上下载的精灵和音频包。有些地方下载的“免费”素材其实并不免费。除非你得到许可,才可以将它们用到你的游戏中去。因为很多下载的“免费”素材是不允许重新发布或者用于商业目的的,比如用于你在App Store发售的游戏中。

你可能感兴趣的:(cocos2d)