|
|
@ -9,19 +9,20 @@ import java.util.ArrayList;
|
|
|
|
import java.util.List;
|
|
|
|
import java.util.List;
|
|
|
|
|
|
|
|
|
|
|
|
public class TankFrameV4 extends Frame {
|
|
|
|
public class TankFrameV4 extends Frame {
|
|
|
|
public static final int GAME_WIDTH = 800;
|
|
|
|
public static final int GAME_WIDTH = 1080;
|
|
|
|
public static final int GAME_HEIGHT = 600;
|
|
|
|
public static final int GAME_HEIGHT = 800;
|
|
|
|
Image image = null;
|
|
|
|
Image image = null;
|
|
|
|
|
|
|
|
|
|
|
|
Tank tank = new Tank(500, 500, Direction.UP, Group.GOOD,this);
|
|
|
|
Tank tank = new Tank(380, 660, Direction.UP, Group.GOOD,this);
|
|
|
|
// Bullet bullet = new Bullet(520, 440, Direction.UP);
|
|
|
|
// Bullet bullet = new Bullet(520, 440, Direction.UP);
|
|
|
|
List<Bullet> bullets = new ArrayList();
|
|
|
|
List<Bullet> bullets = new ArrayList();
|
|
|
|
List<Tank> enemyTanks = new ArrayList<>();
|
|
|
|
List<Tank> enemyTanks = new ArrayList<>();
|
|
|
|
Explode explode = new Explode(200, 300, this);
|
|
|
|
|
|
|
|
|
|
|
|
List<Explode> explodes = new ArrayList<>();
|
|
|
|
|
|
|
|
|
|
|
|
public TankFrameV4(){
|
|
|
|
public TankFrameV4(){
|
|
|
|
setVisible(true);
|
|
|
|
setVisible(true);
|
|
|
|
setBounds(500, 200 , GAME_WIDTH, GAME_HEIGHT);
|
|
|
|
setBounds(400, 100 , GAME_WIDTH, GAME_HEIGHT);
|
|
|
|
setResizable(false);
|
|
|
|
setResizable(false);
|
|
|
|
setTitle("tank war");
|
|
|
|
setTitle("tank war");
|
|
|
|
this.addKeyListener(new MyKeyListener());
|
|
|
|
this.addKeyListener(new MyKeyListener());
|
|
|
@ -54,12 +55,11 @@ public class TankFrameV4 extends Frame {
|
|
|
|
g.setColor(Color.WHITE);
|
|
|
|
g.setColor(Color.WHITE);
|
|
|
|
g.drawString("当前子弹数量:" + bullets.size(), 60, 50);
|
|
|
|
g.drawString("当前子弹数量:" + bullets.size(), 60, 50);
|
|
|
|
g.drawString("当前敌人数量:" + enemyTanks.size(), 60, 80);
|
|
|
|
g.drawString("当前敌人数量:" + enemyTanks.size(), 60, 80);
|
|
|
|
|
|
|
|
g.drawString("当前爆炸数量:" + explodes.size(), 60, 100);
|
|
|
|
g.setColor(color);
|
|
|
|
g.setColor(color);
|
|
|
|
|
|
|
|
|
|
|
|
tank.paint(g);
|
|
|
|
tank.paint(g);
|
|
|
|
|
|
|
|
|
|
|
|
explode.paint(g);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for(int i = 0; i< enemyTanks.size(); i++){
|
|
|
|
for(int i = 0; i< enemyTanks.size(); i++){
|
|
|
|
enemyTanks.get(i).paint(g);
|
|
|
|
enemyTanks.get(i).paint(g);
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -68,11 +68,16 @@ public class TankFrameV4 extends Frame {
|
|
|
|
bullets.get(i).paint(g);
|
|
|
|
bullets.get(i).paint(g);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//碰撞检测
|
|
|
|
for(int i = 0; i< bullets.size(); i++){
|
|
|
|
for(int i = 0; i< bullets.size(); i++){
|
|
|
|
for(int j=0; j< enemyTanks.size(); j++){
|
|
|
|
for(int j=0; j< enemyTanks.size(); j++){
|
|
|
|
bullets.get(i).collideWith(enemyTanks.get(j));
|
|
|
|
bullets.get(i).collideWith(enemyTanks.get(j));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for (int i = 0; i< explodes.size(); i++){
|
|
|
|
|
|
|
|
explodes.get(i).paint(g);
|
|
|
|
|
|
|
|
}
|
|
|
|
// for(Iterator<Bullet> it = bullets.iterator(); it.hasNext();){
|
|
|
|
// for(Iterator<Bullet> it = bullets.iterator(); it.hasNext();){
|
|
|
|
// Bullet b = it.next();
|
|
|
|
// Bullet b = it.next();
|
|
|
|
// if(!b.isLive()){
|
|
|
|
// if(!b.isLive()){
|
|
|
@ -127,7 +132,7 @@ public class TankFrameV4 extends Frame {
|
|
|
|
case KeyEvent.VK_S:
|
|
|
|
case KeyEvent.VK_S:
|
|
|
|
bD = false;
|
|
|
|
bD = false;
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
case KeyEvent.VK_J:
|
|
|
|
case KeyEvent.VK_SPACE:
|
|
|
|
tank.fire();
|
|
|
|
tank.fire();
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
default:
|
|
|
|