我们在设置坦克游戏的时候,需要想好我们要设置我方坦克+敌方坦克(此时就需要两个类class--MyTank(我方坦克)+EnemyTank(敌方坦克))
【第一步】:为了避免它二位打架,直接写一个父类封装好所有要求,让我方坦克+敌方坦克去继承即可。父类坦克所需的属性和方法如下:
紧接着写我方坦克(Class MyTank)
【第二步】: 开始先写我方坦克,因为我方坦克就一个,方便简单些。首先我们需要一个坦克画板类(class TankPanel),画板要绘制坦克画,必须得继承java给定的一个Jpanel你才能调出它的绘画方法paint(Graphics g)--可以把这里的g当成是绘画方法里面的一直画笔
【注】如果只画一个简单的圆或者其他,可以直接在paint()方法里添加绘画即可,但是此时是画坦克有左右两个矩形柱子+正方形身体+圆圈+炮筒,画的实在是太多,所以可以在TankPanel类里面重新写一个drawTank()的方法,定义好参数,既画出我方坦克也可以画出敌方坦克,根据颜色和方向
此时可以检测出我方坦克柱子画的是否符合要求--后面身体圆形炮筒也是以此类推
【第三步】:让我方坦克移动
想一想:需要按键才能移动,无论你输入WSAD或者↑↓←→代表 移动,需要让MyPanel去实现一个时间监听功能接口KeyLinstener,并且实现它里面的KeyPress()的方法,在里面输入你的要求即可。
【第四步】:设置敌方坦克数量(先定3个)同一坦克,它是实例,可以放入集合内,选择Vector,因为ArrayList线程不安全,导致你打了A敌方坦克,结果B敌方坦克灭了,A坦克还在!!!并且同时也要在画板里画敌方坦克
【注】出现了一个bug,就是敌方炮筒和我方炮筒长度不同。还有一个就是我方炮筒会随方向的移动而变长变短。暂时我这会儿看不出来为什么。没准以后就看出来了,哈哈哈!!!
【解答】在事件监听那里,必须要把方向也写上,否早炮筒不会改变方向
还有方向最好从上右下左顺序 90度来弄。