为什么要优化?
动作类游戏一个重要的特征就是将大量的运算花在屏幕显示上,而且刷新率(fps)必须保持在10以上。这类游戏还必须要有大量的动作来使得游戏具有更高的挑战性。这类游戏需要玩家有快速的反应与很好的手眼协调能力,所以这类游戏对键盘输入的反应也有极高的要求。为使得程序在高速运行时能对键盘做出及时的反应,图像能以高速的fps来运行,我们就必须优化我们的代码,以使得我们的程序能以最快的速度运行。 【相关文章:Java中static的作用】
游戏能够被划分为两种较广泛的类型:实时型与按键驱动型。按键驱动类型的游戏一般在屏幕上显示游戏目前所处的状态,并且等待玩家输入某些按键来驱动游戏继续运行。棋牌类游戏,大部分的解谜类游戏以及策略类与文字类游戏都属于这类游戏。而实时游戏,特别是动作游戏不会等待玩家的输入,他们一直运行直到游戏的结束。 【扩展阅读:了解JAVA classloader(1】
◆有限的输入能力 【扩展信息:新闻分析:Java缘何在GPL下开源?】
j2me是一个精简的java版本,适合只有有限容量的小型设备,例如手机与pda,j2me设备有:
◆屏幕尺寸很小 ◆受限的内存及堆大小 ◆很慢的cpu这些特点使得在j2me平台上编写快速的游戏并不是件易事。相对于电脑游戏来说,编写j2me平台上的游戏会对程序有更高的要求与更进一步的挑战。
何时不用优化?
如果你编写的游戏不时动作游戏,有可能不必去优化。假如玩家需要几秒钟甚至几分钟去思考他下一步怎样走,那他将不会注意到你的游戏的按键响应超过几百毫秒。不过一个例外是如果你的程序需要大量的运算去决定它下一步怎样走,例如棋类游戏需要在几百万种组合中去寻找。假如这样的话,你有可能想要优化你的代码以使得电脑仅需要几秒钟而不是几分钟去决定他下一步的动向。
即使你正在编写这类游戏,优化也是相当危险的。这些技术将伴随着高昂的代价,他将使你的代码不易读。这就需要开发者自己去平衡。增大了jar文件的大小来换取程序少量性能的提高是否是值得的。下面给出不要去优化的更多的理由。
◆优化将很容易引入bug
◆有些优化技术将使得移植变得困难 ◆有可能你付出了巨大的努力却收效甚微 ◆统一的优化一般比较困难我需要对最后一点做一些解释:由于优化的是一个不定的目标及平台,有些方法可能在java平台上运行快一点,而有些可能在j2me平台上运行快一点。由于执行环境存在着巨大的差异,你的代码可能在模拟器上跑得很快,但是在真机上却很慢。反之也有可能。你对一种机型的优化可能会造成在另一种平台上性能的下降。
但这些并不代表我们没有了希望。你可以通过两种方法来进行优化,高级优化与低级优化。... 下一页