由于本人最近的长期自闭,因此找了一个坦克大战的j2se的小东西,准备开始做出来(虽然这个坦克长得有点不伦不类,但是,麻雀虽小五脏俱全)。此次做的是一个单机版(联网版下次再说),emmm,先给演示一下运行时的亚子吧。

手写【坦克大战】(从自闭到更自闭!)

嘿嘿,红的这个字是我设计的墙,红色的小方块是血包。吃完就是大哥。丑不丑的先不说了 ,先哒哒哒哒哒再说....(真好玩!!!....)

分析一下做坦克大战时需要的一些知识和注意的点:

1.需要使用java画图基础,(这个版本没有用到任何图片资源文件)。需要画出区域,坦克,还有墙。

2.关于解决画面刷新频率过高,而导致的闪烁现象,可以采用双重缓冲技术,可以有效解决!

3.关于坦克的8个方向移动问题,需要枚举出8个方向,并添加监听器。

4.关于坦克子弹的射击问题,怎么样让坦克打出子弹来(其实就是画出一个圆圈)。

5.关于坦克被子弹打掉的问题以及不能打己方坦克问题,(需要涉及到碰撞监测,Rectangle 的 getRect intersects()方法),并需要给坦克和子弹加上标识(相对而言,谁是好的,谁是坏的)

6.关于坦克爆炸的处理,当坦克被子弹打中,应该产生爆炸(利用画图,在被打中的坦克周围画出爆炸的效果)。

7.关于坦克和子弹的消亡,在坦克被打中之后,坦克和子弹应该消失(不然就是穿甲弹和隐形战机!!!),因此需要给坦克一个life属性。

8.关于坦克与子弹出界问题,(世界这么大,坦克可不能乱跑),我们需要检测坦克的位置,不能超过我们设计的地图!

9.关于墙的设计,血块(吃完就加满血)的设计。子弹不能穿墙,坦克不能穿墙(为了增加“可玩性”,此版本我方可以穿墙,敌方不能穿墙!),因此这里也需要涉及到碰撞检测问题,和第五条一样!

10.关于血条的显示,这个就比较简单,只要在坦克上方画出血条即可,假设满血量为100,那么血条的长度可以设计为:满血长度 * (当前血量/100)。

11.原地复活,f12,增加敌方坦克,f11,方向键控制坦克移动,ctrl键发射子弹。

12.神秘技能(你猜啊),不用你充一分钱,就可以使用大招,灭霸的待遇!!!(请自行摸索!)

(写完忽然发现还有东西没写到)补充:关于炮筒及其方向:利用数学知识(画个圆做加减法),从坦克的圆中心画一条线即可!(方向与当前坦克保持一致!)

好了就到这里了,jar包也会发出来,jdk版本为8!直接运行即可!↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

https://download.csdn.net/download/weixin_43249548/11913712

↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑

 

相关文章:

  • 2020-05-28
  • 2021-08-23
  • 2021-10-22
  • 2021-10-19
  • 2021-11-14
  • 2021-10-19
  • 2021-11-14
  • 2022-01-17
猜你喜欢
  • 2021-11-15
  • 2022-12-23
  • 2022-02-09
  • 2021-11-04
  • 2021-10-19
相关资源
相似解决方案