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);
}
}
}
评论