国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

J2ME游戲開發實例講解

2019-11-17 06:18:42
字體:
來源:轉載
供稿:網友

  一、序言

  昨天在網上閑逛,發現一篇講解用Delphi實現華容道游戲的文章,頗受啟發.于是,產生了將華容道游戲移植到手機中去的沖動.現在手機游戲琳瑯滿目,不一而足,華容道的實現版本也很多.正巧不久前筆者對J2ME下了一番功夫,正想借這個機會小試牛刀。選用J2ME的原因還有一個就是目前java開發大行其到,無線增殖業務迅猛發展,J2ME的應用日漸活躍起來,也希望我的這篇文章能夠為J2ME知識的普及和開發團隊的壯大推波助瀾。由于長期受ISO規范的影響,這次小試牛刀我也打算遵照軟件工程的要求,并采取瀑布式的開發模式來規劃項目,也希望借此機會向各位沒有機會參與正式項目開發的讀者介紹一下軟件開發的流程。

  這里我們先定義項目組的人員體制(其實只有我一個人):技術調研、需求分析、概要設計、具體設計、編碼、測試均有筆者一人擔任;美工這里我找了個捷徑,盜用網上現成的圖片,然后用ACDSee把它由BMP轉換成PNG格式(我出于講座的目的,未做商業應用,應該不算侵權吧);至于發布工作,由于缺少OTA服務器,此項工作不做(但是我會介紹這步如何做)。

  接下來,我們規劃一下項目實現的時間表,以我個人經驗,設想如下:技術調研用2天(這部分解決項目的可行性和重大技術問題,時間會長一些),需求分析用半天(究竟有現成的東東可以參照,只要理清思路就行了,況且還有很多以前用過的設計模式和寫好的代碼),概要設計再用半天(有了需求,概要只不夠是照方抓藥),具體設計要用2天(這一步要把所有的問題想清楚,還要盡可能的準確描述出來),編碼用2天(其實1天就夠了,技術已經不是問題,多計劃出一天來應付突發事件),測試用2天(測試應該至少占全部項目的四分之一,不過這個項目只是一個Demo,也太簡單了),發布也要用上半天(盡管我們不去實際發布它,但是還要花點時間搞清楚應該如何做),最后就是項目總結和開慶功會(時間待定)。

  二.利其器

  “公欲善其事,必先利其器”,做項目之前第一步是前期調研.我們要做的華容道這個東東隨處可見,我們要調研的是兩個方面:

  1、游戲的內容:游戲本身很簡單,就是有幾個格子,曹操占據其中一個較大的格子,然后被幾個格子包圍,這些格子外形不一定相同,但是擋住了曹操移動的方向.游戲者需要挪動這些格子最終把曹操移動到一個指定的位置才算是過關.更具體的分析我們放在后面需求分析和概要設計中討論。

  2、技術儲備:談到技術,這里簡單介紹一下J2ME.Java有三個版本,分別是J2ME(微型版).J2SE(標準版).J2EE(企業版).J2ME是一個標準,采用3層結構設計.最低層是配置層(Configuration)也就是設備層,其上是簡表層(PRofile),再上是應用層(application).MIDP就是移動信息設備簡表,目前主流手機支持MIDP1.0,最新的是MIDP2.0,它比前一個版本增加了對游戲的支持,在javax.microedition.lcdui.game包中提供了一些類來處理游戲中的技術,比如我們后面會用到的Sprite類,它是用來翻轉圖片的.權衡再三,筆者決定使用MIDP2.0來做開發.首先需要安裝一個J2ME的模擬器,我們就用Sun公司的WTK2.0,我覺得Sun的東西最權威.當然你也可以使用Nokia.Siemens或是Motolora等其他模擬器,但是他們的JDK不盡相同,寫出來的程序移植是比較麻煩的.Sun公司的WTK2.0可以到<A href="http://here/下">http://here/下</A>載,當然要想成功下載的前提是你要先注冊成為Sun的會員(其實這樣對你是有好處的).當下來之后就是按照提示一步一步的安裝.安裝好了之后,我們用一個"Hello World"程序開始你的J2ME之旅.我們啟動WTK2.0工具集中的KToolBar,然后點擊New Project按鈕,在彈出的輸入框中輸入Project Name為HelloWorld,MIDlet Class Name為Hello,然后點擊Create Project,開始生成項目,工具會彈出MIDP配置簡表,這里接受生成的默認值(以后還可以修改)點擊OK,工具提示我們把寫好的Java源程序放到[WTK_HOME]/apps/HelloWorld/src目錄之下.我們編輯如下代碼,并保存在上述目錄之下,文件名為Hello.java。

import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class Hello extends MIDlet
{
private Display display;
public Hello(){
display =Display.getDisplay(this);
}
public void startApp(){
TextBox t = new TextBox("Hello","Hello",256,0);
display.setCurrent(t);
}
public void pauseApp(){
}
public void destroyApp(boolean unconditional){
}
}
  保存好了之后,點擊Build按鈕,工具會為你編譯程序,如無意外再點擊Run按鈕,會彈出一個手機界面,剩下的就不用我教了吧(用鼠標對手機按鍵一頓狂點)。呵呵,你的第一個J2ME程序已經OK了.什么?你還一點都沒懂呢(真是厲害,不懂都能寫出J2ME程序來,果然是高手).我這里主要是介紹WTK2.0工具的使用,程序并不是目的,不懂的話后面還會有具體的解說,這里只是帶你上路.什么?你不懂Java!那也沒有關系,后面我再講得細一點。
  跳過J2ME,我們先來講點游戲的理論.具體到華容道這個游戲,主要有三個方面,貼圖.游戲操作.邏輯判定.這里講講貼圖,其他兩方面放在概要設計和具體設計里講.所謂的貼圖,其實就是畫圖,就是在要顯示圖形的位置上輸出一副圖片,(要是牽扯到動畫就要麻煩一些,可以使用TimerTask.Thread或Rannable之類的技術),這副圖片可以是事先預備好的也可以是臨時處理的.在J2ME中有一個Image類,專門用于治理圖片,它有createImage()方法,可以直接讀取圖片文件(J2ME只支持PNG格式的圖片),也可以截取已有的圖片的一部分(這樣我們可以把很多圖片放在一起,然后一張一張的截下來,好處是節省存儲空間和文件讀取時間,對于手機這兩者都是性能的瓶頸).J2ME還有一個Graphics類,專門用于繪圖,它有drawImage()方法,可以把一副圖片在指定的位置上顯示出來,它還有drawRect()方法和setColor()方法,這兩個方法在后面我們進行游戲操作時就會用到,這里先交代一下.有了圖片和繪圖的方法,還需要知道把圖畫到誰身上,J2ME提供了一個Canvas類,字面意思就是畫布,它有一個paint()方法用于刷新頁面,還有一個repaint()方法用于調用paint()方法.聽著有些糊涂是吧,不要緊,我來結合具體程序講解一下.為了今后編程的方便,我們創建兩個類Images和Draw,Images用于保存一些常量值和圖片,Draw主要是用于畫圖,這兩個類的源代碼如下。

  Images類的源代碼如下:

package huarongroad;



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 崇阳县| 措美县| 侯马市| 潞城市| 揭东县| 镇雄县| 新密市| 临海市| 通海县| 吉安县| 红桥区| 平顶山市| 恩施市| 策勒县| 林甸县| 甘南县| 平原县| 大宁县| 蓝田县| 桂平市| 黄大仙区| 阳江市| 文成县| 陇西县| 乳源| 兰坪| 报价| 东乌珠穆沁旗| 察哈| 锡林郭勒盟| 库伦旗| 聊城市| 富源县| 甘谷县| 修文县| 松滋市| 赤壁市| 永寿县| 达尔| 福泉市| 宝坻区|