Package pong.Game

Source Code of pong.Game.Game$Runner

package pong.Game;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

import javax.swing.JFrame;
import javax.swing.JPanel;

import pong.Menu.PongMenuBar;
import pong.Menu.Settings;
import pong.Menu.SettingsFrame;

public class Game extends JFrame{

  private static Board board;
  private TopBar topBar;
  private PongMenuBar menuBar;
  private JPanel boardBarContainer;
  private SettingsFrame settingsFrame;

  public Game(){
    super("Pong");
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    this.setSize(Settings.resolution);
    this.setResizable(false);
    this.setBackground(Color.BLACK);
   
    this.setLayout(new BorderLayout());
   
    Container pane = this.getContentPane();
   
    settingsFrame = new SettingsFrame();
   
    board = new Board();
    topBar = new TopBar();
    boardBarContainer = new JPanel(new BorderLayout());
    menuBar = new PongMenuBar();
   
    boardBarContainer.add(topBar, BorderLayout.NORTH);
    boardBarContainer.add(board, BorderLayout.CENTER);
   
    this.add(menuBar, BorderLayout.NORTH);
    this.add(boardBarContainer, BorderLayout.CENTER);

    board.setVisible(true);
    topBar.setVisible(true);
   
    this.setVisible(true);
   
    menuBar.getNewGame().addActionListener(new ActionListener(){

      @Override
      public void actionPerformed(ActionEvent arg0) {
        board.startNewGame();
      }
     
    });
   
    menuBar.getSettings().addActionListener(new ActionListener(){

      @Override
      public void actionPerformed(ActionEvent arg0) {
        topBar.pauseButton.setPaused(true);
        settingsFrame.setVisible(true);
      }
     
    });
   
    this.addKeyListener(new KeyListener() {
      @Override
      public void keyPressed(KeyEvent e) {
        System.out.println("Key Press: " + e.getKeyCode());
        switch (e.getKeyCode()) {
        case (Settings.player1Up):
          board.getPlayer1().keyPress = 1;
          break;
        case (Settings.player1Down):
          board.getPlayer1().keyPress = -1;
          break;
        case (Settings.player2Up):
          board.getPlayer2().keyPress = 1;
          break;
        case (Settings.player2Down):
          board.getPlayer2().keyPress = -1;
          break;
        }
      }

      @Override
      public void keyReleased(KeyEvent e) {
        System.out.println("Key Released: " + e.getKeyCode());
        switch (e.getKeyCode()) {
        case (Settings.player1Up):
          board.getPlayer1().keyPress = 0;
          break;
        case (Settings.player1Down):
          board.getPlayer1().keyPress = 0;
          break;
        case (Settings.player2Up):
          board.getPlayer2().keyPress = 0;
          break;
        case (Settings.player2Down):
          board.getPlayer2().keyPress = 0;
          break;
        }
      }

      @Override
      public void keyTyped(KeyEvent e) {
        System.out.println("Key Typed: " + e.getKeyCode());
      }
    });
   
    new Runner().start();
   
  }
 
  public static void reDraw(){
    board.repaint();
  }
 
  public static void reColorPaddles(){
    board.player1.setPaddleColor();
    board.player2.setPaddleColor();
  }

  /** Thread running the animation. */
  private class Runner extends Thread
  {
      /** Wether or not thread should stop. */
      private boolean shouldStop = false;

      /** Invoke to stop animation. */
      public void shouldStop() {
          this.shouldStop = true;
      }//met

      /** Invoke to pause. */
      /** Main runner method : sleeps and invokes engine.play().
       * @see Engine#play */
      public void run()
      {
       
        System.out.println("Runner running");
          while( !shouldStop )
          {
              try {
                  Thread.sleep(18);
              } catch (InterruptedException e) {
                  // TODO Auto-generated catch block
                  e.printStackTrace();
              }//catch
              if( !topBar.pauseButton.isPaused() )
              {
                board.player1.movePaddle();
                board.player2.movePaddle();
                board.ball.move(board.player1.getPaddle(), board.player2.getPaddle());
                board.ball.hasHitPaddle(board.player1);
                board.ball.hasHitPaddle(board.player2);
                board.offBoard();
                topBar.setScores(board.player1.getScore(), board.player2.getScore());
                board.repaint();
                requestFocus();
               
              }//if
          }//while
      }//met

      /** Wether or not we are paused. */
      public boolean isPaused() {
          return topBar.pauseButton.isPaused();
      }//met
  }//class Runner (inner)
}


TOP

Related Classes of pong.Game.Game$Runner

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.