游戏Loaading的设计 |
| 作者:gaogao 来源:j2medev 发布时间:2005-11-2 14:37:55 |
|
为什么很多游戏要加入Loading滚动条呢?加入Loading状态并不是为了使软件显得更专业美观,而是为了保证程序的运行内存不溢出。通常计算机/手机的存储系统分为:cup 的缓存,磁盘(或者手机中的存储用的的FLASH RAM或者其他类型的可以持久保存的存储系统),运行内存。我们知道通常NOKIA S40的heap size为200KB大小,而通常我们加入程序和3张128*128的图片之后内存就趋于崩溃了,再加入声音和地图,程序的运算内存就显得太不够了。一般来讲,很多游戏仅仅在运行的时候把所有的资源一次性读入heap memory这样,我们在模拟器看到程序运行的状况就非常接近崩溃的边缘,如果不小心加入了新的图片,可能就没有足够的运算内存了。
我们如何解决heap size不够的事情呢?手机是不能够改变其heap size的,我们只有想办法控制heap memory的使用。最直观的做法就是:存储内存与运算内存的优化使用,当运算内存需要资源时从存储内存中调用,需要新的资源时,就把不需要的释放掉。下面我就结合一段代码解释我们是如何制作Loading状态的。 众所周知,Java是内置多线程的,我们可以使用两个线程来解决loading的问题,一个读资源的线程,一个绘制资源的线程。程序代码: import javax.microedition.midlet.*; /** //程序状态 //程序状态控制器 //主线程 //内部类,新开读取资源的 线程 public Loading() { int counter = 100; Loading loading = null; public MainCanvas() { } int loadingCounter = 0; //绘制.. g.drawString("LOADING" + ">>>>>".substring(0, loadingCounter), loadingCounter = ++loadingCounter % 5; } public void run() { } public class Main public void startApp() { if (mc == null) { public void destroyApp(boolean bool) {} public void pauseApp() {} |
| [] [返回上一页] [打 印] |
|
文章评论 |
