




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、坦克大戰(zhàn)游戲 import java.awt.*;import javax.swing.*;import java.applet.*;import java.awt.event.*;public class MytankeGame1 extends JFrameMypanel mp=null;public static void main(String args)MytankeGame1 mtg=new MytankeGame1();public MytankeGame1()mp=new Mypanel();this.add(mp);/注冊監(jiān)聽this.addKeyListener(mp);t
2、his.setSize(400,300);this.setVisible(true);/我的面板-0pclass Mypanel extends JPanel implements KeyListener/定義一個我的坦克Hero hero=null;/構(gòu)造函數(shù)public Mypanel()hero=new Hero(10,10);/重寫paintpublic void paint(Graphics g)super.paint(g);g.fillRect(0,0,400,300); /畫出自己的坦克this.drawTank(hero.getX(),hero.getY(),g,this.he
3、ro.direct,1);/畫出坦克函數(shù)public void drawTank(int x,int y,Graphics g,int direct,int type)/判斷是什么類型的坦克switch(type)case 0:g.setColor(Color.cyan);break;case 1:g.setColor(Color.yellow);break;/判斷方向switch(direct)/向上case 0:/畫出坦克(到時在封裝成一個函數(shù))/1.畫出左邊的矩形g.fill3DRect(x,y, 5, 30,false);/2.畫出左邊的矩形g.fill3DRect(x+15,y, 5
4、, 30,false);/3.畫出中間矩形g.fill3DRect(x+5,y+5, 10, 20,false);/4.畫出圓形g.fillOval(x+5,y+10,10, 10);/5.畫出線g.drawLine(x+10, y+15, x+10, y);break;case 1:/炮筒向右/畫出上面的矩形g.fill3DRect(x, y,30, 5,false);/畫出下面的矩形g.fill3DRect(x+5, y+5,20,10,false);/畫出圓形g.fillOval(x+10, y+5,10,10);/畫出線g.drawLine(x+15, y+10, x+30,y+10)
5、;break;case 2:/向下/畫出坦克(到時在封裝成一個函數(shù))/1.畫出左邊的矩形g.fill3DRect(x,y, 5, 30,false);/2.畫出左邊的矩形g.fill3DRect(x+15,y, 5, 30,false);/3.畫出中間矩形g.fill3DRect(x+5,y+5, 10, 20,false);/4.畫出圓形g.fillOval(x+5,y+10,10, 10);/5.畫出線g.drawLine(x+10, y+15, x+10, y+30);case 3:/向左/畫出上面的矩形g.fill3DRect(x, y,30, 5,false);/畫出下面的矩形g.f
6、ill3DRect(x+5, y+5,20,10,false);/畫出圓形g.fillOval(x+10, y+5,10,10);/畫出線g.drawLine(x+15, y+10, x,y+10);break;/鍵按下處理,a表示向左邊 s表示向下,w表示向上 d表示向右public void keyPressed(KeyEvent arg0) / TODO Auto-generated method stubif(arg0.getKeyCode()=KeyEvent.VK_W)/設(shè)置我的坦克的方向this.hero.setDirect(0);this.hero.moveUp(); else
7、 if(arg0.getKeyCode()=KeyEvent.VK_D)/向右this.hero.setDirect(1);this.hero.moveRight();else if(arg0.getKeyCode()=KeyEvent.VK_S)/向下this.hero.setDirect(2);this.hero.moveDown();else if(arg0.getKeyCode()=KeyEvent.VK_A)/向左移動this.hero.setDirect(3);this.hero.moveLeft();/重新繪制Panelthis.repaint();Overridepublic
8、void keyReleased(KeyEvent arg0) / TODO Auto-generated method stubOverridepublic void keyTyped(KeyEvent arg0) / TODO Auto-generated method stub/坦克類class Tank/表示坦克橫坐標(biāo)int x=0;/0表示上 1表示右,2 表示下 3 表示左int direct=0;/坦克的速度int speed=10;public int getDirect() return direct;public void setDirect(int direct) this.direct = direct;public int getX() return x;public void setX(int x) this.x = x;public int getY() return y;public void setY(int y) this.y = y;/坦克的縱坐標(biāo)int y=0;public Tank(int x,int y)this.x=x;this.y=y;/我的坦克class Hero extends Tank/坦克的速度public Hero (int x,int y)super(x,y);/向上移動publ
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 網(wǎng)絡(luò)工程師考試內(nèi)容大全及2025年試題與答案
- 公共政策與國際關(guān)系試題及答案
- 西方政治中的性別角色與變遷試題及答案
- 信息系統(tǒng)項目管理的實務(wù)案例分享試題及答案
- 網(wǎng)絡(luò)工程師實戰(zhàn)試題及答案分享
- 軟件設(shè)計師考試備考心得及試題答案
- 檢修考題復(fù)習(xí)試題
- 公共衛(wèi)生政策與應(yīng)急管理的結(jié)合試題及答案
- 軟件設(shè)計師考試如何利用個人網(wǎng)絡(luò)資源與試題與答案
- 計算機三級軟件測試中的風(fēng)險管理策略試題及答案
- 2024年花藝師現(xiàn)場制作考題及試題及答案
- 微型消防站設(shè)立方案
- 合同緊急聯(lián)系人協(xié)議
- 中西繪畫藝術(shù)風(fēng)格對比分析
- 商業(yè)保險在風(fēng)險管理中的應(yīng)用
- 家庭法律顧問合同范本
- 備考2025年高考數(shù)學(xué)-名師導(dǎo)學(xué)-一輪總復(fù)習(xí)-參考答案
- 基于IPv6的校園網(wǎng)升級改造
- 新時代中小學(xué)教師職業(yè)行為十項準則課件
- 2024年四川省廣元市中考英語試卷真題(含答案解析)
- DB3305╱T 114.4-2019 污水零直排區(qū)建設(shè)與管理規(guī)范 第4部分:其他區(qū)域
評論
0/150
提交評論