java飛機(jī)游戲源代碼_第1頁
java飛機(jī)游戲源代碼_第2頁
java飛機(jī)游戲源代碼_第3頁
java飛機(jī)游戲源代碼_第4頁
java飛機(jī)游戲源代碼_第5頁
免費(fèi)預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、import /借用工具 importimportimportimportimportimportimport /引用隨機(jī)數(shù)public class pla negames /* param args*/public static void main( Stri ng args) Frame window= new Frame(); / 倉U建一個(gè)窗體window.setSize(240,320);/ 窗體大小window.setTitle(是男人就堅(jiān)持20秒”);/窗體名字myPanel mp= new myPanel();/ 倉U建一個(gè)畫布window.add(mp);/將畫布添加到窗體上

2、window.setVisible(true ); / 顯示窗體new Thread(mp).start();mp.addKeyListe ner(mp);/ TODOAuto-ge nerated method stubclass myPanelexte nds Panel impleme ntsRunn able,KeyListe nerToolkit tk =Toolkit. getDefaultToolkit (); / 獲得讀取數(shù)據(jù)工具Random r=new Random();booleanalive =true ;Image bg =tk .createlmage( this .

3、getClass().getResource(bg.png ); / 背景Image bulletImg = tk .createImage( this .getClass().getResource(bullet.png );/ 子彈/子彈相關(guān)數(shù)據(jù)int n ums=30;int bx=new int nums; / 子彈的 x坐標(biāo)int by = new int nums; / 子彈的 y坐標(biāo)Imageplanelmg =tk .createImage( this .getClass().getResource(plane.png); / 飛機(jī)相關(guān)數(shù)據(jù)intpx=113; /飛機(jī)的x坐標(biāo)i

4、ntpy =160; /y 坐標(biāo)boolean moveFlag =new boolean 4; / 移動(dòng)方向標(biāo)志默認(rèn)都為Falsedouble cos =new double nums;double sin =new double nums;public void paint (Graphics g)update(g);public void update(Graphics g)Image tmp=createImage(240,320); / 創(chuàng)建一個(gè)透明圖片Graphics _g=tmp.getGraphics(); / 取得這個(gè)圖片 _g.drawImage( bg ,0,0, thi

5、s ); / 最后一個(gè) this 表示在哪個(gè)畫布上 if ( alive )_g.drawImage( planeImg ,px, py, px +15, py +15,0,0,15,15, this );else _g.drawImage( planeImg , px , py, px +15, py +15,15,0,30,15,this );for (int i=0;i nums ;i+) _g.drawImage( bulletImg g.drawImage(tmp,0,0, bx i,by i, this );this);void run()(inti=0;iintdirect=if

6、(direct=0)bx i= rby i=0;if(direct=1)bx i=0;by i= rif(direct=2)bx i= rr .nextInt(4);.nextInt(240);.nextInt(320);by i=320;publicfor.nextInt(240);/0出現(xiàn)在上方 1左2 下3右if(direct=3)bx i=240;by i= r.nextInt(320);px - bx i; py - by i; double dLine=Mintdx=dy=x軸距離y軸距離/ 子彈與飛機(jī)/ 子彈與飛機(jī)sqrt (dx*dx+dy*dy);cos i=d

7、x/dLine; sin i=dy/dLine;while ( alive ) / 死循環(huán)一直去重新繪制圖片實(shí)現(xiàn)動(dòng)畫效果 if ( moveFlag 0) / 說明 up 為按下狀態(tài)py -=5;if( moveFlagpx -=5;1)/說明 left 為按下狀態(tài)if( moveFlagpy +=5;2)/說明 down 為按下狀態(tài)if( moveFlagpx +=5;3)/說明 right 為按下狀態(tài)if( py 0) /py=0;如果飛機(jī)從上方出界if( px 265)py =265;/如果飛機(jī)從下方出界if( px 210)px =210;/如果飛機(jī)從右方出界for (int bx i

8、=( by i=( ifi=0;i px &px +15 bxi / 子彈和飛機(jī)碰撞&by i+3 py &py +15 by i) alive =false ;if( bx i0| by i240|by i320)int direct= r .nextInt(4); /0 出現(xiàn)在上方 1左2 下3右 (direct=0)bx i= r .nextInt(240);by i=0;ifif(direct=1)bx i=0;by i= r .nextInt(320);if(direct=2)bx i= r .nextInt(240); by i=320;if(direct=3)bx i=240;b

9、y i= r .nextInt(320);int dx= px - bx i; / 子彈與飛機(jī) x 軸距離 int dy= py - by i; / 子彈與飛機(jī) y 軸距離 double dLine=Math. sqrt (dx*dx+dy*dy); cos i=dx/dLine; sin i=dy/dLine;repaint(); / 重新繪制try Thread. sleep (40L); / 每秒 25 幀 catch (InterruptedException e)public void keyPressed(KeyEvent e)if (e.getKeyCode()=KeyEvent

10、. VK_UP)moveFlag 0= true ; / 按下上的時(shí)候 0元素為 trueif (e.getKeyCode()=KeyEvent. VK_LEFT) moveFlag 1= true ; / 按下左的時(shí)候 1元素為 true if (e.getKeyCode()=KeyEvent. VK_DOWN) moveFlag 2= true ; / 按下下的時(shí)候 2元素為 true if (e.getKeyCode()=KeyEvent. VK_RIGHT) moveFlag 3= true ; / 按下右的時(shí)候 3元素為 true public void keyReleased(KeyEvent e)if (e.getKeyCode()=KeyEvent. VK_UP) moveFlag 0= false ; / 按下上的時(shí)候 0元素為 true if (e.getKeyCode()=KeyEvent. VK_LEFT)moveFlag 1= false; / 按下左的時(shí)候 1 元素為 trueif (e.getKeyCode()=

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論