pl.tph.javatacka.game
Class GameCore

java.lang.Object
  extended by pl.tph.javatacka.game.GameCore

public class GameCore
extends java.lang.Object

Klasa GameCore jest główną klasą gry Javatacka spajającą wszystkie jej elementy. To w jej metodach znajdują się procedury potrzebne do inicjacji gry, główna pętla gry oraz procedury kończące grę.

Ta klasa jest z pewnością najbardziej skomplikowana pośród wszystkich klas należących do pakietów pl.tph.javatacka.*. Można by jej zarzucić, że część metod mogłaby zostać przeniesiona do innych klas, gdyż uprościłoby to GameCore'a. Jednakże odbyłoby się to kosztem czasu przekazywania referencji do wielu obiektów, co mogłoby się bardzo niekorzystnie odbić na wydajności gry. Z tego też powodu został zastosowany taki, a nie inny układ metod klasy GameCore.

Author:
Tomasz Pieczerak (tph)

Field Summary
private  int alivePlayers
          Liczba "żywych" graczy biorący jeszcze udział w danej rundzie.
private  int fps
           
private static int GAME_END_ROUND
           
private static int GAME_NEW_ROUND
           
private static int GAME_OVER
           
private static int GAME_PAUSE
           
private static int GAME_READY
           
private static int GAME_RUNNING
           
private  java.awt.image.BufferedImage gameField
          Uproszczony czarno-biały zapis pola gry.
private  int gameState
          Aktualny stan gry.
private  InputManager input
          Menadżer wejścia z klawiatury i myszy.
private  int maxScore
          Limit punktów potrzebny do zwycięstwa.
private  GameMenu menu
          Menu gry.
private  VirtualKey pause
          Akcja gry - pauza.
private  Player[] players
          Tabela zawierająca obiekty graczy.
private  VirtualKey quit
          Akcja gry - wyjście z gry.
private  ScreenManager screen
          Menadżer okna pełnoekranowego
private  int sleep
          Czas na jaki wątek zasypia po każdym obiegu głównej pętli gry.
 
Constructor Summary
GameCore()
           
 
Method Summary
private  void checkCollisions()
          Metoda realizująca detekcję kolizji między krzywymi graczy.
private  void draw()
          Główna procedura rysująca wszystkie elementy na ekranie.
private  void endGame()
          Metoda służąca do kończenia rozgrywki.
private  void gameLoop()
          Metoda zawierająca główną pętlę właściwej gry.
private  void gameWait()
          Metoda wywoływana podczas oczekiwania na rozpoczęcie rundy.
private  void initGame()
          Inicjuje wszystkie elementy potrzebne do właściwej części rozgrywki.
private  void initGUI()
          Inicjuje wszelkie elementy składające się na Graficzny Interfejs Użytkownika.
private  void loadPreferences(GamePreferences pref)
          Na podstawie otrzymanego obiektu GamePreferences ustawia odpowiednie opcje w obiekcie GameCore.
static void main(java.lang.String[] args)
          Metoda statyczna main(), od której swoje działanie rozpoczyna główny wątek gry.
private  void newRound()
          Metoda inicjująca nową rundę.
private  void run()
          Ta metoda uruchamia grę uprzednio inicjując wszelkie potrzebne elementy.
private  void runMenu()
          Wyświetla okno menu gry i czeka, aż gracz ustawią opcje gry i klikną przycisk Start!
private  void update(long elapsedTime)
          Główna funkcja aktualizująca wszystkie obiekty gry.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

screen

private ScreenManager screen
Menadżer okna pełnoekranowego

See Also:
ScreenManager

input

private InputManager input
Menadżer wejścia z klawiatury i myszy.

See Also:
InputManager

menu

private GameMenu menu
Menu gry.

See Also:
GameMenu

gameState

private int gameState
Aktualny stan gry. Jest to nie jako stan gry jako automatu skończonego.


GAME_NEW_ROUND

private static final int GAME_NEW_ROUND
See Also:
Constant Field Values

GAME_READY

private static final int GAME_READY
See Also:
Constant Field Values

GAME_RUNNING

private static final int GAME_RUNNING
See Also:
Constant Field Values

GAME_PAUSE

private static final int GAME_PAUSE
See Also:
Constant Field Values

GAME_END_ROUND

private static final int GAME_END_ROUND
See Also:
Constant Field Values

GAME_OVER

private static final int GAME_OVER
See Also:
Constant Field Values

gameField

private java.awt.image.BufferedImage gameField
Uproszczony czarno-biały zapis pola gry. Używany do detekcji kolizji.


players

private Player[] players
Tabela zawierająca obiekty graczy.

See Also:
Player

alivePlayers

private int alivePlayers
Liczba "żywych" graczy biorący jeszcze udział w danej rundzie.


maxScore

private int maxScore
Limit punktów potrzebny do zwycięstwa.


quit

private VirtualKey quit
Akcja gry - wyjście z gry.

See Also:
VirtualKey

pause

private VirtualKey pause
Akcja gry - pauza.

See Also:
VirtualKey

sleep

private int sleep
Czas na jaki wątek zasypia po każdym obiegu głównej pętli gry.


fps

private int fps
Constructor Detail

GameCore

public GameCore()
Method Detail

main

public static void main(java.lang.String[] args)
Metoda statyczna main(), od której swoje działanie rozpoczyna główny wątek gry.


run

private void run()
Ta metoda uruchamia grę uprzednio inicjując wszelkie potrzebne elementy.


initGUI

private void initGUI()
Inicjuje wszelkie elementy składające się na Graficzny Interfejs Użytkownika.


runMenu

private void runMenu()
Wyświetla okno menu gry i czeka, aż gracz ustawią opcje gry i klikną przycisk Start! (aby rozpocząć grę) lub Wyjście, aby ją zakończyć.


initGame

private void initGame()
Inicjuje wszystkie elementy potrzebne do właściwej części rozgrywki.


loadPreferences

private void loadPreferences(GamePreferences pref)
Na podstawie otrzymanego obiektu GamePreferences ustawia odpowiednie opcje w obiekcie GameCore.

Parameters:
pref - obiekt zawierający preferencje gry

gameLoop

private void gameLoop()
Metoda zawierająca główną pętlę właściwej gry.


newRound

private void newRound()
Metoda inicjująca nową rundę.


gameWait

private void gameWait()
Metoda wywoływana podczas oczekiwania na rozpoczęcie rundy.


update

private void update(long elapsedTime)
Główna funkcja aktualizująca wszystkie obiekty gry. Część z nich (te poruszające się po ekranie) jest aktualizowana na podstawie podanego czasu.

Parameters:
elapsedTime - czas, który miną od ostatniej aktualizacji

checkCollisions

private void checkCollisions()
Metoda realizująca detekcję kolizji między krzywymi graczy.


draw

private void draw()
Główna procedura rysująca wszystkie elementy na ekranie.


endGame

private void endGame()
Metoda służąca do kończenia rozgrywki.