資源簡介
java實現經典游戲之坦克大戰,采用Swing,集合,LIst,Image等技術。
代碼片段和文件信息
package?cn.Tank.game;
import?java.awt.Color;
import?java.awt.Font;
import?java.awt.frame;
import?java.awt.Graphics;
import?java.awt.Image;
import?java.awt.Menu;
import?java.awt.MenuBar;
import?java.awt.MenuItem;
import?java.awt.event.ActionEvent;
import?java.awt.event.ActionListener;
import?java.awt.event.KeyAdapter;
import?java.awt.event.KeyEvent;
import?java.awt.event.WindowAdapter;
import?java.awt.event.WindowEvent;
import?java.util.ArrayList;
import?java.util.List;
import?javax.swing.JOptionPane;
/*
?*?游戲入口
?*/
public?class?Client?extends?frame?implements?ActionListener{
public?boolean?isRun=true;
//?設置窗口寬高
public?static?final?int?WIDTH?=?1000?HEIGHT?=?800;
//?頂部菜單欄
MenuBar?menuBar?=?null;
//?定義四個菜單按鈕
Menu?m1?=?null;
Menu?m2?=?null;
Menu?m3?=?null;
Menu?m4?=?null;
//?定義下拉選框
MenuItem?newGame?=?null;
MenuItem?quit?=?null;
MenuItem?pause?=?null;
MenuItem?goon?=?null;
MenuItem?lv1?=?null;
MenuItem?lv2?=?null;
MenuItem?lv3?=?null;
MenuItem?lv4?=?null;
MenuItem?explain?=?null;
//?水晶
Home?home?=?new?Home(6?752);
//?定義鋼板墻集合
List?mateWalls?=?new?ArrayList<>();
//?普通墻
List?commonWalls?=?new?ArrayList<>();
//?河道
List?rivers?=?new?ArrayList<>();
//?我方坦克
Tank?me?=?new?Tank(800?752?this?Direction.U?true);
//?樹集合
List?trees?=?new?ArrayList<>();
//?敵方坦克集合
List?tanks?=?new?ArrayList<>();
List?bullets?=?new?ArrayList<>();
public?void?update(Graphics?g)?{
//?創建背景圖
Image?screenImage?=?this.createImage(WIDTH?HEIGHT);
Graphics?gps?=?screenImage.getGraphics();
gps.setColor(Color.black);
gps.fillRect(0?0?WIDTH?HEIGHT);
home.draw(gps);
//?鋼板墻
for?(int?i?=?0;?i? MateWall?mw?=?mateWalls.get(i);
mw.draw(gps);
}
//?普通墻
for?(int?i?=?0;?i? CommonWall?cm?=?commonWalls.get(i);
cm.draw(gps);
}
//?河道
for?(int?i?=?0;?i? River?rv?=?rivers.get(i);
rv.draw(gps);
}
//?我方坦克
me.boom();
me.boomComWalls();
me.boomRiver();
me.boomTank();
me.draw(gps);
//?敵方坦克
for?(int?i?=?0;?i? Tank?tk?=?tanks.get(i);
tk.boom();
tk.boomComWalls();
tk.boomRiver();
tk.boomTank();
tk.boomme();
tk.draw(gps);
}
//畫子彈
for?(int?i?=?0;?i? Bullets?bl=bullets.get(i);
bl.bullet_com();
bl.bullet_mate();
bl.bullet_others();
bl.bullet_me_home();
bl.bullet_me();
bl.bullet_home();
bl.draw(gps);
}
//?樹
for?(int?i?=?0;?i? Tree?tr?=?trees.get(i);
tr.draw(gps);
}
//判斷游戲結束
if(!me.live||!home.live)?{
isRun=false;
gps.setColor(Color.RED);
gps.setFont(new?Font(“宋體“Font.BOLD80));
gps.drawString(“GAME?OVER!“?400?400);
}
if(tanks.size()==0)?{
isRun=false;
gps.setColo
- 上一篇:jAVA從入門到精通.docx
- 下一篇:數據結構Java聯系人通訊率
評論
共有 條評論