《Java小游戏实现》:坦克大战(最后一点附加功能的实现)
相关博文
《Java小游戏实现》:坦克大战http://blog.csdn.net/u010412719/article/details/51712663
《Java小游戏实现》:坦克大战(续一):http://blog.csdn.net/u010412719/article/details/51723570
《Java小游戏实现》:坦克大战(续二):http://blog.csdn.net/u010412719/article/details/51729655
《Java小游戏实现》:坦克大战(续三):http://blog.csdn.net/u010412719/article/details/51735013
《Java小游戏实现》:坦克大战(续四):http://blog.csdn.net/u010412719/article/details/51741059
最后一点要完成的功能如下
1、加入超级技能,例如:连发,大炮弹等。
2、为我方坦克加入生命值、血条
3、加入血块
完成功能:加入超级技能,例如:连发,大炮弹
完成这个功能比较简单。
在Tank类 中的事件处理中,加入一个按键B的事件,superfire()函数就是在8个方向上个产生一个炮弹。
//键盘按键松下时,也要进行记录
public void keyReleased(KeyEvent e) {
int key=e.getKeyCode();
switch(key){
//其它的case省略
//大绝招
case KeyEvent.VK_B:
if(this.live&&this.good){
tc.getMissiles().addAll(superFire());
}
break;
}
superFire()实现代码如下
//根据当前方向发射子弹
public Missile fire(Direction dir){
//计算子弹的位置,并利用炮筒的方向来new一个子弹对象
int x = this.x +(this.WIDTH)/2 - (Missile.WIDTH)/2;
int y = this.y + (this.HEIGHT)/2 -(Missile.HEIGHT)/2;
//根据坦克的类型(good)来new与之对应的子弹类型
Missile ms = new Missile(x,y,dir,this.good,this.tc);
return ms;
}
/*
* 函数功能:8个方向各发射一颗子弹
* */
public List<Missile> superFire(){
Direction[] dirs = Direction.values();
List<Missile> missiles =new ArrayList<Missile>();