坦克大戰(zhàn)游戲_第1頁
坦克大戰(zhàn)游戲_第2頁
坦克大戰(zhàn)游戲_第3頁
坦克大戰(zhàn)游戲_第4頁
坦克大戰(zhàn)游戲_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論