java怎么连发子弹_JAVA之坦克子弹连发以及敌人坦克死亡

本文介绍了如何在JAVA游戏中实现坦克的子弹连发和敌人坦克死亡的逻辑。通过使用线程安全的Vector集合存储子弹,并在paint方法中循环绘制和判断子弹状态。同时,详细阐述了敌人坦克被击中消失的条件判断及处理方法。
摘要由CSDN通过智能技术生成

总结一下几点

1:在hero中修改子弹,并且把原有初始化子弹语句初始化,利用线程安全的集合类  Vector来进行,并在switch中进行加入

Vector ss=new Vector();

show s=null;

2:在paint中画出子弹

for(int i=0;i

{

//取出子弹

show s=hero.ss.get(i);

if(s!=null&&s.Vlist==true)

{

//先判断子弹是否为空

g.draw3DRect(s.x,s.y, 1,1, false);

}

//如果子弹没有则删除前面打出的子弹

if(s.Vlist==false)

{

//从ss中删除掉该子弹

hero.ss.remove(s);

}

}

3:上面画出许多子弹,但是我么为对其进行判断,当按下J

//判断是否按下J键发射子弹,按下J键则调用发射子弹函数

if(hero.ss.size()<=4) //这条语句控制子弹数,打完5颗子弹就不能打出,做出处理

{

//在第2写上了删除子弹功能,才可以以进行从新发射子弹

this.hero.showEmp();

}

4:敌人坦克消失,在paint画出坦克,坦克被击中必须要2参数,一个是子弹,一个是敌人坦克

//打中敌人坦克后,敌人坦克消失

public void hitTank(show s,BadTank bt)

{

//判断坦克方向

switch(bt.dome)  //判断敌人坦克方向

{

case 0:

case 1:

if(s.x>bt.x&&s.xbt.y&&s.y

{

//子弹击中坦克后消失

s.Vlist=false;

//敌人坦克消失

bt.Tanke=false;

}

case 2:

if(s.x>bt.x && s.xbt.y && s.y

{

//子弹击中坦克后消失

s.Vlist=false;

//敌人坦克消失

bt.Tanke=false;

}

}

}

6:在哪里调用坦克方法,在paint中的run方法中,因为run里面有个刷新方法没进行一次就被判断一次,因此在该方法中定义

//调用敌人坦克方法消失函数

for(int i=0;i

{

//取出子弹

show s=hero.ss.get(i);

//判断子弹是否有效

if(s.Vlist)

{

//取出每个坦克,与他判断

for(int j=0;j

{

//取出坦克

BadTank bt=vt.get(j);

if(bt.Tanke)  //判断坦克是否还存在

{

this.hitTank(s, bt);

}

}

}

7:在画出坦克中进行判断

//画出敌人的坦克 for(int i=0;i

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值