WEB开发网
开发学院手机开发Symbian 开发 Symbian C++ 游戏开发要领 阅读

Symbian C++ 游戏开发要领

 2010-02-26 15:56:00 来源:WEB开发网   
核心提示:OS提供了一个宏,如果在程序退出的时候没有释放掉分配的内存,Symbian C++ 游戏开发要领(2),那么这个宏会panic掉应用程序,在目标机器上,相似的,避免使用64位的整数,OS上的核心会保持跟踪每个线程的内存,并且在程序退出后可以重新释放它们
OS提供了一个宏,如果在程序退出的时候没有释放掉分配的内存,那么这个宏会panic掉应用程序。在目标机器上,OS上的核心会保持跟踪每个线程的内存,并且在程序退出后可以重新释放它们。这就保证了当一个应用程序退出后,所有的内存都会被释放掉。如果他们没有被正确的释放掉应有资源,那结果是一定数量的资源会被保存在系统中。

在Symbian OS中,每个线程都有它自己的内存堆栈,在线程已经运行时,这个堆栈大小是不可以被改变的。在S60中缺省的堆栈大小仅有8KB,所以在使用时要格外的小心。项目的栈大小可以通过在mmp文件中修改epocstacksize这个标记位设定。

这里要注意的是,在模拟器上运行时,是没有这个堆栈大小限制的,因为它是根据Windows来运行的,这就是程序每个步骤都应该在硬件(手机)上试试。大部分的堆栈溢出是由堆栈里使用大栈描述符所引起的,这种情况可以通过在堆上分配描述符来避免。注意递归的使用是很耗费内存的,如果递归程序是不可避免的,那我们每次传入的参数以及部分变量都应该最小化,以防止溢出。

为了减少编译后代码的大小,我们应该遵循如下的方针:)

1、除非必要,否则不要导出method

2、不要生成没有必要的虚函数(有附加的虚函数表,增加了体积)

3、不要过分的使用TRAP捕捉陷阱

4、避免复制代码

5、找到可以分解的函数

6、使用一般的控制和组件

对TRAP宏的使用要小心,并不是说避免过度使用他们是因为他们会增长代码大小。在Symbian os中由应用程序框架已经提供了不少的TRAP,我们没有必要在到处放置我们自己的TRAP了:)

在游戏中,因为会大量使用位图,所以对内存的消耗特别大,最有效的方法不是减少位图的使用,而是降低他们的颜色深度(colour depth),Symbian支持24位位图,一共可以处理16777216种颜色,但实际的色彩大小是根据硬件来说的,我们应该尽量以目标硬件所能支持的色彩量为限度,举例来说,一个sprite,使用8bit colour就应该能满足大部分sprite的需要了,而mask更应该只使用1bit的位图!

2.5 其他硬件限制

- 处理器的能力不是很强,图形处理器很少

- 算术处理器也少,最好不要用浮点运算,用整型代替。相似的,避免使用64位的整数。因为他们都要影响run-time的性能和内存消耗的开销

- 一些设备上只有有限的屏幕解析度,大小和色深

Tags:Symbian 游戏 开发

编辑录入:coldstar [复制链接] [打 印]
赞助商链接