diff --git a/Display.class b/Display.class index a6482ca..c21bd02 100644 Binary files a/Display.class and b/Display.class differ diff --git a/Display.java b/Display.java index a453671..6d75a32 100644 --- a/Display.java +++ b/Display.java @@ -18,7 +18,6 @@ public class Display extends JPanel implements KeyListener private double s = 2; private double j = 20; -// private double mX = 10; private double g = 1.5; private double f = 1.3; private double kf = 1.09; @@ -61,6 +60,7 @@ public int[] attackHitBox(Fighter f1) i[1] = (int)(b.getPos()[1]+ f1.getPos()[1]); i[2] = b.getSize()[0]; i[3] = b.getSize()[1]; + return i; } @@ -83,6 +83,7 @@ public void paint(Graphics g) } else if(mode == 1) { + g.setColor(Color.white); g.fillRect(0,yMin, 1000, 10); Color healthbar1 = new Color(255-(int)((dFs[0].getHealth()/totalH) * 255),(int)((dFs[0].getHealth()/totalH) * 255),0);//(int)((dFs[0].getHealth()/totalH) * 255)/2 ); @@ -93,35 +94,54 @@ else if(mode == 1) g.fillRect(480+(465-(int)((dFs[1].getHealth()/totalH) * 465)),10,(int)((dFs[1].getHealth()/totalH) * 465),10); g.setColor(Color.red); + + + if(dFs[0].getAttacking() == 2) + { + g.setColor(new Color(150, 0, 0)); + }else + { + g.setColor(new Color(255, 0, 0)); + } + g.fillRect((int)dFs[0].getPos()[0],(int)dFs[0].getPos()[1],dFs[0].getSize(),dFs[0].getSize()); - if (dFs[0].getBlocking()) { - g.setColor(Color.white); - g.fillRect((int)dFs[1].getPos()[0]+10, (int)dFs[1].getPos()[1]+10, 30, 30); - } - if(dFs[0].getAttacking() == 1){ + if(dFs[0].getAttacking() == 1) + { g.setColor(Color.red); - //g.setColor(Color.green); int[] i = new int[4]; i = attackHitBox(dFs[0]); g.fillRect(i[0],i[1],i[2],i[3]); } - if (dFs[1].getBlocking()) { - g.setColor(Color.white); - g.fillRect((int)dFs[0].getPos()[0]+10, (int)dFs[0].getPos()[1]+10, 30, 30); - } - g.setColor(Color.cyan); - g.fillRect((int)dFs[1].getPos()[0],(int)dFs[1].getPos()[1],dFs[1].getSize(),dFs[1].getSize()); - if (dFs[0].getBlocking()) { - g.setColor(Color.white); - g.fillRect((int)dFs[1].getPos()[0]+10, (int)dFs[1].getPos()[1]+10, 30, 30); + + if(dFs[0].getBlocking() != 0) + { + if(dFs[0].getBlocking() == 1) + { + g.setColor(new Color(255, 255, 255)); + }else + { + g.setColor(new Color(150, 150, 150)); + } + g.fillRect((int) (dFs[0].getPos()[0] + 10) ,(int) (dFs[0].getPos()[1] + 10), dFs[0].getSize() -20 , dFs[0].getSize() - 20); } - - if(dFs[1].getAttacking() == 1){ - g.setColor(Color.cyan); - //g.setColor(Color.green); + + + if(dFs[1].getAttacking() == 2) + { + g.setColor(new Color(0, 150, 150)); + }else + { + g.setColor(new Color(0, 255, 255)); + } + + g.fillRect((int)dFs[1].getPos()[0],(int)dFs[1].getPos()[1],dFs[1].getSize(),dFs[1].getSize()); + + if(dFs[1].getAttacking() == 1) + { + g.setColor(new Color(0, 255, 255)); int[] i = new int[4]; i = attackHitBox(dFs[1]); @@ -129,9 +149,24 @@ else if(mode == 1) g.fillRect(i[0],i[1],i[2],i[3]); } + if(dFs[1].getBlocking() != 0) + { + if(dFs[1].getBlocking() == 1) + { + g.setColor(new Color(255, 255, 255)); + }else + { + g.setColor(new Color(150, 150, 150)); + } + g.fillRect((int) (dFs[1].getPos()[0] + 10) ,(int) (dFs[1].getPos()[1] + 10), dFs[1].getSize() -20 , dFs[1].getSize() - 20); + } + + + }else if(mode == 2) { - g.setFont(new Font("Agency FB", Font.BOLD, 30)); + + g.setFont(new Font("Agency FB", Font.BOLD, 30)); g.setColor(Color.white); g.drawString("Developed By Joseph Rother & Akshan Sameullah",470,570); if(dFs[0].getHealth() > 0) @@ -164,7 +199,6 @@ else if(mode == 1) g2.setFont(new Font("Agency FB", Font.BOLD, 170)); g2.drawString("Blue Wins",250,130); } - } g.dispose(); @@ -180,113 +214,109 @@ public void keyPressed(KeyEvent e) { if (mode == 0){ mode = 1; - }else - if(mode == 1) + } + + if(e.getKeyChar() == 'w') { - if(e.getKeyChar() == 'w') - { - buttons[0][0] = true; - } - if(e.getKeyChar() == 'a') - { - buttons[0][1] = true; - } - if(e.getKeyChar() == 's') - { - buttons[0][2] = true; - } - if(e.getKeyChar() == 'd') - { - buttons[0][3] = true; - } - if(e.getKeyChar() == 'f') - { - buttons[0][4] = true; - } - if(e.getKeyChar() == '/') - { - buttons[0][5] = true; - } - if(e.getKeyCode() == KeyEvent.VK_UP) - { - buttons[1][0] = true; - } - if(e.getKeyCode() == KeyEvent.VK_LEFT) - { - buttons[1][1] = true; - } - if(e.getKeyCode() == KeyEvent.VK_DOWN) - { - buttons[1][2] = true; - } - if(e.getKeyCode() == KeyEvent.VK_RIGHT) - { - buttons[1][3] = true; - } - if(e.getKeyChar() == '.') - { - buttons[1][4] = true; - } - if(e.getKeyChar() == 'g') - { - buttons[1][5] = true; - } + buttons[0][0] = true; + } + if(e.getKeyChar() == 'a') + { + buttons[0][1] = true; + } + if(e.getKeyChar() == 's') + { + buttons[0][2] = true; + } + if(e.getKeyChar() == 'd') + { + buttons[0][3] = true; + } + if(e.getKeyChar() == 'f') + { + buttons[0][4] = true; + } + if(e.getKeyChar() == 'g') + { + buttons[0][5] = true; + } + if(e.getKeyCode() == KeyEvent.VK_UP) + { + buttons[1][0] = true; + } + if(e.getKeyCode() == KeyEvent.VK_LEFT) + { + buttons[1][1] = true; + } + if(e.getKeyCode() == KeyEvent.VK_DOWN) + { + buttons[1][2] = true; + } + if(e.getKeyCode() == KeyEvent.VK_RIGHT) + { + buttons[1][3] = true; + } + if(e.getKeyChar() == '.') + { + buttons[1][4] = true; + } + if(e.getKeyChar() == '/') + { + buttons[1][5] = true; } } @Override public void keyReleased(KeyEvent e) { - if(mode == 1) + + if(e.getKeyChar() == 'w') { - if(e.getKeyChar() == 'w') - { - buttons[0][0] = false; - } - if(e.getKeyChar() == 'a') - { - buttons[0][1] = false; - } - if(e.getKeyChar() == 's') - { - buttons[0][2] = false; - } - if(e.getKeyChar() == 'd') - { - buttons[0][3] = false; - } - if(e.getKeyChar() == 'f') - { - buttons[0][4] = false; - } - if(e.getKeyChar() == '/') - { - buttons[0][5] = false; - } - if(e.getKeyCode() == KeyEvent.VK_UP) - { - buttons[1][0] = false; - } - if(e.getKeyCode() == KeyEvent.VK_LEFT) - { - buttons[1][1] = false; - } - if(e.getKeyCode() == KeyEvent.VK_DOWN) - { - buttons[1][2] = false; - } - if(e.getKeyCode() == KeyEvent.VK_RIGHT) - { - buttons[1][3] = false; - } - if(e.getKeyChar() == '.') - { - buttons[1][4] = false; - } - if(e.getKeyChar() == 'g') - { - buttons[1][5] = false; - } + buttons[0][0] = false; + } + if(e.getKeyChar() == 'a') + { + buttons[0][1] = false; + } + if(e.getKeyChar() == 's') + { + buttons[0][2] = false; + } + if(e.getKeyChar() == 'd') + { + buttons[0][3] = false; + } + if(e.getKeyChar() == 'f') + { + buttons[0][4] = false; + } + if(e.getKeyChar() == 'g') + { + buttons[0][5] = false; + } + if(e.getKeyCode() == KeyEvent.VK_UP) + { + buttons[1][0] = false; + } + if(e.getKeyCode() == KeyEvent.VK_LEFT) + { + buttons[1][1] = false; + } + if(e.getKeyCode() == KeyEvent.VK_DOWN) + { + buttons[1][2] = false; + } + if(e.getKeyCode() == KeyEvent.VK_RIGHT) + { + buttons[1][3] = false; + } + if(e.getKeyChar() == '.') + { + buttons[1][4] = false; + } + if(e.getKeyChar() == '/') + { + buttons[1][5] = false; } } @@ -308,6 +338,12 @@ public boolean[][] getInputs() public Fighter[] update(Fighter[] fs, Platform plat, boolean[][] inputs) { + setBlocking(fs[0],inputs[0]); + setBlocking(fs[1],inputs[1]); + + incrementBlock(fs[0]); + incrementBlock(fs[1]); + setAttacking(fs[0],plat,inputs[0]); setAttacking(fs[1],plat,inputs[1]); @@ -401,11 +437,52 @@ public void bringBack(Fighter f1) } } - public void setAttacking (Fighter f1 , Platform plat, boolean[] inputs) + public void setBlocking (Fighter f1, boolean[] inputs) + { + if (inputs[5] == true) + { + if(f1.getBlocking() == 0) + { + System.out.println("weewoo"); + f1.setBlocking(1); + } + } + } + + public void incrementBlock(Fighter f1) { + if(f1.getBlocking() == 1) + { + if(f1.getBlockT() == 20) + { + + f1.setBlockT(0); + System.out.println("wombo"); + f1.setBlocking(2); + }else + { + f1.setBlockT(f1.getBlockT() + 1); + } + } + + if(f1.getBlocking() == 2) + { + if(f1.getBlockT() == 240) + { + f1.setBlockT(0); + System.out.println("welmpo"); + f1.setBlocking(0); + } + else + { + f1.setBlockT(f1.getBlockT() + 1); + } + } + } - f1.setBlocking(inputs[5]); - if (inputs[4] == true) + public void setAttacking (Fighter f1 , Platform plat, boolean[] inputs) + { + if (inputs[4] == true && f1.getBlocking() != 1) { if(f1.getAttacking() == 0) { @@ -441,26 +518,20 @@ public void setAttacking (Fighter f1 , Platform plat, boolean[] inputs) f1.setAttacking(1); } } - } public void incrementAttack(Fighter f1, Fighter f2) { - - if(f1.getAttacking() == 1) + if(f1.getAttacking() == 1) { if(f1.getAttackT() == 5) { int[] i = new int[4]; i = attackHitBox(f1); - if ( i[0] <= f2.getPos()[0] + f2.getSize() && i[0] + i[2] >= f2.getPos()[0] && i[1] <= f2.getPos()[1] + f2.getSize() && i[1] + i[3] >= f2.getPos()[1]) + if (i[0] <= f2.getPos()[0] + f2.getSize() && i[0] + i[2] >= f2.getPos()[0] && i[1] <= f2.getPos()[1] + f2.getSize() && i[1] + i[3] >= f2.getPos()[1] && f2.getBlocking() != 1) { -// if (!f1.getBlocking()) { - f2.setHealth(f2.getHealth() - f1.getAttack().getDamage()); -// } else { -// f2.setHealth(f2.getHealth()); -// } + f2.setHealth(f2.getHealth() - f1.getAttack().getDamage()); if(f1.getRight() == true){ f2.setKnockBackVel(f1.getAttack().getKnockBack()[0],f1.getAttack().getKnockBack()[1]); }else diff --git a/Driver.class b/Driver.class index a22e0c8..730be34 100644 Binary files a/Driver.class and b/Driver.class differ diff --git a/Driver.java b/Driver.java index 8c6124a..fc07f59 100644 --- a/Driver.java +++ b/Driver.java @@ -6,49 +6,51 @@ import sun.audio.*; public class Driver { - public static void main(String[] args) - { - playMusicInALoop("CoolBeats/Spectre.wav"); - JFrame frame = new JFrame("Yeet Fighter"); - frame.setSize(965, 640); - frame.setLocation(200,100); - frame.setResizable(false); - frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); - Display disp = new Display(); - frame.add(disp); - frame.setVisible(true); - - Platform plat = new Platform(550); - Fighter fighters[] = new Fighter[2]; - while(disp.getMode() == 0) - {} - - fighters = disp.loadGame(plat); - - int fps = 60; - double timePerTick = 1000000000 / fps; - double delta = 0; - long now; - long lastTime = System.nanoTime(); - - - - while (fighters[0].getHealth() > 0 && fighters[1].getHealth() > 0) - { - now = System.nanoTime(); - delta += (now - lastTime) / timePerTick; - lastTime = now; - - if(delta >= 1){ - boolean ins[][] = disp.getInputs(); - fighters = disp.update(fighters,plat,ins); - disp.draw(fighters); - delta--; - } - } - disp.endGame(fighters); - } - public static void playMusic(String filename){ + public static void main(String[] args) + { + playMusicInALoop("CoolBeats/Spectre.wav"); + JFrame frame = new JFrame("Yeet Fighter"); + frame.setSize(965, 640); + frame.setLocation(200,100); + frame.setResizable(false); + frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + Display disp = new Display(); + frame.add(disp); + frame.setVisible(true); + + Fighter f1; + Fighter f2; + Platform plat = new Platform(550); + Fighter fighters[] = new Fighter[2]; + int m = 0; + while(disp.getMode() == 0) + {} + fighters = disp.loadGame(plat); + + int fps = 60; + double timePerTick = 1000000000 / fps; + double delta = 0; + long now; + long lastTime = System.nanoTime(); + + + + while (fighters[0].getHealth() > 0 && fighters[1].getHealth() > 0) + { + now = System.nanoTime(); + delta += (now - lastTime) / timePerTick; + lastTime = now; + + if(delta >= 1){ + boolean ins[][] = disp.getInputs(); + fighters = disp.update(fighters,plat,ins); + disp.draw(fighters); + delta--; + } + } + disp.endGame(fighters); + } + public static void playMusic(String filename){ InputStream music; try{ System.out.println("Playing Audio Once"); @@ -71,5 +73,5 @@ public static void playMusicInALoop(String filename){ System.out.println(e); playMusic(filename); } - } + } } \ No newline at end of file diff --git a/Fighter$AirDirection.class b/Fighter$AirDirection.class index 56ef497..a6a0bb5 100644 Binary files a/Fighter$AirDirection.class and b/Fighter$AirDirection.class differ diff --git a/Fighter$AirDown.class b/Fighter$AirDown.class index 38710b4..0c47f94 100644 Binary files a/Fighter$AirDown.class and b/Fighter$AirDown.class differ diff --git a/Fighter$AirNeutral.class b/Fighter$AirNeutral.class index 4d23f33..c2be183 100644 Binary files a/Fighter$AirNeutral.class and b/Fighter$AirNeutral.class differ diff --git a/Fighter$Attack.class b/Fighter$Attack.class index 1c8f6d1..318b603 100644 Binary files a/Fighter$Attack.class and b/Fighter$Attack.class differ diff --git a/Fighter$BasicDirection.class b/Fighter$BasicDirection.class index 81c3e41..5ae4a1a 100644 Binary files a/Fighter$BasicDirection.class and b/Fighter$BasicDirection.class differ diff --git a/Fighter$BasicNeutral.class b/Fighter$BasicNeutral.class index fbb02dd..642de49 100644 Binary files a/Fighter$BasicNeutral.class and b/Fighter$BasicNeutral.class differ diff --git a/Fighter$BasicUp.class b/Fighter$BasicUp.class index d7d506c..5604acf 100644 Binary files a/Fighter$BasicUp.class and b/Fighter$BasicUp.class differ diff --git a/Fighter.class b/Fighter.class index 669bcbe..0cd8761 100644 Binary files a/Fighter.class and b/Fighter.class differ diff --git a/Fighter.java b/Fighter.java index 5b269c0..9e2dae2 100644 --- a/Fighter.java +++ b/Fighter.java @@ -8,7 +8,8 @@ public class Fighter boolean right = false; int attacking = 0; int attackT = 0; - boolean blocking; + int blocking = 0; + int blockT = 0; Fighter.Attack attack; @@ -84,14 +85,17 @@ public int getAttacking() { return this.attacking; } - public boolean getBlocking() + + public void setBlocking(int a) { - return this.blocking; + this.blocking = a; } - public void setBlocking(boolean r) + + public int getBlocking() { - this.blocking = r; + return this.blocking; } + public void setRight(boolean r) { this.right = r; @@ -112,6 +116,16 @@ public int getAttackT() return this.attackT; } + public void setBlockT(int a) + { + this.blockT = a; + } + + public int getBlockT() + { + return this.blockT; + } + @@ -121,6 +135,7 @@ public int getAttackT() public abstract class Attack { + double[] pos = new double[2]; int[] size = new int[2]; double damage; @@ -130,7 +145,6 @@ public abstract class Attack public double[] getKnockBack() { - return this.knockback; } @@ -190,7 +204,7 @@ public class AirDirection extends Attack setSize(120,10); setDamage(50); setKnockBack(120,-10); - setTime(30); + setTime(20); } } public class AirDown extends Attack @@ -208,7 +222,7 @@ public class AirNeutral extends Attack AirNeutral(){ setPos(20,20); setSize(50,50); - setDamage(100); + setDamage(110); setKnockBack(40,-10); setTime(25); } @@ -216,58 +230,31 @@ public class AirNeutral extends Attack public class BasicDirection extends Attack { BasicDirection(){ - - if (blocking) { - setPos(10,10); - setSize(150,10); - setDamage(10); - setKnockBack(15,-10); - setTime(20); - } else { - setPos(10,10); - setSize(150,10); - setDamage(40); - setKnockBack(40,-10); - setTime(20); - } + setPos(10,10); + setSize(150,10); + setDamage(40); + setKnockBack(40,-10); + setTime(20); } } public class BasicNeutral extends Attack { BasicNeutral(){ - if (blocking) { - setPos(10,10); - setSize(70,30); - setDamage(50); - setKnockBack(30,-30); - setTime(30); - } else { - setPos(10,10); - setSize(70,30); - setDamage(150); - setKnockBack(60,-60); - setTime(30); - } - + setPos(10,10); + setSize(70,30); + setDamage(150); + setKnockBack(60,-60); + setTime(30); } } public class BasicUp extends Attack { BasicUp(){ - if (blocking) { - setPos(20,-10); - setSize(10,20); - setDamage(50); - setKnockBack(0,-70); - setTime(50); - } else { - setPos(20,-10); - setSize(10,20); - setDamage(200); - setKnockBack(0,-200); - setTime(50); - } - + setPos(20,-10); + setSize(10,10); + setDamage(200); + setKnockBack(4,-200); + setTime(50); } } } \ No newline at end of file diff --git a/Platform.class b/Platform.class index b429767..b13bcdb 100644 Binary files a/Platform.class and b/Platform.class differ