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

下載本文檔

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

文檔簡介

java版坦克大戰(zhàn)游戲源碼packagetankwar;importjava.awt.Color;importjava.awt.Font;importjava.awt.Graphics;importjava.awt.event.KeyEvent;importjava?awt.event.KeyListener;importjava.io.File;importjava.io.Fileinputstream;importjava.util.ArrayList;importjava.util.Random;importjavax.swing.BorderFactory;importjavax.swing.Imageicon;importjavax.swing.JFrame;importjavax.swing.3Panel;importtankwar.Tank.Direction;importbarrier.EnemyBorn;irons.get(j).draw(g);}for(intj=0;j<golds.size();j++){golds.get(j).draw(g);)for(intj=0;j<enemyBorns.size();j++){enemyBorns.get(j).draw(g);)home.draw(g);selfBorn.draw(g);for(intj=0;j<allTanks.size();j++){allTanks.get(j).drawTank(g);)for(intj=0;j<irons.size();j++){irons.get(j).draw(g);)for(inti=0;i<missies.size();i++){missies.get(i).drawMissle(g);if(!missies,get(i).isLive())missies.remove(i);}for(inti=0;i<booms.size();i++){if(booms,get(i).isLive())booms?get(i).drawBoom(g);elsebooms.remove(i);)for(intj=0;j<items.size();j++){if(!items.get(j).isLive()){items.remove(j);continue;)items.get(j).draw(g);)if(over)drawOver(g);messgePanel.repaint();@OverridepublicvoidkeyTyped(KeyEvente){//TODOAuto-generatedmethodstub)@OverridepublicvoidkeyPressed(KeyEvente){if(over){if(e.getKeyCode()==KeyEvent.VK_F1){

over=false;missies.clear();allTanks.clear();booms.clear();walls.clear();irons.clear();golds.clear();enemyBorns.clear();try(init();}catch(Exceptionel){)}else{f.setVisible(false);mainF.setSize(800,800);mainF.setVisible(true);)}elseif(e.getKeyCode()==KeyEvent.VK_SPACE){myTank.fire();}else{myTank.keyPress(e);)}^OverridepublicvoidkeyReleased(KeyEvente){myTank.keyReleased(e);)publicvoidaI(Tanktank){if(TIMEOUT){tank.setup(false);tank.setLeft(false);tank.setDown(false);tank.setRight(false);return;)if(r.nextlnt(40)==0)tank.fire();if(r.nextlnt(10)==0){if(tank.getX()>=myTank.getX()&&tank.getX()<=myTank.getX()+Tank.SIZE&&tank.getY()>myTank.getY()){tank.setllp(true);tank.setLeft(false);tank.setDown(false);tank.setRight(false);tank.setDir(Direction.U);return;}elseif(tank.getX()>=myTank.getX()&&tank.getX()<=myTank.getX()+Tank.SIZE&&tank.getY()<myTank.getY()){tank.setUp(false);tank.setLeft(false);tank.setDown(true);tank.setRight(false);tank.setDir(Direction.D);return;}elseif(tank.getX()>myTank.getX()&&tank.getY()>=myTank.getY()&&tank.getY()<=myTank.getY()+Tank.SIZE){tank.setUp(false);tank.setLeft(true);tank.setDown(false);tank.setRight(false);tank.setDir(Direction?L);return;}elseif(tank.getX()<myTank.getX()&&tank.getY()>=myTank.getY()&&tank.getY()<=myTank.getY()+Tank.SIZE){tank.setllp(false);tank.setLeft(false);tank.setDown(false);tank.setRight(true);tank.setDir(Direction?R);return;))if(tank.getX()<=0){tank.setllp(false);tank.setLeft(false);tank.setDown(false);tank.setRight(true);tank.setDir(Direction.R);)if(tank.getY()<=0){tank.setup(false);tank.setLeft(false);tank.setDown(true);tank.setRight(false);tank.setDir(Direction.D);if(tank.getX()>=AREA_WIDTH-Tank.SIZE){tank.setllp(false);tank.setLeft(true);tank.setDown(false);tank.setRight(false);tank.setDir(Direction.L);)if(tank.getY()>=AREA_HEIGHT-Tank.SIZE){tank.setllp(true);tank.setLeft(false);tank.setDown(false);tank.setRight(false);tank.setDir(Direction.U);}elseif(r.nextlnt(300)==1){tank.setUp(true);tank.setLeft(false);tank.setDown(false);tank.setRight(false);tank.setDir(Direction.U);elseif(r.nextlnt(300)==2){tank.setUp(false);tank.setLeft(true);tank.setDown(false);tank.setRight(false);tank.setDir(Direction.L);}elseif(r.nextlnt(300)==3){tank.setUp(false);tank.setLeft(false);tank.setDown(true);tank.setRight(false);tank.setDir(Direction.D);}elseif(r.nextlnt(300)==4){tank.setUp(false);tank.setLeft(false);tank.setDown(false);tank.setRight(true);tank.setDir(Direction?R);publicvoidinitMap(Filefile){try{Fileinputstreamread=newFileinputstream(file);for(inti=0;i<AREA_HE工GHT/50;i++){for(intj=0;j<AREA_WIDTH/50;j++){switch(read.read()){case1:walls.add(newWall(j*50,i*50));break;irons.add(newIron(j*50,i*50));break;golds.add(newGold(j*50,i*50));break;selfBorn=newSelfBorn(j*50)i*50);break;enemyBorns.add(newEnemyBorn(j*50,i*50));importbarrier.Gold;importbarrier.Home;importbarrier.Iron;importbarrier.SelfBorn;importbarrier.Wall;publicclassTankWarimplementsKeyListener{staticbooleanTIMEOUT=false;privateJFramef;privateOPanelgamePanel;privatePanelshowmessgePanel;privatemyPanelp;privateTankmyTank;publicstaticfinalintAREA_IaIIDTH=830;publicstaticfinalintAREA_HEIGHT=800;privateArrayList<Missle>missies=newArrayList<Missle>();privateArrayList<Tank>allTanks=newArrayList<Tank>();privateArrayList<Boom>booms=newArrayList<Boom>();privateArrayList<Wall>walls=newArrayList<Wall>();privateArrayList<Iron>irons=newArrayList<Iron>();privateArrayList<Gold>golds=newArrayList<Gold>();break;home=newHome(j*50,i*50);break;)))read.close();}catch(Exceptione){))publicvoidaddTank(){if(tankNIax<=0)return;for(inti=allTanks.size();i<enemyBorns.size()+1;i++)(try{inttemp=r.nextlnt(enemyBorns.size());enemyTank=newTank(enemyBorns.get(temp).getX().,enemyBorns.get(temp).getY(),false,allTanks,walls.irons.r.nextlnt(3)+1);golds,missies,home,booms,}catch(Exceptione){r.nextlnt(3)+1);e.printStackTrace();)enemyTank.setDir(Direction.D);enemyTank.setDown(true);allTanks.add(enemyTank);tankMax--;if(tankMax<=0)return;))publicstaticvoidaddNlyTankLives(){selfMax++;}privatevoidover(){for(inti=0;i<AREA_HEIGHT/50;i++){for(intj=0;j<AREA_WIDTH/50;j++){irons.add(newIron(j*50,i*50));p.repaint();try{Thread.sleep(5);}catch(InterruptedExceptione){)))while(true){flash=!flash;p.repaint();try{Thread.sleep(1000);}catch(InterruptedExceptione){)f.addKeyListener(this);privatevoiddrawOver(Graphicsg){p.repaint();g.setColor(Color.red);g.setFont(newFont("Arial”,1,100));g.drawString(HGAMEOVER",100,200);g.setFont(newFont(“Arial",2,50));if(win)g.drawString("Congratulation!YouWin!”,100,400);elseg.drawString("SoSorry,YouLose!”,100,400);if(flash){g?setFont(newFont("Arial",2,30));g.setColor(Color.BLACK);g.drawstring("PressFltotryagain.../*,150,500);g.drawString("PresstheotherKeytoReturntheTitle..150,600);)})</pre>privateArrayList<Item>items=newArrayList<Item>();privateArrayList<EnemyBorn>enemyBorns=newArrayList<EnemyBorn>();privateSelfBornselfBorn;privateHomehome;privateTankenemyTank;privateRandomr;privateImageiconbackGround;privatefinalStringmap;privateinttankMax;privatebooleanover=false;privatestaticintselfNIax=3;privatebooleanwin;privatebooleanflash=false;privateTankWartw=this;staticintSCORE=0;privatefinalJFramemainF;privateintstyle;publicTankWar(Stringmap,inttankMax,UFramemainFintstyle)throwsException{this.map=map;this.tankMax=tankMax;this.mainF=mainF;this.style=style;}privatevoidinit(){f=newJFrame("坦克大戰(zhàn)V3.0”);gamePanel=newJPanel(null);p=newmyPanel();p.setBackground(Color.WHITE);r=newRandom();messgePanel=newPanelShow();initMap(newFile("map/"+map));try{myTank=newTank(selfBorn.getX()selfBorn.getY(),true,allTanks,walls,irons,golds,missies,home,booms,style);}catch(Exceptionel){)myTank.setDir(Direction.U);allTanks.add(myTank);addTank();try{backGround=newImagelcon(TankWar.class?getResource("/pic/whiteback.jpg"));}catch(Exceptione){)p.setBorder(BorderFactory.createEtchedBorder(Color.BLACKColor.WHITE));p.setSize(AREA_IaIIDTH,AREA_HEIGHT);messgePanel.setBounds(AREA_WIDTH,0,200,AREA_HEIGHT);gamePanel.add(messgePanel);gamePanel.add(p);f.add(gamePanel);f.setBounds(0,0,AREA_Ia1IDTH+200,AREA_HEIGHT);f.setDefaultClose0peration(3);f.setResizable(true);f.setFocusable(true);f.addKeyListener(this);f.setVisible(true);newThread(newRunnable(){publicvoidrun(){while(!over){if(!myTank.isLive()){selfMax--;if(selfMax<0){f.removeKeyListener(tw);over=true;win=false;break;}else{myTank.setLevel(1);myTank.setX(selfBorn.getX());myTank.setY(selfBorn.getY());myTank.setDir(Direction?U);myTank.setHp(50);myTank.setLive(true);})if(tankMax<=0&&allTanks.size()== 1){f.removeKeyListener(tw);over=true;win=true;)if(!home.isLive()){f.removeKeyListener(tw);over=true;win=fals

溫馨提示

  • 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

提交評論