本文主要是介绍手写【坦克大战】(从自闭到更自闭!),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
由于本人最近的长期自闭,因此找了一个坦克大战的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
↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
这篇关于手写【坦克大战】(从自闭到更自闭!)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!