摘要:該文以Java語(yǔ)言作為程序的開(kāi)發(fā)工具,從整體思路到部分功能的實(shí)現(xiàn)等介紹了七巧板游戲的設(shè)計(jì)。
關(guān)鍵詞:Java;手機(jī);游戲
中圖分類號(hào):TP393文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2009)36-10538-02
Java Language used to Design Mobile Game: Qiqiaoban
JIANG Yun-li
(Shanxi Vocational and Technical College of Biological Applications, Taiyuan 030031, China)
Abstract: In this paper, Java language as a program development tool introduced the Qiqiaoban game design from the overall idea to the realization of some functions.
Key words: Java; Mobile; Game
在信息高速發(fā)展的當(dāng)今社會(huì)中,手機(jī)及其他無(wú)線設(shè)備與人們的工作和生活聯(lián)系越來(lái)越緊密。隨著信息網(wǎng)絡(luò)化的不斷開(kāi)發(fā),尤其是3G業(yè)務(wù)的迅速發(fā)展,手機(jī)以及其他無(wú)線設(shè)備連接網(wǎng)絡(luò)逐漸會(huì)成為一種主流趨勢(shì)。由于J2ME的廣泛使用,手機(jī)Java的開(kāi)發(fā)已經(jīng)成為一個(gè)相當(dāng)大的市場(chǎng)。幾乎所有流行的Java開(kāi)發(fā)工具都已經(jīng)改造得適合于J2ME開(kāi)發(fā)者的需要。
1 語(yǔ)言介紹
Java語(yǔ)言是美國(guó)Sun Microsystem的James Gosling、Pratrick Naughton及Mike Sheridan等人于1991年精心設(shè)計(jì)出來(lái)的計(jì)算機(jī)編程語(yǔ)言,其構(gòu)想在于實(shí)現(xiàn)使用同一種編程語(yǔ)言所寫(xiě)出來(lái)的程序可以在不同的平臺(tái)上運(yùn)作。這種架構(gòu)對(duì)于消費(fèi)性電子產(chǎn)品而言是具有革命性的,因?yàn)樵谙M(fèi)性電子產(chǎn)品中的處理器及操作系統(tǒng)各不相同,要在這些平臺(tái)上開(kāi)發(fā)程序必須要了解各個(gè)平臺(tái)的特性,以及其提供的API使用方式,分別開(kāi)發(fā)不同的版本才能執(zhí)行,對(duì)程序的普及性影響很大。
2 開(kāi)發(fā)環(huán)境及功能描述
2.1 開(kāi)發(fā)環(huán)境
操作系統(tǒng):Microsoft Windows XP
程序語(yǔ)言:Java 2
開(kāi)發(fā)包:Java 2 Micro Edition、J2ME Wireless Tool Kit 2.1
2.2 功能描述
本文著眼于J2ME技術(shù)的應(yīng)用,通過(guò)比較傳統(tǒng)計(jì)算機(jī)平臺(tái)游戲和移動(dòng)平臺(tái)游戲的優(yōu)缺點(diǎn),開(kāi)發(fā)一款適合手機(jī)平臺(tái)的可商用的手機(jī)游戲程序——七巧板游戲。本程序的界面美觀,操作簡(jiǎn)單,將老少皆宜的經(jīng)典作品移植到手機(jī)上來(lái),為更流行的硬件平臺(tái)提供應(yīng)用軟件。
3 整體設(shè)計(jì)
3.1 技術(shù)問(wèn)題
1) 游戲的開(kāi)始和結(jié)束動(dòng)態(tài)信息畫(huà)面作為構(gòu)成一個(gè)完美程序都是必不可少的重要部分。良好的用戶界面更是吸引用戶的硬指標(biāo),相關(guān)的美術(shù)構(gòu)圖也需要有一定的考慮。
2) 用戶運(yùn)行游戲時(shí)需要有保存記錄的可能。圖形記錄的存儲(chǔ)方式也需要有較好的解決方案。手機(jī)中由于處理器和內(nèi)存空間、存儲(chǔ)空間都十分有限,其數(shù)據(jù)庫(kù)系統(tǒng)與普通PC大相徑庭。其數(shù)據(jù)庫(kù)結(jié)構(gòu)較為簡(jiǎn)單,被稱之為RMS系統(tǒng)。
3) Java是基于虛擬機(jī)的半解釋型編譯系統(tǒng),其執(zhí)行效率較C++等完全編譯后的程序會(huì)低很多,程序如果不進(jìn)行精簡(jiǎn)和優(yōu)化,將可能導(dǎo)致運(yùn)行的不流暢。
3.2 程序流程
MIDlet suite是MIDP應(yīng)用程序的最小單位,JAM負(fù)責(zé)將手機(jī)內(nèi)的MIDlet suite以圖形化的方式呈現(xiàn),讓用戶能夠選取欲執(zhí)行的MIDlet suite,一旦選取了某個(gè)MIDlet suite,操作系統(tǒng)就會(huì)激活KVM執(zhí)行里面的MIDlet。MIDlet及相關(guān)的支持類組成了MIDP應(yīng)用程序的實(shí)際內(nèi)容。
主程序流程如圖1所示。
4 部分功能代碼
4.1 游戲進(jìn)入界面的代碼
private Image getImage(String fileName)
{try
{return Image.createImage(\"/\" + fileName);}
catch(IOException e)
{return 1;}}
4.2 圖形選擇代碼
public Coordinate add(Coordinate coordinate)
{return new Coordinate(x + coordinate.x, y + coordinate.y);
//原點(diǎn)坐標(biāo)的x、y值加上新傳入coordinate的x、y值,再返回一個(gè)新點(diǎn)的x、y值}
public Coordinate subtract(Coordinate coordinate)
{return new Coordinate(x - coordinate.x, y - coordinate.y);
//原點(diǎn)坐標(biāo)的x、y值減去新傳入coordinate的x、y值,再返回一個(gè)新點(diǎn)的x、y值}
4.3旋轉(zhuǎn)功能代碼
public Coordinate[] shape(int i, int j)
{ switch(i)// 參數(shù)i 表示七塊圖形的編號(hào)
{ default:
break;
case 0: // '\\0' 這里表示它是第一塊圖形
switch(j) //參數(shù) j 表示 i 號(hào)圖形旋轉(zhuǎn)后的圖形數(shù)據(jù)編號(hào)
{ case 0: // '\\0'
return (new Coordinate[] {
new Coordinate(0, 0), new Coordinate(116, 0), new Coordinate(116, 116)});
case 1: // '\\001'
return (new Coordinate[] {
new Coordinate(0, 0), new Coordinate(82, 82), new Coordinate(0, 164)});
case 2: // '\\002'
return (new Coordinate[] {
new Coordinate(116, 0), new Coordinate(116, 116), new Coordinate(0, 116)});
case 3: // '\\003'
return (new Coordinate[] {
new Coordinate(0, 0), new Coordinate(164, 0), new Coordinate(82, 82)});
case 4: // '\\004'
return (new Coordinate[] {
new Coordinate(0, 0), new Coordinate(116, 116), new Coordinate(0, 116)});
case 5: // '\\005'
return (new Coordinate[] {
new Coordinate(82, 0), new Coordinate(82, 164), new Coordinate(0, 82)});
case 6: // '\\006'
return (new Coordinate[] {
new Coordinate(0, 0), new Coordinate(116, 0), new Coordinate(0, 116)});
case 7: // '\\007'
return (new Coordinate[] {
new Coordinate(82, 0), new Coordinate(164, 82), new Coordinate(0, 82)
}); }
break;
4.4 游戲界面顯示
游戲界面如圖2所示。
5 總結(jié)
隨著信息技術(shù)的高速發(fā)展,類似手機(jī)等信息化含量比較高的數(shù)碼產(chǎn)品會(huì)進(jìn)一步走入人們的生活,人們對(duì)其依賴性也會(huì)更高,對(duì)手機(jī)的軟件開(kāi)發(fā)能夠有效刺激客戶的購(gòu)買欲望。這款小游戲能夠在這方面有一定的作為,上述游戲的設(shè)置雖然能夠解決一定的控制功能,但是在實(shí)用時(shí)還需要進(jìn)一步的深化和完善。
參考文獻(xiàn):
[1] Mary Campione, Kathy Walrath, Alison Huml.Java 語(yǔ)言導(dǎo)學(xué)[M].馬朝暉,陳美紅,譯.北京:機(jī)械工業(yè)出版社,2004.
[2] 王森(臺(tái)灣).手機(jī)程序設(shè)計(jì)入門(mén)[M].北京:中國(guó)鐵道出版社,2003.
[3] http://forum.nokia.com.cn/sch/index.html.
[4] http://www.j2medev.com.