分析
1、因为敌人的坦克是在 MyPanel上、所以我们的代码也在MyPanel上
2、因为敌人的坦克,后面有自己特殊的属性和方法、可以单开一个EnemyTank实体类
3、敌人坦克数量多、可以放入到集合Vector,因为考虑到多线程问题
步骤
生成敌人坦克实体类
package com.tank.tankgame2;
public class EnemyTank extends Tank {
public EnemyTank(int x, int y) {
super(x, y);
}
}
在MyPanel中初始化敌人的坦克,并画出敌人坦克
public MyPanel(){
hero = new Hero(100,100); // 初始化自己的坦克
hero.setSpeed(5);
for(int i=0;i<enemyTankSize;i++){
EnemyTank enemyTank = new EnemyTank((100*(1+i)),0);
// 设置方向
enemyTank.setDirect(2);
enemyTanks.add(enemyTank);
}
}
@Override
public void paint (Graphics g){
super.paint(g);
g.fillRect(0,0,1000,750); // 填充矩形,默认黑色
// 画出坦克-封装方法
drawTank(hero.getX(),hero.getY(),g,hero.getDirect(),1);
// 画出敌人的坦克
for(int i =0;i<enemyTanks.size();i++){
EnemyTank enemyTank = enemyTanks.get(i);
drawTank(enemyTank.getX(),enemyTank.getY(),g,enemyTank.getDirect(),0);
}
}
网友评论