版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、*GameMID/* author wizardyx */import javax.microedition.lcdui.Display;import javax.microedition.midlet.*;/* 游戲MIDlet */public class GameMID extends MIDlet private Display display; /聲明Display private StartScreen startscreen; /聲明啟動畫面對象 private FlashScreen flashscreen; /聲明閃屏畫面對象 private GameMenu gmenu;
2、/聲明菜單畫面對象 private GameWorld gw; /聲明游戲引擎框架 private GameMusic gm; /聲明音效對象 public GameMID() display = Display.getDisplay(this); /獲取Display gm=new GameMusic(); loadFlashScreen(); /加載閃屏畫面 public void startApp() public void pauseApp() public void destroyApp(boolean unconditional) gmenu=null; flashscreen=n
3、ull; startscreen=null; gm=null; GameMusic.releases(); System.gc(); /釋放資源 /* 退出程序 */ public void exit() try destroyApp(false); catch(Exception e) notifyDestroyed(); /* 加載游戲啟動畫面 */ public void loadStartScreen() flashscreen=null; startscreen=null; startscreen=new StartScreen(this); /創(chuàng)建啟動畫面 display.setC
4、urrent(startscreen); /設置啟動畫面為當前顯示畫面 /* 加載閃屏畫面 */ public void loadFlashScreen() flashscreen=new FlashScreen(this); /創(chuàng)建閃屏 display.setCurrent(flashscreen); /設置閃屏畫面為當前顯示畫面 /* 加載游戲菜單*/ public void loadGameMenu(int menuIndex) flashscreen=null; startscreen=null; if(gmenu=null) gmenu = new GameMenu(this); /
5、創(chuàng)建菜單 gmenu.setMenuIndex(menuIndex); /設置當前菜單項 display.setCurrent(gmenu); /設置菜單畫面為當前顯示畫面 /* 加載游戲主界面 */ public void loadGameWorld() gmenu=null; if(gw=null) gw = new GameWorld(this); /創(chuàng)建游戲引擎畫布 display.setCurrent(gw); /設置游戲引擎畫布為當前顯示畫面 gw.start(); *Bullet/* author wizardyx */import java.io.IOException;imp
6、ort java.util.Vector;import javax.microedition.lcdui.Graphics;import javax.microedition.lcdui.Image;import javax.microedition.lcdui.game.Sprite;/* * To change this template, choose Tools | Templates * and open the template in the editor. */* 玩家子彈類 */public class Bullet Plane plane; /玩家飛機 Sprite sprb
7、ullet; /子彈精靈 Image imgbullet; /子彈圖像 private int bulletPower; private int bulletSpeed =4; /子彈速度 private int shootTimes; /子彈發(fā)射計時 private int bulletStay=15; /子彈發(fā)射間隔時間 public Vector v; /子彈向量 public Bullet(Plane plane) try imgbullet = Image.createImage(/mybullet.png); /子彈圖像 catch (IOException ex) ex.prin
8、tStackTrace(); sprbullet=new Sprite(imgbullet,imgbullet.getWidth(),imgbullet.getHeight(); /創(chuàng)建子彈精靈 sprbullet.defineReferencePixel(imgbullet.getWidth()/2, imgbullet.getHeight()/2);/設置參考點 this.plane=plane; /引用玩家飛機 v = new Vector(); /創(chuàng)建存儲子彈數據的Vector shootTimes=0; /初始化子彈發(fā)射間隔時間 /* 增加新子彈 */ public void add
9、New() /初始化子彈坐標為飛機坐標 int p_x=plane.getX()+plane.getWidth()/2; int p_y=plane.getY(); /根據子彈威力級別,添加不同的子彈 switch(bulletPower) case 1: /前兩個參數是子彈的當前坐標,第3個參數是子彈在水平方向上的速度 int a = p_x-5,p_y,0; /一級子彈數據 int b = p_x+5,p_y,0; v.addElement(a); /添加子彈數據到v中 v.addElement(b); break; case 2: int a = p_x-8,p_y+5,0; /二級子彈
10、數據 int b = p_x,p_y,0; int c = p_x+8,p_y+5,0; v.addElement(a); v.addElement(b); v.addElement(c); break; case 3: int a = p_x-8,p_y+5,-1; /三級子彈數據 int b = p_x-5,p_y,0; int c = p_x+5,p_y,0; int d = p_x+8,p_y+5,1; v.addElement(a); v.addElement(b); v.addElement(c); v.addElement(d); break; case 4: int a = p
11、_x-8,p_y,0; /四級子彈數據 int b = p_x+8,p_y,0; int c = p_x,p_y,0; int d = p_x-10,p_y+8,-1; int e = p_x+10,p_y+8,1; int f = p_x-14,p_y+8,-1; int g = p_x+14,p_y+8,1; v.addElement(a); v.addElement(b); v.addElement(c); v.addElement(d); v.addElement(e); v.addElement(f); v.addElement(g); break; case 5: int a =
12、p_x-4,p_y,0; /五級子彈數據 int b = p_x,p_y,0; int c = p_x+4,p_y,0; int d = p_x-6,p_y+6,-1; int e = p_x+6,p_y+6,1; int f = p_x-10,p_y+8,-1; int g = p_x+10,p_y+8,1; int h = p_x-10,p_y+10,-2; int i = p_x+10,p_y+10,2; int j = p_x-14,p_y+12,-2; int k = p_x+14,p_y+12,2; v.addElement(a); v.addElement(b); v.addEl
13、ement(c); v.addElement(d); v.addElement(e); v.addElement(f); v.addElement(g); v.addElement(h); v.addElement(i); v.addElement(j); v.addElement(k); break; /* 刪除指定的子彈 */ public void delBullet(int i) if(iv.size() v.removeElementAt(i); /* 繪制子彈 */public void render(Graphics g)int row=null; /循環(huán)繪制子彈for(int
14、i=0;i0 & shootTimes%bulletStay=0) addNew(); /增加子彈 shootTimes=0; /重置子彈發(fā)射時間 for(int i=v.size()-1;i=0;i-)bulletData = (int)v.elementAt(i); /獲取子彈數據bulletData0=bulletData0+2*bulletData2; /計算子彈X坐標bulletData1-=bulletSpeed; /按子彈速度計算Y坐標 /檢查子彈是否超出屏幕 if(bulletData10 | bulletData0240) delBullet(i); /當子彈超出屏幕范圍,刪
15、除子彈 else v.setElementAt(bulletData, i); /更新子彈數據 /* 子彈碰撞檢測 */ public int collidesWith(Sprite spr) int n=0; /初始化碰撞次數 int bulletData = null; /初始化子彈數據數組 for(int i=v.size()-1;i=0;i-)bulletData = (int)v.elementAt(i); /獲取子彈數據 sprbullet.setRefPixelPosition(bulletData0,bulletData1); /設置子彈精靈位置 /當子彈發(fā)生碰撞,刪除子彈,并
16、記入碰撞次數 if(sprbullet.collidesWith(spr,false) delBullet(i); n+; return n; /返回碰撞次數 public void Release() v.removeAllElements(); v=null; imgbullet=null; sprbullet=null; *FlashScreenimport java.io.IOException;import java.util.Timer;import java.util.TimerTask;import javax.microedition.lcdui.Canvas;import
17、javax.microedition.lcdui.Graphics;import javax.microedition.lcdui.Image;/* * To change this template, choose Tools | Templates * and open the template in the editor. */* * * author Wizardyx */* 閃屏畫面 */public class FlashScreen extends Canvas GameMID mid; Image img; private Timer timer; /聲明定時器 private
18、 TimerTask task; /聲明定時器任務 /* 構造方法 */ public FlashScreen(GameMID mid) this.mid=mid; try img = Image.createImage(/logo.png); catch (IOException ex) ex.printStackTrace(); FlashTimer(); /閃屏計時 repaint(); /繪制閃屏畫面 /釋放資源 public void release() img=null; /*按鍵事件處理,按任意鍵均加載游戲菜單畫面*/ protected void keyPressed(int
19、keyCode) super.keyPressed(keyCode); timer.cancel(); release(); mid.loadGameMenu(1);/加載游戲菜單 /*繪制閃屏畫面*/ protected void paint(Graphics g) g.drawImage(img,0, 0, Graphics.TOP|Graphics.LEFT); /* 閃屏畫面計時 */ private void FlashTimer() timer = new Timer(); /創(chuàng)建定時器task = new TimerTask() /創(chuàng)建定時任務 private int times
20、=0; /計時變量 public void run() times+; /task任務計時,每次增加100ms(下面任務啟動中定義) if(times10) /3000ms后,自動加載游戲啟動界面 release(); mid.loadStartScreen(); /加載游戲啟動界面 timer.cancel(); ; /啟動task任務,在0ms后開始,每隔300ms運行一次 timer.schedule(task, 0,300); *GameDesign/* * To change this template, choose Tools | Templates * and open the
21、 template in the editor. */import javax.microedition.midlet.*;import javax.microedition.lcdui.*;import javax.microedition.lcdui.game.*;import java.io.IOException;/* * author Administrator */public class GameDesign /GEN-BEGIN:|fields|0| private Image bgTiles; private TiledLayer background; private Ti
22、ledLayer Meteorite; /GEN-END:|fields|0| /GEN-BEGIN:|methods|0| /GEN-END:|methods|0| public Image getBgTiles() throws java.io.IOException /GEN-BEGIN:|1-getter|0|1-preInit if (bgTiles = null) /GEN-END:|1-getter|0|1-preInit / write pre-init user code here bgTiles = Image.createImage(/bgTiles.png);/GEN-
23、BEGIN:|1-getter|1|1-postInit /GEN-END:|1-getter|1|1-postInit / write post-init user code here return this.bgTiles;/GEN-BEGIN:|1-getter|2| /GEN-END:|1-getter|2| public TiledLayer getBackground() throws java.io.IOException /GEN-BEGIN:|2-getter|0|2-preInit if (background = null) /GEN-END:|2-getter|0|2-
24、preInit / write pre-init user code here background = new TiledLayer(8, 20, getBgTiles(), 32, 32);/GEN-BEGIN:|2-getter|1|2-midInit int tiles = 1, 2, 3, 3, 3, 3, 4, 1 , 1, 2, 3, 3, 3, 3, 4, 1 , 1, 2, 3, 3, 3, 3, 4, 1 , 1, 2, 3, 3, 3, 3, 4, 1 , 1, 2, 3, 3, 3, 3, 4, 1 , 1, 2, 3, 3, 3, 3, 4, 1 , 1, 2, 3,
25、 3, 3, 3, 4, 1 , 1, 2, 3, 3, 3, 3, 4, 1 , 1, 2, 3, 3, 3, 3, 4, 1 , 1, 2, 3, 3, 3, 3, 4, 1 , 1, 2, 3, 3, 3, 3, 4, 1 , 1, 2, 3, 3, 3, 3, 4, 1 , 1, 2, 3, 3, 3, 3, 4, 1 , 1, 2, 3, 3, 3, 3, 4, 1 , 1, 2, 3, 3, 3, 3, 4, 1 , 1, 2, 3, 3, 3, 3, 4, 1 , 1, 2, 3, 3, 3, 3, 4, 1 , 1, 2, 3, 3, 3, 3, 4, 1 , 1, 2, 3,
26、 3, 3, 3, 4, 1 , 1, 2, 3, 3, 3, 3, 4, 1 ;/GEN-END:|2-getter|1|2-midInit / write mid-init user code here for (int row = 0; row 20; row+) /GEN-BEGIN:|2-getter|2|2-postInit for (int col = 0; col 8; col+) background.setCell(col, row, tilesrowcol); /GEN-END:|2-getter|2|2-postInit / write post-init user code here return background;/GEN-BEGIN:|2-getter|3| /GEN-END:|2-getter|3| public TiledLayer getMeteorite() th
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二四年度上海房產買賣合同智能家居系統(tǒng)配套范本3篇
- 2024版鄭州玻璃崗亭生產與供應鏈管理合同
- 2025年智能電網建設項目資金投入合同3篇
- 二零二五版豆腐品牌連鎖加盟合同3篇
- 二零二五年度企業(yè)商業(yè)信用貸款還款合同3篇
- 二零二四年醫(yī)療器械生產許可合同
- 2025年綠色建筑項目瓦工力工勞務分包及節(jié)能減排合同3篇
- 2025年度大型活動臨時演員招募服務合同4篇
- 年度豆?jié){粉戰(zhàn)略市場規(guī)劃報告
- 年度電子廚房秤競爭策略分析報告
- 2024年高標準農田建設土地承包服務協(xié)議3篇
- 閱讀理解(專項訓練)-2024-2025學年湘少版英語六年級上冊
- 2024-2025學年人教版數學六年級上冊 期末綜合試卷(含答案)
- 無創(chuàng)通氣基本模式
- 飛行原理(第二版) 課件 第4章 飛機的平衡、穩(wěn)定性和操縱性
- 收養(yǎng)能力評分表
- 暨南大學珠海校區(qū)財務辦招考財務工作人員易考易錯模擬試題(共500題)試卷后附參考答案
- 山東省桓臺第一中學2024-2025學年高一上學期期中考試物理試卷(拓展部)(無答案)
- 2024年全國統(tǒng)一高考英語試卷(新課標Ⅰ卷)含答案
- 2024年認證行業(yè)法律法規(guī)及認證基礎知識 CCAA年度確認 試題與答案
- 燃燒機論文定型機加熱論文:天然氣直燃熱風技術在定型機中的應用
評論
0/150
提交評論