From 64d4e83a38eb5e47fd91aaf5ab367a2baed011cc Mon Sep 17 00:00:00 2001 From: Michael Date: Tue, 9 Oct 2018 12:38:22 -0400 Subject: [PATCH] Had to do some format changes becacuse the ammount of empty space drove me crazy. Also changed useless code and fixed a bug where you could shoot when the game hadnt started yet. --- src/tanks/Tanks.java | 247 +++++++++++++------------------------------ 1 file changed, 72 insertions(+), 175 deletions(-) diff --git a/src/tanks/Tanks.java b/src/tanks/Tanks.java index 1522040..a83a556 100644 --- a/src/tanks/Tanks.java +++ b/src/tanks/Tanks.java @@ -48,8 +48,7 @@ public class Tanks newGame(); - key=new KeyListener() - { + key=new KeyListener() { @Override public void keyTyped(KeyEvent e) { @@ -88,17 +87,14 @@ public class Tanks panel = new JPanel() { - protected void paintComponent(Graphics g) - { + protected void paintComponent(Graphics g) { //Paint Wave wave.draw(g); - for(Bullet b: bullets) - { + for(Bullet b: bullets) { b.draw(g); } - for(Enemy en: enemy) - { + for(Enemy en: enemy) { en.draw(g); } g.setColor(Color.BLACK); @@ -112,29 +108,25 @@ public class Tanks g.drawString("Wave: " + wave.waveNum + " Ammo: "+ p.ammo + " Kills: " + wave.kills +" Health: " + p.health + " Time: " + wave.timeCount, 50, fheight + 50); //Pausing the game - if(wave.gameMode == 3) - { + if(wave.gameMode == 3) { g.setColor(Color.WHITE); g.setFont(new Font("Arial" , 1, 40)); g.drawString("PAUSED - PRESS ESC TO CONTINUE" , 75, fheight/2); } - - if(wave.gameMode == 2) - { + + if(wave.gameMode == 2) { + //On screen g.setColor(Color.RED); g.setFont(new Font("Arial" , 1, 40)); g.drawString("You Died" , fwidth/2 - 100, fheight/2); - - + //In black bar g.setColor(Color.WHITE); g.setFont(new Font("Arial" , 1, 25)); g.drawString("Press enter to play", 50, fheight + 100); } - else if(wave.gameMode ==0) - { + else if(wave.gameMode ==0) { g.drawString("Press enter to play", 50, fheight + 100); } - } }; frame.add(panel); @@ -146,29 +138,12 @@ public class Tanks if(wave.gameMode == 1) { p.move(); - for(int i = 0; i < bullets.size(); i ++) - { - try - { - bullets.get(i).move(); - } - catch(Exception ex) - { - - } - + for(int i = 0; i < bullets.size(); i ++) { + bullets.get(i).move(); } - for(int i = 0; i < enemy.size(); i++) - { - try - { - enemy.get(i).move(); - } - catch(Exception ex) - { - - } + for(int i = 0; i < enemy.size(); i++) { + enemy.get(i).move(); } } wave.waveCheck(); @@ -181,24 +156,17 @@ public class Tanks void newGame() { - bullets = new ArrayList(); - enemy = new ArrayList(); + bullets = new ArrayList<>(); + enemy = new ArrayList<>(); p = new Player(); wave = new Wave(); } - public static void main(String[] arguments) - { - Tanks game = new Tanks(); - - } - - + /* Sub-classes that require the fields in tanks */ - - + /** * the player class which extends the living class * a player has a turret and an int kills @@ -294,55 +262,37 @@ public class Tanks t.y = y; } - void updateDir(KeyEvent e, boolean pressed) - { + void updateDir(KeyEvent e, boolean pressed) { int id=e.getKeyCode(); - if(id== KeyEvent.VK_UP) - { + if(id== KeyEvent.VK_UP) { up=pressed; } - else if(id==KeyEvent.VK_DOWN) - { + else if(id==KeyEvent.VK_DOWN) { down=pressed; } - else if(id==KeyEvent.VK_LEFT) - { + else if(id==KeyEvent.VK_LEFT) { left=pressed; } - else if(id==KeyEvent.VK_RIGHT) - { + else if(id==KeyEvent.VK_RIGHT) { right=pressed; } - else if(id==KeyEvent.VK_A) - { + else if(id==KeyEvent.VK_A) { rleft = pressed; } - else if(id==KeyEvent.VK_D) - { + else if(id==KeyEvent.VK_D) { rRight = pressed; } - else if(id==KeyEvent.VK_R && wave.gameMode ==1) - { + else if(id==KeyEvent.VK_R && wave.gameMode ==1) { ammo=10; } - else if(id==KeyEvent.VK_SPACE) - { - if(pressed) - { - if (shoot) - { + else if(id==KeyEvent.VK_SPACE && wave.gameMode !=0) { + if(pressed) { + if (shoot) { shoot(); shoot=false; } - else - { - - } - - } } - } void shoot() { @@ -418,32 +368,25 @@ public class Tanks } //Moving the bullet - public void move() - { + public void move() { super.move(-1); //Checks if the bullet goes off screen, if so... it get removed - if(x < 0 || x > fwidth) - { + if(x < 0 || x > fwidth) { bullets.remove(this); } - if (y < 0 || y > fheight) - { + if (y < 0 || y > fheight) { bullets.remove(this); } //Checks for collision with enemies, enemy takes damage and byllet is removed - for(int i = 0; i < enemy.size(); i++) - { - if(enemyBullet == false) - { + for(int i = 0; i < enemy.size(); i++) { + if(enemyBullet == false) { boolean collided = this.checkCollision(enemy.get(i)); - if(collided) - { + if(collided) { enemy.get(i).takeDamage(); bullets.remove(this); - if(!enemy.get(i).isAlive) - { + if(!enemy.get(i).isAlive) { enemy.remove(enemy.get(i)); wave.kills++; } @@ -455,12 +398,10 @@ public class Tanks if(enemyBullet) { boolean collided = this.checkCollision(p); - if(collided) - { + if(collided) { p.takeDamage(); bullets.remove(this); - if(!p.isAlive) - { + if(!p.isAlive) { wave.setGameMode(2); } } @@ -476,10 +417,8 @@ public class Tanks * turn left, 1 will cause * it to turn right */ - private class Turret extends RotationalElement - { - public Turret(RotationalElement e) - { + private class Turret extends RotationalElement { + public Turret(RotationalElement e) { width = 50; height = 50; x = e.x; @@ -489,22 +428,16 @@ public class Tanks imageLocation = "turret.png"; super.loadImage(); } - public void shoot() - { - //bullets.add(new Bullet (this)); - } - public void rotate(int e) - { + public void rotate(int e) { super.direction = super.direction + 5*e; } } /* - + A version of the emeny tank that arrives at some point */ private class Tank extends Enemy { - Bullet b; Turret t; Timer tim; @@ -526,48 +459,32 @@ public class Tanks t.imageLocation = "enemyTurret.png"; t.loadImage(); - al = new ActionListener() - { - @Override - public void actionPerformed(ActionEvent e) - { - if(getAlive()) - { - b = new Bullet(t); - b.enemyBullet=true; - bullets.add(b); - } - - } - + al = e -> { + if(getAlive()) { + b = new Bullet(t); + b.enemyBullet=true; + bullets.add(b); + } }; tim = new Timer(3500,al); tim.start(); - - } - public void draw (Graphics g) - { + public void draw (Graphics g) { super.draw(g); t.draw(g); } - public void move() - { - if(this.distToPlayer(p)>250) - { + public void move() { + if(this.distToPlayer(p)>250) { direction = angleToPlayer(p); super.move(-1); - if(this.checkCollision(p)) - { + if(this.checkCollision(p)) { p.takeDamage(); this.takeDamage(); - if(isAlive==false) - { + if(isAlive==false) { enemy.remove(this); } - if(!p.isAlive) - { + if(!p.isAlive) { wave.setGameMode(2); } } @@ -579,7 +496,7 @@ public class Tanks } - private class Wave extends DrawableElement + private class Wave extends DrawableElement { /**fields time is continous while playing, gameMode(1=playing, * 2=dead, 3=paused. spawntime keeps a countdown until next spawn, @@ -603,31 +520,19 @@ public class Tanks super.loadImage(); //actionlistener calls spawn every 2 seconds - ActionListener z = new ActionListener() - { - + ActionListener z = new ActionListener() { @Override - public void actionPerformed(ActionEvent e) - { - if(gameMode == 1) - { + public void actionPerformed(ActionEvent e) { + if(gameMode == 1) { spawnZombie(); } - } }; - ActionListener ta = new ActionListener() - { - - @Override - public void actionPerformed(ActionEvent e) - { - if(gameMode ==1) - spawnTank(); - } - + ActionListener ta = e -> { + if(gameMode ==1) + spawnTank(); }; //action listener increments time @@ -636,33 +541,26 @@ public class Tanks spawnZombie.start(); ActionListener t = new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) - { - if(gameMode==1) - { + public void actionPerformed(ActionEvent e) { + if(gameMode==1) { timeCount++; } } - }; time = new Timer(1000,t); time.start(); } - public void setGameMode(int newGameMode) - { + public void setGameMode(int newGameMode) { gameMode = newGameMode; - if(gameMode == 2) - { + if(gameMode == 2) { //Player has died, ending the game time.stop(); //move.stop(); spawnZombie.stop(); spawnTank.stop(); } - else if(gameMode == 4) - { + else if(gameMode == 4) { //Player has won time.stop(); //move.stop(); @@ -670,17 +568,13 @@ public class Tanks spawnTank.stop(); } } - - //spawn method checks if spawn timer ==0 and if so then spawns an //enemy - public void spawnTank() - { + public void spawnTank() { enemy.add(new Tank()); spawnedTanks++; } - public void spawnZombie() - { + public void spawnZombie() { enemy.add(new Zombie()); spawnedZombies++; } @@ -740,7 +634,6 @@ public class Tanks if(kills == 60) { //Game over - } break; } @@ -754,5 +647,9 @@ public class Tanks spawnTank.setDelay(4000); } } + //Main method + public static void main(String[] arguments) { + Tanks game = new Tanks(); + } }