坦克大战--Java类型
写在前面
Java编译器下载教程(真的良心):https://blog.csdn.net/Haidaiya/article/details/81230636
本项目为本人独自制作,请各位尊重我的努力成果谢谢。同时,这个项目中也存在一些问题,请见谅。
本项目需要启动服务器,在类Server中启动主函数,随后启动类Main中的main方法即可开始运行,服务器的地址默认为本地,如需修改,请在类Client中进行修改,谢谢。
本项目中的图片音乐均来自网络,请不要用于商用(说起来我也不知道是否可以),仅用于学习和自己本地玩就好,否则,后果自负。
文件源码和图片在博客最后面
项目要求

项目制作思路
(1)为了实现图形界面,我们需要学习一波JFrame(画框),JPanel(画布 ), JButton(按钮)等等.....具体请参考我的另一篇博客
(2)自定义按键,嗯,学习一波KeyListener,为了能够使用JButton(按钮)进行各种操作,学习一波ActionListener;同时,为了能够让用户更好的自定义按键,采用JComboBox(多选框)进行选择,学习一波嗯。
(3)计时器,嗯,多线程
(4)联系移动,嗯,这个设置为,每次点击移动键后,将坦克位置移动相同距离就好了
(5)障碍物,嗯,为了更好的游戏体验,我用了7天试用期的PS CC 完成了所有图片制作,不得不说,PS是个好东西。图片都是网上找,然后用PS进行修改。同时,为了可以判断坦克和坦克之间、坦克和墙之间、子弹和墙、坦克之间的碰撞,专门用了一个Jduge类来判断各种碰撞,同时也进行坦克移动的判断。
(6)AI坦克,嗯,偷了个懒,我用的是随机数,让坦克往一个方向一段一段距离,期间每隔一段时间,射出炮弹,同时遇到墙或者坦克就换一个方向继续行走。
(7)服务器,嗯,学习一波socket
扩展内容
(1)作为一个游戏,怎么能没有好的background和background music呢,为此使用了PS CC进行背景处理,又学习了一个剪辑音乐的软件,说起来,我这个剪辑音乐的软件真心不错,还可以剪辑视频呢,微软商城找的,名字是剪影,轻度广告,而且你一般看不到(只在导出文件的时候弹出,而且不会挡住屏幕,比某剪辑良心不少)
(2)然后,障碍物、子弹、坦克的图片也很重要,为此,借助了PS CC 和百度的强大,完成了这方面的制作。
(3)由于一般的游戏不止有一个地图,为了制作多个地图,我利用excel进行构建地图(说起来,这个还真是好用)
(4)对于音乐,我们需要学习一波URI , URL ,AudioClip等等,具体内容请百度或者看我的另一篇博客。我的音乐可能不让各位满意,如需更改,请在类Music进行修改。
(5)之后,在项目完成的前几天,我觉得gif是个好东西,为此又下了一个软件进行gif制作.....说到gif,我有觉得,如果可以实现点击图片,然后.....(不剧透,因为也就那么回事)
(6)为了增加游戏体验,我为部分墙壁增加了奖励物品,包括加速,伤害增加,加血等等,其中在第三关,我增加了随机生成岩浆的功能,就是因为这个功能,我自己都很少过关(微笑)。本来最开始的时候想过进行坦克升级的,后来做完了后忘记了,现在因为没有PS了,所以就放弃了,哎,PS是个好东西呀!
(7)然后呢,似乎没得写了耶,最后的扩展就是........(永远不可能停止更新的游戏,“只要你肯加”)。
游戏截图




写在最后
这个项目我也是写了比较久的,这篇文章是个综述,游戏的源码也放在这里,之后会写几篇博客,分开讲解整个程序。算是作为Java学习的总结了。
文件源码(包括图片)
下载链接:https://pan.baidu.com/s/1j-FDcvwuLST6hr8my2F3QA
提取码:qwdz
二维码:
坦克大战--Java类型的更多相关文章
- 坦克大战--Java类型 ---- (2)按键设置和用户名的输入
一.实现思路(emmmm,这个地方我很大程度参照了别人的写法) 由于键盘按键众多,因此使用选择框JComboBox 进行按键选择,点击一个JButton 按钮后,读取所有选择框中的内容,然后存到一 ...
- 坦克大战--Java类型 ---- (3)实现socket通信
一.实现思路 使用socket通信的一些方法来实现socket通信,客户端和服务端两边需要约定好通信的接口Port(尽量选高的),客户端需要服务端的IP地址,以实现数据交流. 同时,客户端和服务端需要 ...
- 坦克大战--Java类型 ---- (1)音乐播放
实现原理 我用接口java.applet.AudioClip实现音乐播放,那么我们需要了解这个接口的情况. 我们主要使用其中的三个方法: (1)void loop(); //循环播放(2)void p ...
- 坦克大战java版
吃了可以加血的血块类 import java.awt.*; public class Blood { //血块移动的路径 int[][] pos = { {450,250},{450,252},{45 ...
- java制作简单的坦克大战
坦克大战是我们小时候玩红白机时代的经典游戏,看到有不少小伙伴都使用各种语言实现了一下,手痒痒,也使用java做的一个比较简单的坦克大战,主要面向于学过Java的人群,与学了一段时间的人,有利于面向对象 ...
- Java小项目--坦克大战(version1.0)
Java小项目--坦克大战<TankWar1.0> 这个小项目主要是练习j2se的基础内容和面向对象的思想.项目实现了基本的简单功能,我方一辆坦克,用上下左右键控制移动方向,按F键为发射炮 ...
- Java坦克大战(四)
这是我的坦克游戏大战的最后一版,里面添加很多新的功能.这个坦克大战的有很多不足之处,但是对于初学者来说依然是一个很好的练习项目,从中我们可以学习Java基础知识,将知识与项目结合,学习面向对象编程思想 ...
- Java坦克大战(三)
关于这个坦克大战的项目是在学习Java基础的时候,拿来练习的最近看到这些代码,感觉很亲切,就把他们都复制下来,编辑成博客.回首看去,Java基础的学习确实应该建立在找项目练习上,这样才能将学到的基础知 ...
- Java坦克大战(二)
本文紧接上一篇讲解坦克大战这个项目,因为当初在学习的时候,是以这个案例逐步学习Java基础的,过程是先讲知识点,再将知识点逐步的融入到项目中,即给坦克添加新的功能.之前的Demo练习,想都记录下来.这 ...
随机推荐
- 网络共享服务—SAMBA服务
SAMBA服务简介 SMB:Server Message Block服务器消息块,IBM发布,最早是DOS网络文件共享协议 Cifs:common internet file system,微软基于S ...
- Colab 实用教程
Google Colab 是什么? Google Colab 是一个免费的云服务,现在它还支持免费的 GPU! 你可以: 提高你的 Python 语言的编码技能. 使用 Keras.TensorFlo ...
- Postgresql - MATERIALIZED VIEW
MATERIALIZED VIEWPG 9.3 版本之后开始支持物化视图.View 视图:虚拟,不存在实际的数据,在查询视图的时候其实是对视图内的表进行查询操作. 物化视图:实际存在,将数据存成一张表 ...
- idea 使用maven 下载源码包
方式1:全量下载源码包 方式二:下载单个源码包 随便找个源码可以看到文件上有download (标识下载源码包) choose sources表示选择那个版本的源码包
- shell命令:getevent和sendevent
1.getevent 输出所有event设备的基本信息 输出格式: 设备名: 事件type 事件code 事件value 注意:这里的数字都是16进制. getevent -c 10 //输出10条信 ...
- android studio gradle国内代理设置
android studio在开始都各项目之前都会遇到 gradle 的同步,而在同步过程中很多依赖下载特别慢甚至出现无法现在的情况,有的时候等的时间特别长,甚至要一天,关键是等了大半天之后突然报错, ...
- 013-java中的IO操作-InputStream/Reader、OutputStream/Writer
一.概述 IO流用来处理设备之间的数据传输,上传文件和下载文件,Java对数据的操作是通过流的方式,Java用于操作流的对象都在IO包中. 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称 ...
- 安装Oracle11g出现INS-13001环境不满足最低要求
原版:https://blog.csdn.net/Q_Sea__/article/details/79012808 第一次安装Oracle11g,就出现这个问题,就找了一些解决方案.现在总结一下. 出 ...
- ubuntu Tensorflow object detection API 开发环境搭建
https://blog.csdn.net/dy_guox/article/details/79111949 luo@luo-All-Series:~$ luo@luo-All-Series:~$ s ...
- 图解 HTTP 笔记(七)——HTTPS
本章主要讲解 HTTPS 的基本原理,以及如何利用 HTTPS 防范 HTTP 通信过程中存在的伪装.窃听.篡改等问题 一.HTTP 的缺点 HTTP 在通信过程中会面临以下三种安全问题: 通信使用明 ...