import java.awt.*; import java.awt.event.*; import javax.swing.*; public class OrbitAttack extends JFrame implements MouseListener, KeyListener { private final int WINDOW_WIDTH = 600; private final int WINDOW_HEIGHT = 600; Ship player1; Ship player2; Environment env; Toolkit T = this.getToolkit(); Image menuImg = T.getImage("menu_background.png"); Image menuSelectImg = T.getImage("menu_selector.png"); int menuOption = 0; Image gameImg = T.getImage("game_background.png"); Image gameTime = T.getImage("game_time.png"); Image gameHealth = T.getImage("game_health.png"); public OrbitAttack() { env = new Environment(); this.setSize(600, 625); this.setVisible(true); this.addMouseListener(this); this.addKeyListener(this); } private void drawMenu(){ // Called in all Drawing Methods Container clientArea = this.getContentPane(); Graphics gfx = clientArea.getGraphics(); gfx.drawImage(this.menuImg, 0, 0, this); gfx.drawImage(this.menuSelectImg, 375, 445+(menuOption*65), this); } private void drawHealth(Player player){ Container clientArea = this.getContentPane(); Graphics gfx = clientArea.getGraphics(); gfx.drawImage(gameHealth, 10+(player.playerNum*340), 10, gameHealth.getWidth(this)*(player.health.myHealth/100) , gameHealth.getHeight(this), this); gfx.setFont(new java.awt.Font("Tahoma", Font.BOLD, 15)); gfx.setColor(Color.RED); gfx.drawString(player.myName, 10+(player.playerNum*503), 65); gfx.setColor(Color.BLACK); } private void drawGame(){ Container clientArea = this.getContentPane(); Graphics gfx = clientArea.getGraphics(); gfx.drawImage(this.gameImg, 0, 0, this); gfx.drawImage(this.gameTime,270, 10, this); drawHealth(player1); drawHealth(player2); player2.move(); //player2.imageAngle++; player1.move(); //player1.imageAngle++; gfx.drawImage(player1.rotatedImage,(int) player1.myLocation().getX(), (int) player1.myLocation().getY(), this); gfx.drawImage(player2.rotatedImage,(int) player2.myLocation().getX(), (int) player2.myLocation().getY(), this); this.repaint(); } private void drawHighScores(){return;} //listens for clicks && keyboard and paints the high score screen. called in paint public void paint(Graphics g){ Container clientArea = this.getContentPane(); Graphics gfx = clientArea.getGraphics(); gfx.setFont(new java.awt.Font("Dialog", Font.PLAIN, 10)); if (env.gameState == env.MENU){ drawMenu(); } else if (env.gameState == env.GAME){ drawGame(); } //this.repaint(); //if commented, on resize, image goes blank. }//paints, duh... void play(){ //starts the game env.gameState = env.GAME; player1 = new Ship(0); player2 = new Ship(1); } /** * MouseListener and KeyListener methods. */ public void mouseClicked(MouseEvent event) {} public void mouseEntered(MouseEvent event) {} public void mouseExited(MouseEvent event) {} public void mousePressed(MouseEvent event) {} public void mouseReleased(MouseEvent event) { if (env.gameState == env.MENU){ if (event.getX() > 375 && event.getY() > 467 && event.getY() < 512) play(); if (event.getX() > 375 && event.getY() > 534 && event.getY() < 579) this.setVisible(false); } this.repaint(); } public void keyPressed(KeyEvent e) { int id = e.getID(); if(env.gameState == env.GAME){ if (KeyEvent.getKeyText(e.getKeyCode()).equals("Up")){ //up arrow (NOT ID 38) player2.xvel += Math.sin(player2.imageAngle)/75; //CHECK THE MATH HERE player2.yvel += Math.cos(player2.imageAngle)/75;} else if (KeyEvent.getKeyText(e.getKeyCode()).equals("Down")){ //down arrow player2.xvel -= Math.sin(player2.imageAngle)/75; player2.yvel -= Math.cos(player2.imageAngle)/75;} else if (KeyEvent.getKeyText(e.getKeyCode()).equals("Left")){ //down arrow player2.imageAngle -= 5;} else if (KeyEvent.getKeyText(e.getKeyCode()).equals("Right")){ //down arrow player2.imageAngle += 5;} } //this.repaint(); } public void keyReleased(KeyEvent e) { int id = e.getID(); if(env.gameState == env.MENU){ if (KeyEvent.getKeyText(e.getKeyCode()).equals("Up")) //up arrow (NOT ID 38) if(menuOption==0) menuOption = 1; else menuOption = 0; else if (KeyEvent.getKeyText(e.getKeyCode()).equals("Down")) //down arrow if(menuOption==1) menuOption = 0; else menuOption = 1; else if (KeyEvent.getKeyText(e.getKeyCode()).equals("Enter")) if (menuOption==0)//play play(); else if (menuOption==1) //quit this.setVisible(false); } this.repaint(); } public void keyTyped(KeyEvent e) {} public static void main (String [] args){new OrbitAttack(); } }