坦克大战--Java类型

写在前面

      本项目为本人独自制作,请各位尊重我的努力成果谢谢。同时,这个项目中也存在一些问题,请见谅。

        本项目需要启动服务器,在类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

二维码:

 

 

猜你喜欢

转载自www.cnblogs.com/winter-bamboo/p/10692527.html