Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package pl.gda.biomed.wjp;
- import java.awt.Cursor;
- import java.awt.GridLayout;
- import java.awt.Point;
- import java.awt.Toolkit;
- import javax.swing.JFrame;
- /**
- * Okno główne gry demonstracyjnej.
- * @author Jacek Rumiński
- */
- public class GameWindow extends JFrame{
- /**
- * Główny konstruktor klasy - ustawienie parametrów i rozpoczęcia akcji
- * @param width szerokość okna
- * @param height wysokość okna
- * @param x pozycja x lewego górnego narożnika okna
- * @param y pozycja y lewego górnego narożnika okna
- */
- public GameWindow(int width, int height, int x, int y){
- super(); //wywołaj konstruktor klasy nadrzędnej - utwórz okno
- setSize(width, height); //ustaw wymiary okna
- setLocation(x,y); //ustaw pozycję okna
- setResizable(false); //zablokuj możliwość zmian rozmiaru okna
- setUndecorated(true); //ukryj ramkę okna i przyciski kontrolne
- initGUI(width,height); //wywołaj metodę budowy interfejsu
- setVisible(true); //pokaż okno
- animationLoop(); //uruchom pętlę animacji gry
- }//koniec GameWindow()
- /**
- * Utwórz interfejs graficzny użytkownika
- * @param width szerokość okna
- * @param height wysokość okna
- */
- private void initGUI(int width, int height){
- setLayout(new GridLayout(1,1)); //ustaw rozkład
- //ustaw zasoby i parametry początkowe
- GPars.loadInitialImages();
- Toolkit tk = Toolkit.getDefaultToolkit();
- //ustaw kursor myszki w kształcie tarczy
- Cursor tCursor = tk.createCustomCursor(GPars.cursorImage, new Point(10,10), "Target Cursor");
- setCursor(tCursor);
- //((Component)screen.getFullScreenWindow()).setCursor(tCursor);
- add(new GamePanel(width,height)); //dodaj panel gry zawierający grafikę i akcję
- }//koniec initGUI()
- /**
- * Główna pętla gry - takt animacji (w procesie dalszej edukacji
- * można używać wątków czy klasy Timer)
- */
- private void animationLoop() {
- //pobierz liczbę milisekund od daty referencyjnej (w ms)
- GPars.startTime = System.currentTimeMillis();
- long currTime = GPars.startTime;
- while (currTime - GPars.startTime < GPars.GAME_TIME) {
- long elapsedTime = System.currentTimeMillis() - currTime;
- //licz czas gry - może się przydać w ograniczeniach czasowych
- //w tej demonstracji nie wykorzystane
- currTime += elapsedTime;
- //odrysuj kolejny ekran gry (nowe pozycje obiektów - symulacja ruchu)
- repaint();
- // przerwa w czasie
- try {
- Thread.sleep(80);
- } catch (InterruptedException ex) {System.out.println("Wyjątek: "+ex); }
- }//koniec while
- }//koniec animationLoop()
- }//koniec class GameWindow
Advertisement
Add Comment
Please, Sign In to add comment