Java坦克大战游戏设计 下载本文

Java大作业报告(截止5月20日)

super.paint(g); //画一个活动区域

g.drawImage(imagebg, 0, 0, 400, 300,this); if(hero.isLive == true){ //画我的坦克

this.drawTank(hero.getX(), hero.getY(), g, this.hero.getDirect(), this.hero.getColor()); }

//从ss中取出每颗子弹,并绘制

for(int i = 0 ; i < this.hero.ss.size() ; i++){ Shot myShot = this.hero.ss.get(i); //画一颗子弹,要先判断是否为空,因为坦克刚创建的时候,没有按J的时候,子弹是空的,这个时候不能画,要不然会异常

if(myShot!=null&&myShot.isLive == true){ g.draw3DRect(myShot.x, myShot.y, 1, 1, false); }

//判断子弹是否死亡,如果死亡,就从Vocetor中移除

Java大作业报告(截止5月20日)

if(myShot.isLive == false){ hero.ss.remove(myShot); } }

//画出敌人的坦克

for(int i = 0 ;i

this.drawTank(et.getX(), et.getY(), g, et.getDirect(), et.getColor()); //画出敌人的子弹

for(int j = 0 ; j

Shot enemyShot = et.ss.get(j); //开始画

if(enemyShot.isLive){ g.draw3DRect(enemyShot.x, enemyShot.y, 1, 1, false); }else{

//如果子弹死亡,就把子弹移除 et.ss.remove(enemyShot);

Java大作业报告(截止5月20日)

} } } }

//画出炸弹

for(int i = 0 ; i < bombs.size(); i++){ //取出炸弹

Bomb b = bombs.get(i);

//画炸弹。根据不同的生命值爆炸不同的大小

if(b.life>6){

g.drawImage(image1, b.x, b.y, 30, 30,this);

}else if(b.life>3){

g.drawImage(image2, b.x, b.y, 15, 15,this);

}else{

g.drawImage(image3, b.x, b.y, 5, 5,this);

Java大作业报告(截止5月20日)

}

//减小炸弹的生命值 b.lifeDown();

//如果炸弹死亡,就移除数组 if(b.life == 0){ bombs.remove(b); } } }

//判断敌人是否击中我 public void hitMe(){ //取出每一个敌人

for(int i = 0 ; i < this.ets.size() ; i++){ //取出坦克

EnemyTank et = ets.get(i); //取出每一辆坦克的子弹

for(int j = 0 ; j < et.ss.size() ; j++){ //取出子弹

Shot enemyShot = et.ss.get(j); this.hitTank(enemyShot, hero); }

Java大作业报告(截止5月20日)

} }

//判断我的子弹是否击中敌人的坦克 public void hitEnemyTank(){ //判断是否击中

for(int i = 0 ; i < hero.ss.size() ; i++){ //取出子弹

Shot myShot = hero.ss.get(i); //判断子弹是否还活着 if(myShot.isLive){

//遍历敌人坦克,判断子弹和坦克坐标 for(int j = 0 ; j

EnemyTank et = ets.get(j);

if(et.isLive){

this.hitTank(myShot, et); } } } } }