Symbian C++ 游戏开发要领
2010-02-26 15:56:00 来源:WEB开发网在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的性能和内存消耗的开销
- 一些设备上只有有限的屏幕解析度,大小和色深
- ››开发Android 日历教程
- ››开发学院总结 Win 8实用技巧大全
- ››开发学院原创教程:把win8的IE10放桌面上方法(非...
- ››开发者眼中的Windows Phone和Android
- ››Symbian S60 SocketConnection参数
- ››开发学院教你用SQL 语句最快速清空MySQL 数据表的...
- ››Symbian乏力:2010年诺基亚悲情大事记
- ››Symbian三大升级开启2011年新战略
- ››Symbian/Android/iOS/WM安装包对比
- ››Symbian一个活动对象的测试例子
- ››Symbian ListBox控件
- ››Symbian下自动切换SDK的批处理代码
更多精彩
赞助商链接