`
tank2308635
  • 浏览: 188853 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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

阅读更多

tips 1:Xcode的Groups和Finder中的文件夹是两个不同的概念。多个Groups下的文件,在Finder里面还是在同一个文件夹里。 这就是为什么称它们为群组:你可以在Xcode里任意地安排文件,而不用理会这些文件到底是存放在硬盘的哪个位置。 


tips 2:iOS 加载应用程序的时候会使用“Default.png”,“Icon.png”则用作应用程序的图标。“fps_images.png”是cocos2d用来显示帧率的,即每秒显示的帧数:你不能删除或者修改此图片。


tips 3:起始程序main.m中创建了NSAutoreleasePool(自动释放池)来帮助你管理内存。说的简单一点就是通过使用autorelease(自动释放)信息,你不再需要担心忘记发送释放信息。Autorelease pool(自动释放池)可以确保内存中的自动释放对象最终会被释放。


tips 4:预编译前缀头文件的作用是给编译过程加速。你应该把不常变 化的框架(Frameworks)头文件添加到前缀头文件(prefix header)中。这样的话,在编译的时候,框架的代码会被预先编译,所有的类都将可以使用这些 头文件。cocos2d.h头文件可以被添加到前缀头文件中,因为它很少改变。

 

tips 5:每个iOS程序都有一个AppDelegate类用于实现UIApplicationDelegate协议。AppDelegate通过在某些时间点从iOS接收信息来跟踪程序的状态变化。例如,你可以用它确认是否有打进来的电话,或者可用的系统内存已经不够用。程序开始运行后收到的第一个信息是applicationDidFinishLaunching,在这个方法中,你可以放置启动代码,cocos2d就是在这里初始化的。AppDelegate 的 dealloc 方法只是简单的把内存清空,以加快关闭的速度。这也是为什么AppDelegate的dealloc方法中的任何代码都不会被运行。如果你确实需要在程序关闭之前在AppDelegate中运行代码,你可以在applicationWillTerminate方法中运行代码。如果你的目标iOS是4或者更高的版本,你应该使用applicationDidEnterBackgroun。


tips 6:iOS设备安装有128,256,或512MB的内存。但是,程序并不能使用所有这些内存。特别是那些只有128MB内存的设备,大概只有20-25MB的内存可以被使用。在临界值附 近,你的程序有可能开始接收到内存警告通知.但是如果 程序继续使用更多的内存,你可能收到第二级内存警告通知。这时候操作系统 其实是在告诉你:如果你再不释放一些内存的话,程序将被关闭。

cocos2d可以通过调用清除方法帮助你释放一些内存。通过在AppDelegate中的

 applicationDidReceiveMemoryWarning方法里添加purgeCachedData方法,你可 以让cocos2d帮着释放一些不再需要用到的内存:

- (void)applicationDidReceiveMemoryWarning:(UIApplication *)application { [[CCTextureCache sharedTextureCache] removeUnusedTextures]; [[CCDirector sharedDirector] purgeCachedData];
}
 
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics