999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于J2ME的五子棋手機游戲開發

2009-04-29 00:00:00劉新娥
電腦知識與技術 2009年33期

摘要:手機游戲開發基于J2ME技術,以五子棋游戲為開發實例并加以實現;基于Java特性使該系統具有較高的可移植性,可在主流手機平臺中正常運行,減少移植成本。

關鍵詞:手機游戲;J2ME;MIDP

中圖分類號:TP311文獻標識碼:A文章編號:1009-3044(2009)33-9262-02

Development of GoBang Mobile Games System Based on J2ME

LIU Xin-e

(Nanjing College of Information Technology, Nanjing 210046, China)

Abstract: Development of mobile game system based on J2ME, and takes the chess game as the development example to implement; This system based on the Java characteristic is high portable,it can implement on the mainstream mobile platform,and reduce the cost of migration.

Key words: mobile games; java 2 Micro Edition(J2ME); mobile information device profile

1 概述

Sun認為,各種設備的功能相差很大,同時設備的硬件、軟件系統也千差萬別,對應各種不同的設備設計制造出一個單一的開發系統是一件不可能也沒有實際意義的事,一種Java平臺也不能適用于所有的設備。因此,在Java2平臺下,Sun針對消費類和嵌入式設備定義了Java2平臺小型版(J2ME)。J2ME作為Java的一個平臺,充分體現了Sun公司倡導的“一次編寫,處處運行”的理念。它以其不斷發展的技術優勢獲得了手機制造商越來越廣泛的支持。J2ME平臺被認為是當前移動開發領域中最杰出的手機程序開發平臺之一,它已被開發者、設備制造商、網絡通信公司和消費者廣泛接受[1]。

2 J2ME體系架構

2.1 J2ME體系架構概述

為了滿足各種各樣設備和目標市場的需要,J2ME架構定義了Configuration,Profile和可選包作為建立完整Java運行環境的元素。每種Configuration,Profile和可選包的組合都針對了一類設備,這樣就可以在內存、處理器能力,以及I/O能力方面對Java平臺的性能進行優化。不同的設備通過實現不同的Configuration,Profile,以及可選包組合來提供對Java的軟件支持。J2ME只是要求設備提供的最小功能,具體的設備提供商可以在J2ME之外提供其自定制的Java包,實現J2ME未定義的功能。J2ME通過引入Configuration和Profile的概念,為軟件開發者提供了一個通用的開發平臺,如圖1所示。其中Configuration主要定義了核心的Java語言的功能,而Profile則定義了在Java核心功能之上的功能擴展API包。

2.2 Configuration

Configuration通過定義類庫的最小集合和一個虛擬機指定了針對這些設備的J2ME平臺應具有的基本功能,即Configuration定義了Java編程語言的子集、Java虛擬機的功能特性、安全性、網絡特性以及核心平臺庫。目前J2ME規范只有兩種J2ME Configuration,即CLDC(Connected Limited Device Configuration,有限連接設備Configuration)和CDC(Connected Device Configuration,連接設備Configuration)。Configuration并不能單獨使用,必須與Profile組合使用。Configuration只是定義了設備必須具有的功能,并不是對所有的功能都要求實現。

2.3 Profile

Profile定義了應用的生命周期模型、用戶界面以及其他特性。Profile以Configuration為基礎,定義了附加的Java API庫和與特定市場相關的特性,是針對特定行業和設備而設計的。每個Configuration上都定義了一個或多個Profile,其中某些Profile需依賴其他Profile。定義在CLDC Configuration上的Profile目前只有MIDP(Mobile Information Device Profile,移動信息設備Profile)。在CDC上目前有FP(Foundation Profile,基礎Profile)、PP(Personal Profile,個人Profile)、PBP(Personal Basis Profile,個人基礎Profile)。由于Profile為設備定義了額外的功能,因此對設備硬件的要求通常會比Configuration的要求稍高。

3 基于J2ME的手機游戲開發

3.1 J2ME手機游戲概述

J2ME手機游戲通常由MIDlet類、用戶界面類和游戲對象類組成。其中,MIDlet是游戲的基本執行單元,負責游戲生命周期的控制,如游戲的活動、暫停、銷毀等;用戶界面類是游戲的線程類,它不斷的循環檢測收到的各種消息,計算游戲狀態,然后發出重繪事件要求屏幕重繪更新。游戲中所有可見的東西都是對象,它們是游戲中實際運動的實體。游戲對象類定義該類能夠執行的動作。當指定事件發生時,游戲會根據運行邏輯執行相應的動作。

3.2 基于J2ME手機游戲開發實例

本文開發了一個五子棋的游戲,有6個類組成,類的功能描述如下:

1) Class WzqMIDlet

WzqMIDlet類繼承自javax.microedition.midlet.MIDlet類,負責游戲生命周期管理和狀態轉換。MIDlet共有3中狀態:startApp()活動狀態、pauseApp()暫停狀態和destroyApp()銷毀狀態,WzqMIDlet狀態轉移圖如圖2所示。

運行一個程序的時候,虛擬機會調用該MIDlet的構造函數來生成MIDlet對象,然后被虛擬機置于暫停狀態。一旦虛擬機認為這個MIDlet對象可以執行時,就會調用startApp()方法,將此MIDlet置于活動狀態。

2) Class WzqChessBoard

WzqChessBoard類繼承自javax.microedition.lcdui.game.GameCanvas類,負責游戲的視圖,所有的游戲邏輯、用戶動作和圖像繪制都會在這里處理。下面列出此類當中幾個關鍵的成員函數。

繪制棋盤上的網格

protected void paintMap(Graphics g)

{函數實現代碼;}

在當前位置上繪制一個提示框

protected void paintSelectBox(Graphics g)

{函數實現代碼;}

繪制棋子

protected void paintChesses(Graphics g)

{函數實現代碼;}

繪制所有的屏幕內容

protected void paint(Graphics g)

{函數實現代碼;}

GameCanvas類提供了基本的游戲用戶接口。除了從Canvas類繼承下來的命令、輸入事件等特性以外,它還提供了專門針對游戲的功能。GameCanvas擁有雙緩沖機制,從而避免諸如屏幕閃爍、畫面撕裂和抖動等問題。

3) Class Splash

Splash類繼承自javax.microedition.lcdui.game.GameCanvas類,負責繪制背景、繪制圖片、繪制文字等信息。。

4) Class Chesses

自定義Chesses類負責存儲五子棋的數據信息,下面是其定義的成員變量。

public final static int NO_CHESS = 0; //定義常量NO_CHESS,表示當前位置沒有棋子

public final static int BLACK_CHESS = 1; //定義常量BLACK_CHESS,當前位置為黑子

public final static int WHITE_CHESS = -1; //定義常量WHITE_CHESS,當前位置為白子

public final static int BOARD_SIZE = 15; ////定義常量BOARD_SIZE,棋盤的大小

private short[][] chess; //棋子信息數組

private boolean bHumanPlayer; //當前是人還是機器在下棋

private boolean bHumanFirst; // 是人先手還是機器先手

private boolean bGameOver; //游戲是否結束

private short nChessType; // 當前的棋子的類型

private Vector messages = new Vector(); //消息隊列

5) Class AI

自定義Chesses類負責五子棋的人工智能部分,即找到最佳下棋點。基本思路是先計算每個點的權值,在權值最高的位置下棋。

6) Class Point

自定義Point類負責返回棋子的所在位置。

4 結束語

該文首先給出了J2ME的體系架構,對基于J2ME的手機游戲開發也進行了論述,最后給出了一個基于J2ME的手機游戲開發實例--五子棋游戲,其運行效果良好。

參考文獻:

[1] 唐自仰,劉瑾,張克君.基于J2ME/Servlet的手機聊天系統[J].計算機工程,2009,35(10):262-266.

[2] 朱全銀,章慧,孫文杰.基于J2ME技術的手機網絡游戲研究與開發[J].計算機工程與應用,2008,44(32):76-78.

[3] 朱全銀,章慧.基于J2ME和J2EE的移動網絡游戲系統[J].計算機工程,2008,34(16):135-137.

[4] 丁月華,劉佳,楊沛.J2ME手機游戲開發平臺的設計與實現[J].計算機工程,2007,33(5):261-263.

[5] Krikke J.Samurai Romanesque,J2ME and the Battle for Mobile Cyberspace [J].Computer Graphics and Applications,2003,23(1):16.

[6] 王森.Java手機/PDA程序設計入門[M].北京:電子工業出版社,2004.

[7] 孔明放.J2ME程序設計教程[M].北京:科學出版社,2005.

主站蜘蛛池模板: 亚洲综合婷婷激情| 美女一区二区在线观看| 丁香六月激情婷婷| 国产美女在线免费观看| 找国产毛片看| 中文字幕久久亚洲一区| 亚洲国产精品日韩专区AV| 国内精品九九久久久精品 | 在线看片免费人成视久网下载| 国产不卡国语在线| 91福利免费| 2021无码专区人妻系列日韩| 国产精品香蕉在线观看不卡| 茄子视频毛片免费观看| a级毛片在线免费| 人人妻人人澡人人爽欧美一区| 欧美视频在线播放观看免费福利资源| 亚洲日本在线免费观看| 久久香蕉国产线看观| 国产综合欧美| 女人毛片a级大学毛片免费| 在线观看免费黄色网址| 国产日本欧美亚洲精品视| 国产精品主播| 国产v精品成人免费视频71pao | 中文纯内无码H| 日韩av电影一区二区三区四区| 国产成人高清在线精品| 欧美黄色网站在线看| 国产日本欧美在线观看| 久久亚洲国产最新网站| 久青草网站| 1769国产精品免费视频| 久久一色本道亚洲| 久久久久人妻一区精品| 国产欧美精品一区二区| 国产欧美在线观看视频| 欧美性精品| 亚洲欧美成人| 国产凹凸一区在线观看视频| 青青青国产精品国产精品美女| 国产精品偷伦在线观看| 午夜激情婷婷| 青青草欧美| 日韩区欧美区| 国产第一页免费浮力影院| 久久久久久高潮白浆| 欧美亚洲日韩不卡在线在线观看| 在线色国产| 69国产精品视频免费| 日日噜噜夜夜狠狠视频| 国产在线观看第二页| 亚洲国产欧洲精品路线久久| 亚洲精品麻豆| 欧美日韩中文国产va另类| 亚洲精品无码专区在线观看| 国产白浆视频| 国产屁屁影院| 久久久久国产精品免费免费不卡| 亚洲精品成人片在线观看| 久操中文在线| 国产精品亚洲αv天堂无码| 在线国产毛片手机小视频| 欧美精品另类| 视频二区欧美| 亚洲欧美自拍一区| 成人国产精品2021| 九色综合视频网| 国产精品微拍| 在线亚洲天堂| 无码AV高清毛片中国一级毛片| 欧美国产日韩另类| 伊大人香蕉久久网欧美| 国产欧美日韩va另类在线播放| 欧美日韩高清| 国产精品永久免费嫩草研究院| 国产欧美日韩综合一区在线播放| 日韩在线播放中文字幕| 国产精品免费p区| www.亚洲国产| 亚洲毛片一级带毛片基地| 尤物亚洲最大AV无码网站|