繪製結構、事件處理結構、執行緒結構。採狀態機機制:每個介面(選單、說明、對話、商店)分配唯一狀態值,統一控制繪製、事件、邏輯分發。
基於 MIDP 1.0 實現(不依賴 Game API),為縮減 JAR 體積,僅拆分兩類:
public class MyRPGMIDlet extends MIDlet {
static MyRPGMIDlet instance;
MyRPGCanvas mainScreen = new MyRPGCanvas();
public MyRPGMIDlet() {
instance = this;
Display.getDisplay(this).setCurrent(mainScreen);
}
public void startApp() { if (mainScreen!=null) mainScreen.startGame(); }
public void pauseApp() { if (mainScreen!=null) mainScreen.pauseGame(); }
public void destroyApp(boolean unconditional) {
if (mainScreen!=null) { mainScreen.destroyGame(); mainScreen=null; }
}
public static void quitApp() { instance.destroyApp(true); instance.notifyDestroyed(); instance=null; }
}
status 控制介面繪製與邏輯分發,每個處理邏輯封裝為獨立方法,複雜者再拆分。isPaused 旗標控制邏輯執行,實現精確延遲與暫停功能。雖非純粹 OO 設計,但結構化代碼保證可讀性與可維護性。