摘要:J2ME作為Java技術專為消費嵌入式系統定制的版本,其穩定性、跨平臺性、安全性、擴展性使得成為移動通訊設備上主流開發平臺,基于J2ME的應用開發成為熱點。該文介紹了筆者參與開發的一個基于J2ME的手機智力游戲的設計與開發。是對手機上基于J2ME的開發的一次有效探索。經過試驗證明,程序在大多數手機上運行良好。
關鍵詞:J2ME;手機智力游戲;嵌入式;游戲框架
中圖分類號:TP311文獻標識碼:A文章編號:1009-3044(2008)27-2060-02
Study and Development of the Mobile Phone Intelligence Game Based on J2ME
LI Min1,LIU Hong-ying2
(1.Shandong College of Electronic Technology,Jinan 250014,China;2.Institute of Network Security Shandong University,Jinan 250100,China)
Abstract:As the version that customize for built-in system of Java,J2ME is prepackaged as a robust,secure,system-independent,and scalable platform.J2ME becomes the popular platform of mobile communication devices.And the application development based on J2ME turn to be a hotspot.This article is an introduction to the design and development of the mobile phone intelligence game based on J2ME that author take part in.It is a good example of component-based development in J2ME environment.The program has been proved to run well on most mobile phone by experiments.
Key words:J2ME;mobile phone intelligence game;built-in;game architecture
1 引言
從20世紀 80 年代移動電話進入中國至今,中國的手機產業己經發生了翻天覆地的變化。無線通信己經成為發展最快、最前沿的通信領域之一。隨著手機的普及,可編程手機的應用越來越廣泛,基于Java的手機最為通行,Java基本上讓所有的手機制造商所接受,成為手機應用與服務的標準。主要的生產商有諾基亞、愛立信、西門子、Motorola、三星等,它們都相繼推出了具有Java功能的手機。
在諸多手機應用中,用手機玩游戲已經成為流行的一種消遣方式,全球手機游戲市場已經成為超過無線音樂和娛樂內容服務的最大應用。據IGDA2005年發布的手機游戲統計報告分析,手機游戲已成為游戲產業中增長最快的部分之一。2003年,全球手機游戲總收入達到 11億美元,而日、韓的手機游戲收入占到全球收入的78%,在2008年預計全球收入將超過42億美元[1]。
2 J2ME體系架構
隨著可編程手機的不斷普及,手機游戲也進入了高速發展期。In-Fusio ExEn、J2ME、Synergenix Mophun、BREW、OpenGL ES、Direct3Dm等多種手機游戲平臺不斷涌現,使得無線下載游戲和手機網絡游戲受到越來越多人的青睞。在可編程手機中,基于J2ME的手機是最為通行的,J2ME基本使所有的手機制造商所接受,成為手機應用與服務的標準,逐漸成為當今的主流移動游戲平臺[2]。

J2ME(Java 2 Micro Edition)是SUN公司針對嵌入式、消費類電子產品推出的開發平臺,是Java2技術架構的組成部分,它與標準版J2SE(Java 2 Standard Edition,面向桌面開發和低端設備應用)和企業版J2EE(Java 2 Enterprise Edition,擴展了J2SE開發包,目的在于服務器端開發。在數據庫訪問、消息管理、進程間通信和事務處理等方面增加了新的特性)共同組成Java2技術的三個重要的分支[3],如圖1所示。從 J2SE向外看,J2EE版本包含所有標準類庫,還在J2SE的基礎上擴展了支持企業應用的類庫;從J2SE向內看,J2ME基本上是J2SE的一個子集,但同時做了些專門針對嵌入式應用的擴展類[4]。J2ME作為Java技術專為消費嵌入式系統定制的版本,具有穩定性、跨平臺性、安全性、擴展性等特點,得到開發者、設備制作商、網絡通信公司廣泛接受。
J2ME技術核心由一個 Java虛擬機及一套適合運行在小型設備、獨立設備、互聯移動設備和嵌入式設備上的API接口構成,J2ME平臺是本著配置(Configuration)和簡表(Profile)結合來設計的,J2ME平臺體系結構如圖2所示。
J2ME所面對的是大量不同的設備,它們在外觀和功能上各不相同。J2ME在對這些設備進行分類時,將一些共性提取出來,形成適合于某個范疇中設備可用的規范稱為配置。配置是整個平臺的核心,定義了Java虛擬機功能和特定類別設備上可用的Java類庫的最小集,從某種程度上說,一個配置定義了Java平臺功能部件和庫的共同性,開發者可以假設這些功能部件和庫在屬于某一特定類別的所有設備上都是可用的。在配置中包含Java虛擬機,是為之下的操作系統所定制的,平臺上的應用都是通過虛擬機與底層的主機操作系統進行通訊[5]。J2ME中配置可以分為兩類:一是Connected Device Configuration(連接設備配置,簡稱CDC),運行在這一配置上的程序稱為J2ME Application,在CVM上進行解釋。二是Connected Limited Device Configuration (連接限制設備配置,簡稱 CLDC),運行在這一配置上的程序稱為MIDlet,在KVM上進行解釋。從設備的用途和功能的角度來看,CDC針對的設備主要是數字電視、網絡電話、機頂盒、車載計算設備等。這些設備的特點是有網絡或其他線路連接、設備的供電電源穩定、設備的外設資源比較受限或很少。而CLDC針對的設備主要是移動手持設備,例如PDA、POS機和智能手機。這些設備的特點是通過無線連接、沒有穩定的電源供應(通常使用電池)、設備的外設資源極少或不具有外設。對于CLDC的要求,規范里所定義的類庫除了Java標準核心類庫的子集合之外,也加入了與該類型設備特性相符的擴充類庫[6]。
J2ME將某一個行業或領域內設備的特性提取出來形成簡表。簡表位于配置之上,是針對一系列設備提供的開發包集合。提供對I/O的訪問及用戶圖像界面的支持,與配置一起構架起J2ME平臺的運行環境。例如,通常的手機應用程序的基礎開發環境是CLCD+MIDP。
在J2ME平臺體系結構中,位于簡表之上的可選包(Optional Packages)是廠商根據自己的需求對某些開發包規范的實現。針對特定設備提供了類庫,比如,某些設備是支持藍牙的,針對此功能J2ME中制作了JSR82(Bluetooth API)提供了對藍牙的支持[7]。
3 手機智力游戲的開發
3.1 游戲架構
架構分析可分為游戲主模塊、游戲狀態機管理模塊、世界管理模塊和資源管理模塊。整個游戲的框架分為3種狀態:等待狀態、運行狀態(運行狀態又分為多個子狀態)、結束狀態,它們運行在整個游戲世界中。整個游戲架構是基于狀態機運行的,游戲運行時的各種不同形式被劃分為一個個的狀態,任何時候都會有一個狀態被執行。考慮到狀態嵌套的問題,所有的狀態各自區分開來,在游戲的主線程中不斷的判斷,從而實現了狀態之間的轉換。游戲架構如圖3所示。圖3中讀取游戲主模塊是程序啟動時自動調用的,然后游戲進入狀態機管理模塊,游戲的每一個過程都有相應的狀態機管理,圖3中的“選項”從屬于游戲的資源模塊,游戲的狀態機管理模塊會不斷地從資源模塊中調用資源在世界管理模塊中進行渲染[8]。

3.2 游戲狀態轉化
在游戲中使用狀態機,所謂狀態機是由對象的各個狀態和連接這些狀態的轉換組成。每個狀態對應一個對象在其生命期中滿足某種條件的一個時間段建模。當一個事件發生時,它會觸發狀態間的轉換,導致對象從一種狀態轉化到另一新的狀態[9]。與轉換相關的活動執行時,轉換也同時發生。使用狀態機的優點:1)使用狀態機可以精確的描述行為;2)便于對游戲進行處理及擴展;3)方便新狀態的加入;4)方便狀態之間的轉換。狀態轉化圖如圖4所示。
4 結束語
隨著科技的發展,手機的日益普及,健康、有趣、功能強大且益于大腦開發的智力游戲將會越來受到大眾的歡迎。J2ME作為應用于嵌入式系統的Java平臺,在手機游戲開發中具有很大優勢。本文介紹了J2ME體系架構和J2ME的平臺無關性,結合作者已有的實際游戲開發課題,運用J2ME平臺提出了合理的手機智力游戲架構設計,試驗證明,該架構支持藍牙技術,并具有一定的通用性和可擴展性。
參考文獻:
[1] Anonymous.2005 Mobile Games White Paper[M].IGDA0nline Games SIG,2005.
[2] 吳曉明.基于J2ME技術的手機網絡游戲架構設計[D].碩士學位論文,中山大學,2006.
[3] 莊毅,黎浩宏.基于JZME架構的無線應用開發[J].計算機與現代化,2003,11:53-55.
[4] 程小梅.基于J2ME的手機益智游戲的設計與開發[D].碩士學位論文,華北電力大學,2007.
[5] 焦亮,基于J2ME的智能手機應用的設計與實現[D].碩士學位論文,2006.
[6] J2ME的體系結構[DB/OL].http://www.knowsky.com/365979.html.
[7] J2ME-豐富多彩的領域中生機勃勃的技術[DB/OL].http://www-128.ibm.com/developerworks/cn/java/1-j2metec/.
[8] (美)威爾斯(Wells,M.J).J2ME游戲編程[M].李鵬,陳煒,任俊偉譯.北京:清華大學出版社,2005.
[9] 米川英樹.J2ME MIDP手機游戲程序設計(游戲編程大師系列)[M].博碩文化,譯.北京:中國鐵道出版社,2005.