第二課•認識 MIDlet

 

MIDlet 中三個重要方法

要用到以上三個方法,就要在程式一開始時匯入 javax.microedition.midlet 套件,此套件內含重要的 MIDlet API。

 

MIDlet 的命令

在 javax.microedition.lcdui.commandListener 介面中定義了 commandAction( ) 這個方法,使用者會按一些手機 buttons 去執行命令,這些命令是由 commandAction( ) 去處理的。

 

MIDlet 的畫面顯示

在 javax.microedition.lcdui 套件中定義了 Display﹝顯示畫面﹞這個物件,通常從 MIDlet 的 startApp( ) 取得一個指向 Display 的參考,就可以用來建立遊戲螢幕和使用者介面,每個流動裝置通常只有一個 Display。

當要描繪圖形或顯示影像圖片時,會在 Display 以上用到 Canvas﹝畫布﹞來處理,Canvas 是在 javax.microedition.lcdui.Canvas 介面中定義的。

如果要有效率地描繪遊戲中的動態圖形,就要用 GameCanvas,它是在 javax.microedition.lcdui.GameCanvas 介面中定義的。

 

編寫 "Skeleton MIDlet" 範例程式重點

首先要匯入以下兩個主要套件:

import javax.microedition.midlet.*;

import javax.microedition.lcdui.*;

讓 SkeletonMIDlet ﹝你自製的 MIDlet﹞繼承 MIDlet 的所有方法和特性,用 CommandListener 作介面是要讓 MIDlet 能夠處理使用者的命令事件。

public class SkeletonMIDlet extends MIDlet implements CommandListener {

SCanvas 是一個使用者自訂的類型,存於另一檔案中,其中包含設定畫面背景顏色及在畫布上列印出手機的一些內部資料。

private SCanvas canvas;

MIDlet 啟動時要建立 canvas,Exit 命令會被產生並加入到 canvas 當中,canvas就可以利用 CommandListerner 接收及回應這個命令,之後,要啟動 canvas。

public void startApp( ) {

if (canvas == null) {

canvas = new SCanvas(Display.getDisplay(this));

Command exitCommand = new Command("Exit", Command.EXIT, 0);

canvas.addCommand(exitCommand);

canvas.setCommandListener(this);

}

canvas.start( );

}

Exit 命令由 commandAction( ) 來處理的,如果 Exit 命令真的發出,destroyApp( ) 方法就會摧毀目前的 MIDlet,接下來要用 notifyDestroyed( ) 方法來通知應用程式管理員目前的 MIDlet 已被摧毀。

public void commandAction(Command c, Displayable s) {

if (c.getCommandType( ) == Command.EXIT) {

destroyApp(true);

notifyDestroy( );

}

}

下載範例程式檔

 

MIDlet 專案的資料夾結構

 

建置與測試

把 Skeleton.zip 解壓到 J2ME Wireless Toolkit 的 apps 資料夾底下,再用 KToolbar 來開啟 Skeleton。只要按工具列上的「Build」,如能成功建置,再按工具列上的「Run」,就可以透過 J2ME 手機模擬器來執行它,結果如下圖:


<<返回主頁

若想增加其他遊戲程式設計相關內容,可電郵至網主提出