转载自:http://tank2308635.iteye.com/blog/1246491
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 3:1. 通过定义自己的方法来封装常用的代码。2. 使用Objective-C的类别(category)给已存在的类添加额外的方法。 3. 定义资源文件(比如动画帧文件)时要使用命名规则。
tips 4:注:如果你使用了512x512像素或者更大的纹理贴图集,你应该在游戏开始之前加载贴图。因为加载这么大的贴图是需要一些时间的(在最坏的情况下会导致游戏停滞好几秒钟)
tips 5:cocos2d会自动生成所有图片的缓存,所以你需要一个方法来卸载不再需要的贴图内存。大多数情况下,你可以依赖cocos2d来帮你卸载:
[[CCSpriteFrameCache sharedSpriteFrameCache] removeUnusedSpriteFrames];
[[CCTextureCache sharedTextureCache] removeUnusedTextures];
很显然,在有不需要用到的贴图存在时,你才应该调用上述方法。
如果你想在加载新场景之前完全删除所有内存中的贴图,你应该使用以下方法:
[CCSpriteFrameCache purgeSharedSpriteFrameCache];
[CCTextureCache purgeSharedTextureCache];
tips 6:你要小心那些从网上下载的精灵和音频包。有些地方下载的“免费”素材其实并不免费。除非你得到许可,才可以将它们用到你的游戏中去。因为很多下载的“免费”素材是不允许重新发布或者用于商业目的的,比如用于你在App Store发售的游戏中。
总结以上是内存溢出为你收集整理的"learn iPhone and iPad cocos2d Game Development" 学习(Tips 5)全部内容,希望文章能够帮你解决"learn iPhone and iPad cocos2d Game Development" 学习(Tips 5)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)