海阳信息网
科技
当前位置:首页 > 科技

如何开发Smartphone游戏?(3)

发布时间:2019-09-13 19:57:03 编辑:笔名

所有数学运算使用汇编程序实现

如果你检查编译器输出的前面的乘法例子的代码,你会发现即使优化后的代码输出效率也不高:

stmdb sp!, {r11, lr} ;stmfd

mov r11, r0

mov r2, r1, asr #31

mov r3, r0, asr #31

mul r2, r11, r2

mul r11, r3, r1

add r3, r2, r11

umull r11, r2, r0, r1

mul r1, r0, r1

add r0, r3, r2

mov r3, r0, lsl #16

orr r0, r3, r1, lsr #16

ldmia sp!, {r11, pc} ;ldmfd

因为C和C++代码没有办法表达我们的代码的精确目标,编译器不得不将我们所写的语句翻译成静态的汇编代码。作为程序员,我们准确地知道想达到的目标和微处理器怎样最好地达到我们的目标,结果通常更紧凑:

smull r2, r3, r0, r1

mov r0, r3, lsl #16

orr r0, r0, r2, lsr #16

mov pc, lr

四个相乘用一个代替了,大量的寄存器间的移回和第四个可以删除,并且因为我们只使用了四个可变寄存器(r0-r3),不需要建立和恢复栈页面。

关闭硬件按钮声音

你也许注意到Smartphone的很多游戏有锯齿画面,但是一旦关闭硬件按钮点击声音,游戏就流畅多了。这是因为在按下按钮时,每秒钟设备冻结了的一小会儿作为系统播放按钮点击声音的时间。

幸运的是几乎用户界面的所有部分都可以使用XML配置。通过建立一个小的配置脚本,你可以告诉配置管理器改变为你想做到的。

使用DMProcessConfigXML()函数通过配置管理器发送上面的XML配置数据。

要记住在执行过程中可能会失去焦点--因此在放弃控制给另一个应用程序前一定要保存原始的配置信息。由于应用程序不处于活动状态时用户可能改变了设置,再次获得焦点时要读回设置。

结论

Smartphone是第一款有足够处理能力和图形能力的移动电话,它将我们希望的PC平台的游戏经验带到了移动世界。游戏在继续!

查看本文来源

宝宝不消化肚子疼怎么办
小儿发烧推拿
孩子反复发烧是什么原因
小便黄赤失禁是什么原因