J2ME手机游戏开发入门- - 本人的一点愚见,写出来和大家分享^^ J2ME手机游戏开发入门(1) 初次发文,文采又不好,但愿各位能看明白 .每个J2ME手机游戏(以下简称游戏),基本上都由一个继承了MIDlet抽象类的主类和至少一个Canvas的子类组成。 (1).MIDLet类一般做为游戏的启动类,他就像是一个往挂图板上挂画布的人,而Canvas就好比是一个画布,在MIDLet类中可以控制,挂图板上当前挂的是那个画布,也就相当于,当前手机的屏幕上显示的是哪个Canvas,显示画布一般都是在其Constructor或是startApp方法中调用如下方法实现: Display.getDisplay.setCurrent(Canvas类的一个实例); (2).在主类中必须重写的而且很重要几个函数,他们用来控制整个程序的流程,startApp(),pauseApp(),destroyApp()。他们的作用如下 1.startApp(),当你在手机上开始一个游戏的时候,这个方法会背调用,如果在游戏开始后需要执行什么动作,可有在此调用。 2.destroyApp()这个方法一般在你退出游戏的时候调用,一般在这其中会调用方法来释放游戏所占用的所有资源。 3.pauseApp()一般这个方法很少用到。 2.Canvas类是游戏中真正的主体,所有的游戏中的画面均是在Canvas上绘制产生的。 在Canvas类中,必须实现一个paint方法,这个方法用来在Canvas绘制画面。当要显示Canvas的时候,paint函数会自动运行一次,如果想强制调用paint函数的话,在Canvas中适当的地方调用repaint();方法来实现。 1.一个简单的例子,给那些刚接触J2ME游戏开发的朋友们 import javax.microedition.midlet.*;import javax.microedition.lcdui.*; public class MainMidlet extends MIDlet { public MainCanvas canvas = null; public MainMidlet() { canvas = new MainCanvas(); } public void startApp() { Display.getDisplay(this).setCurrent(canvas); } public void pauseApp(){ } public void destroyApp(boolean flag) { } class MainCanvas extends Canvas { private Image img = null; public MainCanvas(){ try { img = Image.createImage("/res/test.png"); }catch(Exception e){ } } public void paint(Graphics g){ g.setColor(255, 255, 255); g.fillRect(0, 0, getWidth(), getHeight()); g.drawImage(img, 50, 50, Graphics.TOP|Graphics.LEFT); }} }

评论