freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于java的手機游戲開發(fā)技術研究(編輯修改稿)

2025-01-06 23:26 本頁面
 

【文章內(nèi)容簡介】 iuder、 NetBeans、 JCreater??各個工具性能的使用方法都不一樣,這里我選擇的完全免費的開源工具 ,雖說是免費軟件,不過功能完全不次于像 JBliuder這樣的商業(yè)軟件。 一門好的程序開發(fā)語言需要有好的開發(fā)環(huán)境做基礎, J2ME也不例外,我就來總結(jié)一下如何利用 Eclipse搭建 J2ME的開發(fā)環(huán)境。 搭建一個最基本的開發(fā)環(huán)境需要下載以下工具: 1. JDK 2. WTK 3. EclipseMe 4. Eclipse 如有需要還可以下載 Eclipse多國語言包 (LanguagePack)。 工具介紹 WTK的全稱是 Sun J2ME Wireless Toolkit —— Sun的無線開發(fā)工具包。這一工具包的設計目的是為了幫助開發(fā)人員簡化 j2me的開發(fā)過程。使用其中的工具可以開發(fā)與 Java Technology for the Wireless Industry (JTWI, JSR 185)規(guī)范兼容的設備上運行的 j2me 應用程序。該工具箱包含了完整的生成工具、實用程序以及設備仿真器。到本文寫作時為止可以獲取有四個版本,分別是 ,, , , ,和 。每個版 本都包括英語,日語,簡體中文,繁體中文 4個語種包。 在安裝 WTK之前需要注意的是,由于安裝程序會自動尋找 JDK的路徑,所以一定要將 JDK正確安裝。 EclipseME是幫助開發(fā)者開發(fā) J2ME MIDlet的 Eclipse插件。 EclipseME提供了下列功能以幫助開發(fā)者輕松的創(chuàng)建 Midlets: 1. 無線工具包首選項 濰 坊 學 院 本 科 畢 業(yè) 設 計 10 2. 創(chuàng)建新的 J2ME Midlet套件專案 3. 創(chuàng)建新的 Midlet 4. Java應用描述文件編輯器 5. 對 class檔進行增量的 /自動的預檢驗 6. 支持從 Eclipse中啟動運行 J2ME仿真器 7. 打包以及部署(包括無線下載方式)測試,并可以使用 ProGuard對輸出包進行混淆 工具安裝方法 由于 JDK、 WTK、 Eclipse的安裝方法和普通軟件無差別,所以只介紹 EclipseMe的安裝方法和在 Eclipse環(huán)境下 WTK的配制。 首先進入 Eclipse接口并通過其幫助菜單下的軟件更新彈出的“查找并安裝” “新建已歸檔的站點”,然后選取下載的 EclipseMe文件的路徑,按照提示完成安裝。 安裝成功以后在 Eclipse接口點擊“ Windows”,打開“ Preferences”,如果出現(xiàn)了“ J2ME”項,表示安裝正確。如圖 濰 坊 學 院 本 科 畢 業(yè) 設 計 11 圖 EclipseME 安裝成功以后的“ Preferences” 接下來需要配制 WTK仿真器路徑。在“ Preferences”里,展開“ J2ME”分支,選擇“ Device Management”,再點擊“ Import”。如圖 濰 坊 學 院 本 科 畢 業(yè) 設 計 12 圖 配制 WKT 路徑 在“ Specify search directory:”文本框中輸入 WTK的安裝路徑(例如: D:\),點擊“ Refresh”。幾秒種過后“ Device”表格中將出現(xiàn) WTK自帶的幾款仿真器列表,表示 WTK配制正確,點擊“ Finish”結(jié)束配制。 至此一個最基本的 J2ME開發(fā)環(huán)境就配制完成了。 濰 坊 學 院 本 科 畢 業(yè) 設 計 13 4 游戲結(jié)構(gòu)分析 JAVA和 C++其中的一個的不同之處就是, C++雖然已經(jīng)采用了面向?qū)ο蟮睦碚?,但其中還是包含到有面向過程的理論在里邊, JAVA則是一門完全面象對象的程序語言,鼓勵廣大程序員將數(shù)據(jù)完整的封裝,通過 get和 set方法來訪問和改變類里的私有 數(shù)據(jù)。 這一點完全體現(xiàn)了面向?qū)ο笏枷肜锏臄?shù)據(jù)封裝這一特性,但是這種方式需要不斷的調(diào)用方法,勢必對性能造成一 定的損失 (關于手機游戲的優(yōu)化的其中一項就是減少方法的調(diào)用 )。因為每次調(diào)用方法都會消耗部分 CPU時間,所以如果是經(jīng)常被修改或訪問的數(shù)據(jù)我們需要將其訪問權(quán)限設置為 public,通過“對象 .數(shù)據(jù)”的方式訪問以節(jié)約 CPU時間。 初步構(gòu)思 根據(jù)面向?qū)ο蟮某绦蛟O計思想 (OOP),此程序 劃分了 6個類。 類的劃分 對象 (Object):思維、感受和 動作所作用的物件 或精神體玩家為一種對象。 玩家是一種物件;敵機是一種對象,不過這種物件有多中形態(tài); BOSS和地圖也是一種物件。 撇開 MIDlet和 Canvas類,其它由 自己創(chuàng)建的類有 4個, Map地圖類、 Plane敵機類、BOSS關底 BOSS類(繼承自 Plane)、 PlayerPlane玩家飛機類。 各個類之間的關系 KJAVA程序的入口都是 MIDlet類的 startApp()方法,所以在 MIDlet類中實例化 Canvas類。 由于 Plane敵機類和 BOSS類有許 多共同 點,所以 BOSS繼承自敵機類, PlayerPlane玩家飛機 類和 Map地圖類各自獨立,以上四個類都在 Canvas類中實例化,進行協(xié)調(diào)和控制。 游戲基本框架 1. Map地 圖 類: 地圖類是一個比較簡單的類,使用一張背景圖片循環(huán)滾動就完成了。所以最主要的濰 坊 學 院 本 科 畢 業(yè) 設 計 14 兩個方法就是 moveMap()和 drawMap(),另外為了切換關卡的時候換地圖還需要個更換地圖的方法 changeMap()。 public class Map{ public Map(int gate) { //根據(jù)關卡來構(gòu)建地圖 } public void drawMap(Graphics g) { //繪制地圖 } public void moveMap(){ //計算繪制地圖需要的數(shù)據(jù) } public void changeMap(int gate){ //根據(jù)關卡更換地圖 }} 2. Plane敵機類: 由于 Plane敵機類需要派生出 BOSS類,所以先要找出 BOSS和普通敵機之間的共同之處。 由于 BOSS和普通敵機有很多共同屬性例如:生命值、幀尺寸、碰撞范圍等,還有一個比較重要的共同方法,就是發(fā)射子彈。所以敵機類在計劃的時候需要考慮到子類屬性和代碼的復用性。 敵機子彈使用具有 static屬性的子彈數(shù)組來做,這表示所有實例化的敵機對象和BOSS對象都使用的一個子彈數(shù)組(子彈池)。 由于敵機發(fā)射子彈 的方式和 BOSS不一樣,默認發(fā)射子彈方法的訪問權(quán)限為 private子類無法訪問,所以重載了發(fā)射子彈方法供子類使用,訪問權(quán)限為 protected。 敵機將使用類似子彈的方法來實現(xiàn),實例化五個敵機對象作為一個對象池,每次需要刷新敵機的時候就遍歷對象池中是否有空閑對象。普通敵機有很多種類型,類型不同的敵機生命值和飛行方式都不同,所以使用一個初始化方法 initPlane(),根據(jù)隨機數(shù)來隨機生成敵機。敵機被擊爆或者飛出邊界時需要重新放回對象池,需要一個消失敵機的方法 dispearEnemy()。 主要機構(gòu)還是和地圖 類一樣,計算再繪制。需要計算敵機方法 pute()和計算子彈方法 putBullet(),然后繪制到屏幕 drawEnemy()和 drawBullet()。 public class Plane{ public Plane(){ //構(gòu)造 } public void drawEnemy(Graphics g){ //畫敵機 濰 坊 學 院 本 科 畢 業(yè) 設 計 15 } static void drawBullet(Graphics g){ //畫子彈 } public void dispearEnemy()( //消失敵機 } public static void putBullet(){ //計算子彈坐標 } private void shoot(int player_X, int player_Y){ //敵機發(fā)射子彈 } protected void shoot(int player_X, int player_Y, int gate){ //重載發(fā)射子彈方法 } public void pute(int type, int player_X, int player_Y){ //計算敵機的數(shù)據(jù) } public void initPlane(int type, int num){ //初始化敵機 } } 3. BOSS 類 : 繼承自 Plane 類,使用 Plane 類的子彈池和子彈方法,還使用 Plane 類的一些屬性。BOSS 還有一些特殊子彈,比如散彈和激光。繪制激光方法 Laser()和發(fā)射散彈方法shoot_Boss(),發(fā)射普通子彈的話直接調(diào)用父類的 shoot()方法。 BOSS 生命值較大,所以需要畫一個血條 bossLife() BOSS 人工智能,需要判斷 BOSS 的移動方向和什么時候發(fā)射什么樣式的子彈,bossAi()方法。 每一關都會初始化一個新的 BOSS 出來需要初始化方法 initBoss() 計算數(shù)據(jù)然后繪制, pute()和 drawBoss() 。 public class Boss extends Plane{ public Boss(){ //構(gòu)造 } private void bossLife(Graphics g) { //畫 BOSS 血條 } public void drawBoss(Graphics g, int gate) { //畫 BOSS } public void initBoss(int newGate) { //初始化 BOSS 濰 坊 學 院 本 科 畢 業(yè) 設 計 16 } private void Laser(Graphics g, boolean turn) { //繪制激光 } private void shoot_Boss(int playerX, int playerY){ //不同類型子彈射擊 } private void pute(){ //計算數(shù)據(jù) } public void bossAi(int playerX, int playerY){ //BOSS 人工智能 } } 4. PlayerPlane玩家飛機類: 此類實現(xiàn)了玩家對飛機的控制和飛機移動過程中的動畫??刂瓢ㄒ苿雍蜕鋼?,動畫包括飛機左翻滾和飛機右翻滾動畫。玩家飛機有自己的子彈池,通過射擊敵機和子彈出屏幕來回收發(fā)射的子彈。通過 addBullet()遍歷子彈池找到空閑子彈,將子彈添加到屏幕上去。 action()方法實現(xiàn)了對飛機的控制,調(diào)用 planeFram()方法實現(xiàn)游戲幀動畫的播放。puteBullet()計算每顆 子彈的當前數(shù)據(jù)。 根據(jù)上邊幾個方法計算出的 數(shù)據(jù) 在 Canvas里調(diào)用 drawPlane(),在 drawPlane()里調(diào)用drawBullet()繪制飛機和子彈。 關卡開始對玩家飛機進行初始化 init()。包括飛機的初識坐標、當前生命值、等級和屏幕上子彈的回收。 public class PlayerPlane { public PlayerPlane(){ //構(gòu)造 } public void action(boolean mode) { //飛機控制和動作 } public void drawPlane(Graphics g) { //畫飛機 } private void planeFram(){ //實現(xiàn)飛機幀動畫 } private void addBullet(){ //為子彈序列上添加子彈 } 濰 坊 學 院 本 科 畢 業(yè) 設 計 17 private void drawBullet(Graphics g) { //畫子彈 } public void init(int gate){ //初始化游戲 } private void puteBullet(){ //計算子彈 } } 5. Canvas類: Canvas類在整個游戲中十分重要,它不僅實現(xiàn)了整個游戲需要的線程,還需要對整個游戲進行協(xié)調(diào),在相應的時刻正確的調(diào)用其它類相應的方法,最后把圖片正確的化到屏幕上。 在這個游戲當中, Canvas類實現(xiàn)了現(xiàn)在大部分手機游戲的一種標準結(jié)構(gòu) —— 把一個游戲的所有方法封裝在一個循環(huán)體內(nèi),并由一個單線程進行控制。這樣做的好處是每一次通過循環(huán)體, repaint()方法被用來刷新屏幕。系統(tǒng)把按鍵事件傳送給 KeyPressed(),它能適當?shù)厮⑿掠螒驙顟B(tài)。 Canvas類實現(xiàn)游戲主要狀態(tài)的控制,例如游戲開始、暫停。在不 同的狀態(tài)繪制不同的
點擊復制文檔內(nèi)容
法律信息相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1