java版坦克大战游戏源码.docx

上传人:b****8 文档编号:11896824 上传时间:2023-06-03 格式:DOCX 页数:17 大小:17.63KB
下载 相关 举报
java版坦克大战游戏源码.docx_第1页
第1页 / 共17页
java版坦克大战游戏源码.docx_第2页
第2页 / 共17页
java版坦克大战游戏源码.docx_第3页
第3页 / 共17页
java版坦克大战游戏源码.docx_第4页
第4页 / 共17页
java版坦克大战游戏源码.docx_第5页
第5页 / 共17页
java版坦克大战游戏源码.docx_第6页
第6页 / 共17页
java版坦克大战游戏源码.docx_第7页
第7页 / 共17页
java版坦克大战游戏源码.docx_第8页
第8页 / 共17页
java版坦克大战游戏源码.docx_第9页
第9页 / 共17页
java版坦克大战游戏源码.docx_第10页
第10页 / 共17页
java版坦克大战游戏源码.docx_第11页
第11页 / 共17页
java版坦克大战游戏源码.docx_第12页
第12页 / 共17页
java版坦克大战游戏源码.docx_第13页
第13页 / 共17页
java版坦克大战游戏源码.docx_第14页
第14页 / 共17页
java版坦克大战游戏源码.docx_第15页
第15页 / 共17页
java版坦克大战游戏源码.docx_第16页
第16页 / 共17页
java版坦克大战游戏源码.docx_第17页
第17页 / 共17页
亲,该文档总共17页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

java版坦克大战游戏源码.docx

《java版坦克大战游戏源码.docx》由会员分享,可在线阅读,更多相关《java版坦克大战游戏源码.docx(17页珍藏版)》请在冰点文库上搜索。

java版坦克大战游戏源码.docx

java版坦克大战游戏源码

java版坦克大战游戏源码

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.JPanel;

importtankwar.Tank.Direction;

importbarrier.EnemyBorn;

importbarrier.Gold;

importbarrier.Home;

importbarrier.Iron;

importbarrier.SelfBorn;

importbarrier.Wall;

publicclassTankWarimplementsKeyListener{

staticbooleanTIMEOUT=false;

privateJFramef;

privateJPanelgamePanel;

privatePanelShowmessgePanel;

privatemyPanelp;

privateTankmyTank;

publicstaticfinalintAREA_WIDTH=830;

publicstaticfinalintAREA_HEIGHT=800;

privateArrayListmissles=newArrayList();

privateArrayListallTanks=newArrayList();

privateArrayListbooms=newArrayList();

privateArrayListwalls=newArrayList();

privateArrayListirons=newArrayList();

privateArrayListgolds=newArrayList();

privateArrayListitems=newArrayList();

privateArrayListenemyBorns=newArrayList();

privateSelfBornselfBorn;

privateHomehome;

privateTankenemyTank;

privateRandomr;

privateImageIconbackGround;

privatefinalStringmap;

privateinttankMax;

privatebooleanover=false;

privatestaticintselfMax=3;

privatebooleanwin;

privatebooleanflash=false;

privateTankWartw=this;

staticintSCORE=0;

 

privatefinalJFramemainF;

privateintstyle;

publicTankWar(Stringmap,inttankMax,JFramemainF,intstyle)

throwsException{

this.map=map;

this.tankMax=tankMax;

this.mainF=mainF;

this.style=style;

init();

}

privatevoidinit(){

f=newJFrame("坦克大战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,missles,home,booms,style);

}catch(Exceptione1){

}

myTank.setDir(Direction.U);

allTanks.add(myTank);

addTank();

try{

backGround=newImageIcon(

TankWar.class.getResource("/pic/whiteback.jpg"));

}catch(Exceptione){

}

p.setBorder(BorderFactory.createEtchedBorder(Color.BLACK,Color.WHITE));

p.setSize(AREA_WIDTH,AREA_HEIGHT);

messgePanel.setBounds(AREA_WIDTH,0,200,AREA_HEIGHT);

gamePanel.add(messgePanel);

gamePanel.add(p);

f.add(gamePanel);

f.setBounds(0,0,AREA_WIDTH+200,AREA_HEIGHT);

f.setDefaultCloseOperation(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=false;

}

p.repaint();

myTank.move();

for(inti=1;i

allTanks.get(i).move();

allTanks.get(i).setNoFire(myTank.getNoFire()+1);

//if(allTanks.get(i).getX()%5==0&&allTanks.get(i).getY()%5==0)

aI(allTanks.get(i));

}

if(allTanks.size()<=enemyBorns.size()+1)

addTank();

myTank.setNoFire(myTank.getNoFire()+1);

messgePanel.setEnemyCount(tankMax);

messgePanel.setSelfCount(selfMax);

messgePanel.setScore(SCORE);

if(SCORE%500==0){

SCORE+=100;

Itemitem=newItem(allTanks,booms,irons,home);

items.add(item);

item.start();

}

try{

Thread.sleep(30);

}catch(InterruptedExceptione){

}

}

over();

}

}).start();

}

privateclassmyPanelextendsJPanel{

/**

*

*/

privatestaticfinallongserialVersionUID=4408440723797225328L;

@Override

publicvoidpaintComponent(Graphicsg){

super.paintComponent(g);

g.drawImage(backGround.getImage(),0,0,null);

for(intj=0;j

walls.get(j).draw(g);

}

for(intj=0;j

irons.get(j).draw(g);

}

for(intj=0;j

golds.get(j).draw(g);

}

for(intj=0;j

enemyBorns.get(j).draw(g);

}

home.draw(g);

selfBorn.draw(g);

for(intj=0;j

allTanks.get(j).drawTank(g);

}

for(intj=0;j

irons.get(j).draw(g);

}

for(inti=0;i

missles.get(i).drawMissle(g);

if(!

missles.get(i).isLive())

missles.remove(i);

}

for(inti=0;i

if(booms.get(i).isLive())

booms.get(i).drawBoom(g);

else

booms.remove(i);

}

for(intj=0;j

if(!

items.get(j).isLive()){

items.remove(j);

continue;

}

items.get(j).draw(g);

}

if(over)

drawOver(g);

messgePanel.repaint();

}

}

@Override

publicvoidkeyTyped(KeyEvente){

//TODOAuto-generatedmethodstub

}

@Override

publicvoidkeyPressed(KeyEvente){

if(over){

if(e.getKeyCode()==KeyEvent.VK_F1){

over=false;

missles.clear();

allTanks.clear();

booms.clear();

walls.clear();

irons.clear();

golds.clear();

enemyBorns.clear();

try{

init();

}catch(Exceptione1){

}

}else{

f.setVisible(false);

mainF.setSize(800,800);

mainF.setVisible(true);

}

}elseif(e.getKeyCode()==KeyEvent.VK_SPACE){

myTank.fire();

}else{

myTank.keyPress(e);

}

}

@Override

publicvoidkeyReleased(KeyEvente){

myTank.keyReleased(e);

}

publicvoidaI(Tanktank){

if(TIMEOUT){

tank.setUp(false);

tank.setLeft(false);

tank.setDown(false);

tank.setRight(false);

return;

}

if(r.nextInt(40)==0)

tank.fire();

if(r.nextInt(10)==0){

if(tank.getX()>=myTank.getX()

&&tank.getX()<=myTank.getX()+Tank.SIZE

&&tank.getY()>myTank.getY()){

tank.setUp(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()

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()

&&tank.getY()>=myTank.getY()

&&tank.getY()<=myTank.getY()+Tank.SIZE){

tank.setUp(false);

tank.setLeft(false);

tank.setDown(false);

tank.setRight(true);

tank.setDir(Direction.R);

return;

}

}

if(tank.getX()<=0){

tank.setUp(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.setUp(false);

tank.setLeft(true);

tank.setDown(false);

tank.setRight(false);

tank.setDir(Direction.L);

}

if(tank.getY()>=AREA_HEIGHT-Tank.SIZE){

tank.setUp(true);

tank.setLeft(false);

tank.setDown(false);

tank.setRight(false);

tank.setDir(Direction.U);

}elseif(r.nextInt(300)==1){

tank.setUp(true);

tank.setLeft(false);

tank.setDown(false);

tank.setRight(false);

tank.setDir(Direction.U);

}

elseif(r.nextInt(300)==2){

tank.setUp(false);

tank.setLeft(true);

tank.setDown(false);

tank.setRight(false);

tank.setDir(Direction.L);

}elseif(r.nextInt(300)==3){

tank.setUp(false);

tank.setLeft(false);

tank.setDown(true);

tank.setRight(false);

tank.setDir(Direction.D);

}elseif(r.nextInt(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

for(intj=0;j

switch(read.read()){

case1:

walls.add(newWall(j*50,i*50));

break;

case2:

irons.add(newIron(j*50,i*50));

break;

case3:

golds.add(newGold(j*50,i*50));

break;

case4:

selfBorn=newSelfBorn(j*50,i*50);

break;

case5:

enemyBorns.add(newEnemyBorn(j*50,i*50));

break;

case6:

home=newHome(j*50,i*50);

break;

}

}

}

read.close();

}catch(Exceptione){

}

;

}

publicvoidaddTank(){

if(tankMax<=0)

return;

for(inti=allTanks.size();i

try{

inttemp=r.nextInt(enemyBorns.size());

enemyTank=newTank(enemyBorns.get(temp).getX(),enemyBorns

.get(temp).getY(),false,allTanks,walls,irons,

golds,missles,home,booms,r.nextInt(3)+1);

}catch(Exceptione){

e.printStackTrace();

}

enemyTank.setDir(Direction.D);

enemyTank.setDown(true);

allTanks.add(enemyTank);

tankMax--;

if(tankMax<=0)

return;

}

}

publicstaticvoidaddMyTankLives(){

selfMax++;

}

privatevoidover(){

for(inti=0;i

for(intj=0;j

irons.add(newIron(j*50,i*50));

p.repaint();

try{

Thread.sleep(5);

}cat

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2