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实现坦克大战(功能丰富)相关推荐

  1. java如何实现下载_java 如何实现下载功能

    展开全部 import java.io.File; import java.io.FileNotFoundException; import java.io.IOException; import j ...

  2. java程序 联机方法_Java实现Tank大战联机版

    前言 在前面对于Java初学者开发简单的桌面游戏的碰撞检测的总结中,笔者特意去翻了翻U盘里面 的东西.发现以前用Java做的Tank大战游戏还静静的躺在那个角落.现在将其分享出来.陆续的 也会将以前做 ...

  3. java怎么连发子弹_JAVA之坦克子弹连发以及敌人坦克死亡

    总结一下几点 1:在hero中修改子弹,并且把原有初始化子弹语句初始化,利用线程安全的集合类  Vector来进行,并在switch中进行加入 Vector ss=new Vector(); show ...

  4. java注册用户代码_java用户管理注册功能 含前后台代码

    本文实例为大家分享了java用户注册功能,供大家参考,具体内容如下 主页面: 浏览器显示: 代码实现: 用户信息管理 用户注册: 姓名: 密码: 查看所有用户 注册功能: 浏览器显示: 1)注册成功: ...

  5. java 拖拽生成_JAVA UI 拖拽功能

    java GUI拖拽功能是很实用也相对高级一些的功能. 有一小部分的GUI控件支持 他们有dragEnabled属性.这些JComponent包括: javax.swing.JColorChooser ...

  6. java方法示例注释 @_Java 8中的功能接口是什么? @功能注释和示例

    java方法示例注释 @ 函数接口是Java 8最重要的概念之一,实际上为lambda表达式提供了动力,但是许多开发人员没有首先了解函数接口在Java 8中的作用就花了很多精力来理解它,并花时间学习l ...

  7. java斗地主随机发牌_java实现斗地主发牌功能

    本文实例为大家分享了java实现斗地主发牌的具体代码,供大家参考,具体内容如下 参考斗地主的游戏规则,完成一个发牌的功能(54张牌,考虑点数,花色:三名玩家,其中地主比其他玩家多3张牌) 代码如下: ...

  8. java中的日历_Java中的日历功能

    java.util.calendar类提供Java中的日历功能.是一个抽象类,提供在特定时间点和一组日历字段(例如YEAR,MONTH,DAY_OF_MONTH,HOUR等)之间进行转换的方法,以及用 ...

  9. Java购物车前端代码_java web实现购物车功能的java购物车代码示例代码

    /** *用户登录 * *@ */ (){ //用户登录的时候,去读取,并且进行持久话操作,更多的登录操作这里省略啦.... (); } /** *加入购物车br我的Java学习交流QQ群:我们一起学 ...

  10. java按顺序发牌_Java实现斗地主发牌功能(含按顺序发牌和玩家牌排序显示等功能)...

    斗地主是全国范围内的一种桌面游戏,尽管全国各种类型,但大同小异,今天我们先来实现一下斗地主中的发牌功能,为了程序的可读性以及可拓展性,此次我们使用面向对象的方法来实现此功能. 首先,斗地主要求有扑克和 ...

最新文章

  1. BUUCTF(pwn)starctf_2019_babyshell
  2. [深度学习]CNN--卷积神经网络中用1*1 卷积有什么作用
  3. SQL连接查询深度探险
  4. php json.parse,JSON.parse()与JSON.stringify()和eval()使用方法详解
  5. 将自己名字PS到他人论文上,并推文说在Nature上发了新文章,如此操作你见过吗?...
  6. Vue设置全局loading(加载动画)功能:
  7. 【跨域问题】springBoot + VUE解决跨域问题几种处理方案
  8. 没有执行力,一切都是0,优秀都会沦为平庸
  9. 然爸读书笔记(2014-4)----史玉柱自述:我的营销心得
  10. 社区专家谈 12306
  11. 计算机的网关地址是什么,什么是网关 网关地址是什么
  12. Win10禁用管理员帐户后无法进入的两种解决方法
  13. 【python 监控报警】python 免费短信报警和电话报警
  14. 高等数学极限运算法则
  15. 通过枚举法暴力破解6位数以内zip密码压缩包,使用pyzipper包:内嵌生成1-6位数字加密码所有组合函数
  16. 原厂对NPI安全稽核要求
  17. 索引原理-索引数据结构
  18. Android 停车地图及停车导航,停车场蓝牙定位导航方案
  19. 从键盘上输入一个字符,判断并输出是控制符、数字字符、大写字母、小写字母或是其他字符
  20. #loj3059 HNOI2019 序列

热门文章

  1. 从《牛津高阶英汉词典》中提取单词(2)
  2. NS3000 电子海图长江导航应用分析
  3. Windows Server AppFabric分布式缓存详解
  4. 【直播录像】FLV缺帧视频处理方案
  5. 经典散文集锦:读者杂志卷首语大荟萃
  6. 为 昂达 v891 安装上了 remix OS 了
  7. 技术总监和CTO的区别 浅谈CTO的作用----软件公司如何开源节流
  8. mysql 空串 0_casewhen遇到空串转成0
  9. cmd 编译class 文件
  10. chrome被hao123主页绑架的解决