




下載本文檔
版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中國銀行法律顧問合同范本
- 勞務(wù)分包個(gè)人合同范本
- 中醫(yī)飲售賣合同范本
- 剩余產(chǎn)品合同范本
- 農(nóng)業(yè)土豆銷售合同范本
- 公務(wù)車服務(wù)合同范本
- 個(gè)人包車協(xié)議合同范本
- 制定企業(yè)合同范本
- 個(gè)人餐館轉(zhuǎn)讓合同范本
- 單位買車合同范例
- 大學(xué)學(xué)院學(xué)生獎(jiǎng)助資金及相關(guān)經(jīng)費(fèi)發(fā)放管理暫行辦法
- 2022蘇教版科學(xué)五年級下冊全冊優(yōu)質(zhì)教案教學(xué)設(shè)計(jì)
- 加油員的安全生產(chǎn)責(zé)任制
- 2023年R2移動(dòng)式壓力容器充裝操作證考試題及答案(完整版)
- 九年級物理實(shí)驗(yàn)記錄單
- 2022年湖北省高中學(xué)業(yè)水平考試真題-音樂學(xué)科
- 提高屋面防水施工質(zhì)量年QC成果
- 部編初中語文古詩詞按作者分類梳理
- 博朗IRT6520中文說明書家用版
- 旅行社運(yùn)營實(shí)務(wù)電子課件 1.1 初識旅行社
- 【讀書如熬粥閱讀答案】讀書如熬粥閱讀答案
評論
0/150
提交評論