程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> J2ME >> 使用J2ME技術開發RPG游戲之程序框架(1)

使用J2ME技術開發RPG游戲之程序框架(1)

編輯:J2ME

RPG(角色扮演游戲)是手機游戲中的一類主要類型,也是相對來說比較麻煩的一類游戲,下面通過一系列的文章來介紹如何使用J2ME技術來開發RPG游戲。

首先讓我們來看一下游戲的骨架——程序框架的實現。程序框架主要包含三個方面:繪制結構、事件處理結構以及線程結構。在整個框架中,采用當前游戲編程中的通用的狀態控制機制,為每個界面,如菜單、幫助、游戲對話、商店界面設置一個唯一的狀態值,使用該狀態值控制界面的繪制、事件的處理以及線程處理。

在程序的實現上為了通用,以MIDP1.0為基礎來進行制作,這個要比使用MIDP2.0的Game API實現起來要復雜一些。

在類結構的劃分上,為了節約減小jar文件大小,把這個程序代碼劃分為兩個類,一個MIDlet類,一個界面類,所有邏輯代碼以及線程實現均放置在界面類中。

下面是MIDlet類的代碼,主要實現顯示界面、處理手機來電、釋放資源以及退出功能,線程啟動放在界面類中實現。源代碼如下:

package myrpg;

import Javax.microedition.midlet.*;
import Javax.microedition.lcdui.*;

/**

* RPG結構的MIDlet類
* 包含如下功能:
* 1、顯示界面
* 2、手機來電處理
* 3、釋放資源
* 4、退出方法

*/

public class MyRPGMIDlet extends MIDlet {
/**MyRPGMIDlet對象,用於實現退出功能*/
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;
}
}

游戲邏輯和界面繪制以及控制都放在一個類MyRPGCanvas中,這樣實現沒有使用面向對象容易修改和擴展,但是通過結構化代碼,還是可以保證較高的可讀性以及維護性。在MyRPGCanvas中,通過狀態變量status控制界面的繪制以及線程邏輯,為了清晰,把每個處理邏輯都封裝成一個方法,如果方法比較復雜還可以繼續拆分為多個方法。

關於繪制部分,如果每個界面都具有一張不透明的背景圖片的話,可以省略清屏功能,這樣可以提高程序的執行效率。

關於線程部分主要實現了暫停控制,通過isPaused變量來控制邏輯是否執行,從而實現暫停功能,並實現精確的延時。

關於資源加載和銷毀,如果機器的內存不是很緊張的話,可以一次加載,如果內存比較緊張的話,需要編寫專門的代碼控制資源的加載和銷毀。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved