标签:搬家 cti timer and play cbe fps lin sub
原文发布时间为:2008-07-31 —— 来源于本人的百度文章 [由搬家工具导入]
J2ME开发入门我觉得,J2ME实际上是一个很标准的顺序流程语言,J2ME中没有真正的多线程,很多情况下,一个J2ME程序的运行,我们都可以对他的流程进行完全的跟踪。这在调试方面是非常方便的。
在这里还要解释一点,J2ME程序中,屏幕对象是一个比较重要的对象,你的所有操作,你所要表达的意思,都需要在屏幕上描绘出来,因此,对屏幕的操作也是最基本和最重要的一个操作,因此,J2ME程序的操作其实就是对Display和Display上的Displayable(包括Form,TextBox,List,Canvas等等)对象进行控制。也就是说,让程序在合适的时候,把需要的Displayable显示在屏幕上。使用的方法,即是Display.setCurrent()方法。
在屏幕对象的操作上,我要解释一下,J2ME默认的屏幕只有一个,即是当前屏幕,所有操作都是对当前屏幕进行操作,因此,当你在主类中将一个Canvas对象设置为当前屏幕后,则主类已经处于脱屏状态,脱屏状态下的对象无法进行直接操作。这一点需要注意。所有外界的操作均只能作用于当前屏幕上显示的Displayable对象,无论是Form,List,或者是Canvas。此时对脱屏类的操作只能通过静态方法或者是该类的一个实例来进行。
J2ME的游戏中最简单的一种游戏流程是这样,即一个主类和一个Canvas类,主类入口处定义一个Canvas对象,并且此Canvas对象继承一个Runnable接口,再定义一个基于此对象的线程,然后将此Canvas对象设为当前屏幕对象,并启动线程,即用线程的start()方法,启动线程后,Canvas里的run方法便开始运行,而run方法通常要用repaint()方法来刷屏,因此流程就是按paint()->run->paint().....这样的过程往复,其中如果还有键盘输入,则keyPressed()等方法就穿插在中间。基本上J2ME的程序就是按这样的流程来走,因此在开发和调试中只要对这个流程进行必要的跟踪就可以了。
除此之外,还有几个重要方法
线程在J2ME里非常重要,一切动态效果(当然这是游戏的前提)都是通过线程来操作,因此,对线程的控制是值得研究的一个问题。如何优化代码,使线程能够在足够短的间隔时间内正常刷新,换言之,这就是大家讨论的FPS问题。程序优化做得好,则线程间隔时间可以足够短,使得FPS可以足够高,游戏的流畅度当然就越高。
标签:搬家 cti timer and play cbe fps lin sub
原文地址:http://www.cnblogs.com/handboy/p/7143815.html