java坦克大战墙_java实现坦克大战(功能丰富)
java实现坦克大战(功能丰富)
java实现坦克大战(功能丰富)
源码下载地址:https://download.csdn.net/download/qq_40693603/12839580
1、游戏玩法介绍
2、自定义游戏(选择游戏难度、关卡等)
3、自定义玩家姓名
4、数据的动态显示
。。。。。
1)游戏首页
2)自定义游戏页面
3)游戏介绍
4)开始游戏,自定义玩家姓名
5)游戏主页面
1)数据的初始化类
public class Data {
public static boolean isRestart=false;
public static boolean isGameOver=false;
public static int start = 0;// 1为开始 0为还未开始
public static int levle = 1;//关卡
public static int pouse = 0;//0表示继续 1表示暂停
public static String name = "";
public static int time = 0;
public static int b = 0;
public static int a = 1;//玩家的方向 1为上 2为下 3为左 4为右
public static int count; // 计算积分数
public static int hit = 0; // 计算击毁坦克的数量
public static Player player = new Player(200, 560, 3, 1);// 创建 玩家
public static home home = new home(280, 560, 1);// 创建碉堡
// 加载图片 相对路径 jpg png gif
public static final Image IMG_ST = new ImageIcon("image/timg (2).jpg").getImage();
public static final Image IMG_buleUp = new ImageIcon("image/buleUp.gif").getImage();
public static final Image IMG_buledown = new ImageIcon("image/buledown.gif").getImage();
public static final Image IMG_buleLeft = new ImageIcon("image/buleLeft.gif").getImage();
public static final Image IMG_buleRight = new ImageIcon("image/buleRight.gif").getImage();
public static final Image IMG_pinkDown = new ImageIcon("image/pinkDown.gif").getImage();
public static final Image IMG_pinkLeft = new ImageIcon("image/pinkLeft.gif").getImage();
public static final Image IMG_pinkRight = new ImageIcon("image/pinkRight.gif").getImage();
public static final Image IMG_pinkUp = new ImageIcon("image/pinkUp.gif").getImage();
public static final Image IMG_yellowDown = new ImageIcon("image/yellowDown.gif").getImage();
public static final Image IMG_yellowLeft = new ImageIcon("image/yellowLeft.gif").getImage();
public static final Image IMG_yellowRight = new ImageIcon("image/yellowRight.gif").getImage();
public static final Image IMG_yellowUp = new ImageIcon("image/yellowUp.gif").getImage();
public static final Image IMG_tie = new ImageIcon("image/tie4.gif").getImage();
public static final Image IMG_warter = new ImageIcon("image/water.gif").getImage();
public static final Image IMG_grass = new ImageIcon("image/grass.gif").getImage();
public static final Image IMG_wall = new ImageIcon("image/walls.gif").getImage();
public static final Image IMG_smallwall = new ImageIcon("image/smallwalls.gif").getImage();
public static final Image IMG_PLAYER1 = new ImageIcon("image/player1.gif").getImage();
public static final Image IMG_PLAYER2 = new ImageIcon("image/player2.gif").getImage();
public static final Image IMG_PLAYER3 = new ImageIcon("image/player3.gif").getImage();
public static final Image IMG_PLAYER4 = new ImageIcon("image/player4.gif").getImage();
public static final Image IMG_home = new ImageIcon("image/symbol.gif").getImage();
public static final Image IMG_bullet = new ImageIcon("image/bullet.gif").getImage();
public static final Image IMG_over = new ImageIcon("image/gameOver.gif").getImage();
public static final Image IMG_win = new ImageIcon("image/gameWin.jpeg").getImage();
public static final Image IMG_hp = new ImageIcon("image/hp.png").getImage();
public static final Image IMG_speed = new ImageIcon("image/124.png").getImage();
public static final Image IMG_bomb = new ImageIcon("image/128.png").getImage();
public static final Image IMG_gia1 = new ImageIcon("image/i1.jpg").getImage();
public static final Image IMG_gia2 = new ImageIcon("image/i2.jpg").getImage();
public static final Image IMG_gia3 = new ImageIcon("image/i3.jpg").getImage();
// 子弹的集合
public static ArrayList zdList = new ArrayList();
public static ArrayList enzdList = new ArrayList();
// 界面敌人的集合
public static ArrayList enemyList = new ArrayList();
//后台敌人的集合
public static ArrayList backlist = new ArrayList();
// 计算各个敌人的数量集合
public static ArrayList yellowcount = new ArrayList();
public static ArrayList bulecount = new ArrayList();
public static ArrayList pinkcount = new ArrayList();
//道具的集合
public static ArrayList stagelList = new ArrayList();
public static void initenemy(int num) {
Random ran = new Random();
for (int i = 0; i < num; i++) {
int key = ran.nextInt(3);
Enemy en = null;
if (key == 0) {
en = new YellowEnemy(0, 0, 1, 0, 0,100);
yellowcount.add(en);
} else if (key == 1) {
en = new BuleEnemy(560, 0, 1, 0, 0,100);
bulecount.add(en);
} else {
en = new PinkEnemy(250, 0, 1, 0, 0,100);
pinkcount.add(en);
}
backlist.add(en);
}
}
}
2)开始游戏
public class StartAction implements ActionListener {
private GameFrame f;
private GameArea ga;
public StartAction(GameFrame f) {
super();
this.f = f;
}
public void actionPerformed(ActionEvent e) {
String startaction = e.getActionCommand();
if (startaction.equals("start")) {
String title = JOptionPane.showInputDialog(null, "请输入姓名", "欢迎来到坦克大战", JOptionPane.PLAIN_MESSAGE);
Data.name = title;
Data.start = 1;
Data.initenemy(3);
f.getGm().getStartgame().setEnabled(false);
f.getGm().getRestart().setEnabled(true);
} else if (startaction.equals("restart")) {
Data.enemyList.clear();
Data.backlist.clear();
Data.yellowcount.clear();
Data.bulecount.clear();
Data.pinkcount.clear();
Data.stagelList.clear();
Data.player.setX(200);
Data.player.setY(560);
Data.initenemy(3);
Data.b = 0;
Player.setHP(3);
Data.isGameOver = true;
Data.isRestart =true;
} else if (startaction.equals("exit")) {
System.exit(0);
} else if (startaction.equals("game")) {
JOptionPane.showMessageDialog(null,"用 W S A D控制方向,J键盘发射,P为暂停,O为继续。\n道具: 炸弹----使敌人消失 星星-----加速 爱心----增加生命值!\n制作不易请多多包含!!!",
"提示!", JOptionPane.INFORMATION_MESSAGE);
} else if (startaction.equals("self")) {
new GameSelf();
}
}
}
3)监听按键类
public class PlayerKeyListener extends KeyAdapter {
private Player player;
@Override
public void keyPressed(KeyEvent e) {
super.keyPressed(e);
int key = e.getKeyCode();
if (key == KeyEvent.VK_W) {
if (Data.pouse == 0 && Data.player.getY() > 0) {
Data.player.up();
Data.a = 1;
}
}
if (key == KeyEvent.VK_S) {
if (Data.pouse == 0 && Data.player.getY() < 560) {
Data.player.down();
Data.a = 2;
}
}
if (key == KeyEvent.VK_A) {
if (Data.pouse == 0 && Data.player.getX() > 0) {
Data.player.left();
Data.a = 3;
}
}
if (key == KeyEvent.VK_D) {
if (Data.pouse == 0 && Data.player.getX() < 560) {
Data.player.right();
Data.a = 4;
}
}
if (key == KeyEvent.VK_P) {
Data.pouse = 1;
}
if (key == KeyEvent.VK_O) {
Data.pouse = 0;
}
}
@Override
public void keyReleased(KeyEvent e) {
super.keyReleased(e);
int key = e.getKeyCode();
if (key == KeyEvent.VK_J) {
if (Data.pouse == 0 && Data.a == 1) {
int x = Data.player.getX() + 16;
int y = Data.player.getY() - 5;
Bullet bullet = new Bullet(x, y, Data.a);
Data.zdList.add(bullet);
return;
}
if (Data.pouse == 0 && Data.a == 2) {
int x = Data.player.getX() + 16;
int y = Data.player.getY() + 32;
Bullet bullet = new Bullet(x, y, Data.a);
Data.zdList.add(bullet);
return;
}
if (Data.pouse == 0 && Data.a == 3) {
int x = Data.player.getX() - 10;
int y = Data.player.getY() + 15;
Bullet bullet = new Bullet(x, y, Data.a);
Data.zdList.add(bullet);
return;
}
if (Data.pouse == 0 && Data.a == 4) {
int x = Data.player.getX() + 38;
int y = Data.player.getY() + 15;
Bullet bullet = new Bullet(x, y, Data.a);
Data.zdList.add(bullet);
return;
}
}
}
}
写作不易,既然来了,不妨点个关注,点个赞吧!!!
java实现坦克大战(功能丰富)相关教程
java坦克大战墙_java实现坦克大战(功能丰富)相关推荐
- java如何实现下载_java 如何实现下载功能
展开全部 import java.io.File; import java.io.FileNotFoundException; import java.io.IOException; import j ...
- java程序 联机方法_Java实现Tank大战联机版
前言 在前面对于Java初学者开发简单的桌面游戏的碰撞检测的总结中,笔者特意去翻了翻U盘里面 的东西.发现以前用Java做的Tank大战游戏还静静的躺在那个角落.现在将其分享出来.陆续的 也会将以前做 ...
- java怎么连发子弹_JAVA之坦克子弹连发以及敌人坦克死亡
总结一下几点 1:在hero中修改子弹,并且把原有初始化子弹语句初始化,利用线程安全的集合类 Vector来进行,并在switch中进行加入 Vector ss=new Vector(); show ...
- java注册用户代码_java用户管理注册功能 含前后台代码
本文实例为大家分享了java用户注册功能,供大家参考,具体内容如下 主页面: 浏览器显示: 代码实现: 用户信息管理 用户注册: 姓名: 密码: 查看所有用户 注册功能: 浏览器显示: 1)注册成功: ...
- java 拖拽生成_JAVA UI 拖拽功能
java GUI拖拽功能是很实用也相对高级一些的功能. 有一小部分的GUI控件支持 他们有dragEnabled属性.这些JComponent包括: javax.swing.JColorChooser ...
- java方法示例注释 @_Java 8中的功能接口是什么? @功能注释和示例
java方法示例注释 @ 函数接口是Java 8最重要的概念之一,实际上为lambda表达式提供了动力,但是许多开发人员没有首先了解函数接口在Java 8中的作用就花了很多精力来理解它,并花时间学习l ...
- java斗地主随机发牌_java实现斗地主发牌功能
本文实例为大家分享了java实现斗地主发牌的具体代码,供大家参考,具体内容如下 参考斗地主的游戏规则,完成一个发牌的功能(54张牌,考虑点数,花色:三名玩家,其中地主比其他玩家多3张牌) 代码如下: ...
- java中的日历_Java中的日历功能
java.util.calendar类提供Java中的日历功能.是一个抽象类,提供在特定时间点和一组日历字段(例如YEAR,MONTH,DAY_OF_MONTH,HOUR等)之间进行转换的方法,以及用 ...
- Java购物车前端代码_java web实现购物车功能的java购物车代码示例代码
/** *用户登录 * *@ */ (){ //用户登录的时候,去读取,并且进行持久话操作,更多的登录操作这里省略啦.... (); } /** *加入购物车br我的Java学习交流QQ群:我们一起学 ...
- java按顺序发牌_Java实现斗地主发牌功能(含按顺序发牌和玩家牌排序显示等功能)...
斗地主是全国范围内的一种桌面游戏,尽管全国各种类型,但大同小异,今天我们先来实现一下斗地主中的发牌功能,为了程序的可读性以及可拓展性,此次我们使用面向对象的方法来实现此功能. 首先,斗地主要求有扑克和 ...
最新文章
- BUUCTF(pwn)starctf_2019_babyshell
- [深度学习]CNN--卷积神经网络中用1*1 卷积有什么作用
- SQL连接查询深度探险
- php json.parse,JSON.parse()与JSON.stringify()和eval()使用方法详解
- 将自己名字PS到他人论文上,并推文说在Nature上发了新文章,如此操作你见过吗?...
- Vue设置全局loading(加载动画)功能:
- 【跨域问题】springBoot + VUE解决跨域问题几种处理方案
- 没有执行力,一切都是0,优秀都会沦为平庸
- 然爸读书笔记(2014-4)----史玉柱自述:我的营销心得
- 社区专家谈 12306
- 计算机的网关地址是什么,什么是网关 网关地址是什么
- Win10禁用管理员帐户后无法进入的两种解决方法
- 【python 监控报警】python 免费短信报警和电话报警
- 高等数学极限运算法则
- 通过枚举法暴力破解6位数以内zip密码压缩包,使用pyzipper包:内嵌生成1-6位数字加密码所有组合函数
- 原厂对NPI安全稽核要求
- 索引原理-索引数据结构
- Android 停车地图及停车导航,停车场蓝牙定位导航方案
- 从键盘上输入一个字符,判断并输出是控制符、数字字符、大写字母、小写字母或是其他字符
- #loj3059 HNOI2019 序列