坦克大战(基于java线程)
2016-11-19 16:52
92 查看
坦克大战(基于java线程)
坦克大战是继五子棋后的新项目,基于java的图形化界面以及多线程来实现,主要是锻炼javaSE的基本能力
前言
本人是根据“马士兵”在网易云课堂上所提供的教学视频来做出的坦克大战,基本原理、思路与视频中所体现的一致,当然也有一些实现上的不同,当然这都是一些小细节,主要依据个人感受。这里只是本人的学习心得以及收获。
版本迭代
编程时保存每一个版本,然后都是在上一个版本的基础上进行修改,添加新的功能,这时一种良好的编程习惯功能逐渐完善
在这里把自己的做出的步骤列出,因为是后来补写的博客,所以可能有些地方记不清楚,但也算是一个教训,以后应该边做边记录所遇到的问题,解决办法以及收获心得,最后整理发布博客。绘制窗体并设置背景色,画出一个自由下落的球体,着色
利用双缓冲来解决屏幕刷新时闪烁的问题
对键盘进行监听,可以控制小球的移动方向
整合代码,根据面对对象的思想,分离出Tank类
小球可以拥有更多的移动方向,但是存在bug
解决移动时存在的bug,并且画出tank的炮口
按发射键可以发射出一颗炮弹,并且炮弹的方向可以随tank移动的方向改变
整合代码,根绝面向对象思想,分离出Missile类
对tank的炮口进行优化,优化炮弹的移动
可以发射多发炮弹,并显示在屏幕左上角
解决tank的出界问题
添加敌方tank,可以被炮弹击中并消失
添加爆炸效果,当tank被击中时发生爆炸
可以自行添加多辆敌方tank
敌方tank可以自主移动
敌方tank可以发射子弹,并且可以互相击中并产生爆炸
优化tank的重叠碰撞问题
添加障碍物,炮弹无法穿越障碍物
设置敌方tank低于一定数量后会自动添加,己方tank死亡后会随机出现在不同的位置
己方tank添加作弊键,炮火增强
可以记录最高分并保存
实现效果
运行截图:心得
做出这个坦克大战对于检查javaSE的掌握程度时很有帮助的,也增强了学习的信心,建议学习javaSE的初学者也都去自己做出一个”TankWar”相关文章推荐
- JAVA线程的应用实例(运用2种中断线程方式,基于实现进度条为例)
- java基于线程的分布式
- 基于java线程安全问题及原理性分析
- 【JAVA】对线程轮替执行的一点补充 基于显示锁、隐式锁的两种实现
- Netty学习之旅------线程模型前置篇Reactor反应堆设计模式实现(基于java.nio)
- 基于 JVMTI 实现 Java 线程的监控
- Java小程序之球球大作战(基于Java线程实现)
- Java笔记系列(基于马士兵的课堂)(6)-线程
- JAVA线程的应用实例(运用2种中断线程方式,基于实现进度条为例)
- 基于 JVMTI 实现 Java 线程的监控
- 停止java基于线程的服务
- 复习基础-JAVA多线程,基于Condition实现子线程、主线程顺序处理
- Java__线程---基础知识全面实战---坦克大战系列为例
- 基于 Java 2 运行时安全模型的线程协作--转
- JAVA线程的应用实例(运用2种中断线程方式,基于实现进度条为例)
- java基于AbstractQueuedSynchronizer实现资源共享锁,限制并发线程数目
- 基于java 线程的几种状态(详解)
- 基于 Java 2 运行时安全模型的线程协作
- 通过培训学到的一个java的基于线程,网络编程等的文件多线程断点下载器(断点功能还在操作实践中)
- 基于java的坦克大战实例