资源简介
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 < mateWalls.size(); i++) {
MateWall mw = mateWalls.get(i);
mw.draw(gps);
}
// 普通墙
for (int i = 0; i < commonWalls.size(); i++) {
CommonWall cm = commonWalls.get(i);
cm.draw(gps);
}
// 河道
for (int i = 0; i < rivers.size(); 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 < tanks.size(); i += 1) {
Tank tk = tanks.get(i);
tk.boom();
tk.boomComWalls();
tk.boomRiver();
tk.boomTank();
tk.boomme();
tk.draw(gps);
}
//画子弹
for (int i = 0; i < bullets.size(); 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 < trees.size(); 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联系人通讯率
相关资源
- 微博系统(Java源码,servlet+jsp),适
- java串口通信全套完整代码-导入eclip
- jsonarray所必需的6个jar包.rar
- 三角网构TIN生成算法,Java语言实现
- java代码编写将excel数据导入到mysql数据
- Java写的cmm词法分析器源代码及javacc学
- JAVA JSP公司财务管理系统 源代码 论文
- JSP+MYSQL旅行社管理信息系统
- 推荐算法的JAVA实现
- 基于Java的酒店管理系统源码(毕业设
- java-图片识别 图片比较
- android毕业设计
- java23种设计模式+23个实例demo
- java Socket发送/接受报文
- JAVA828436
- java界面美化 提供多套皮肤直接使用
- 在线聊天系统(java代码)
- 基于Java的图书管理系统807185
- java中实现将页面数据导入Excel中
- java 企业销售管理系统
- java做的聊天系统(包括正规课程设计
- Java编写的qq聊天室
- 商店商品管理系统 JAVA写的 有界面
- JAVA开发聊天室程序
- 在linux系统下用java执行系统命令实例
- java期末考试试题两套(答案) 选择(
- JAVA3D编程示例(建模、交互)
- Java 文件加密传输
- java做的房产管理系统
- 基于jsp的bbs论坛 非常详细
评论
共有 条评论