martaczaska

GameWindow

Dec 30th, 2019
216
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.89 KB | None | 0 0
  1. package pl.gda.biomed.wjp;
  2.  
  3. import java.awt.Cursor;
  4. import java.awt.GridLayout;
  5. import java.awt.Point;
  6. import java.awt.Toolkit;
  7. import javax.swing.JFrame;
  8.  
  9. /**
  10.  * Okno główne gry demonstracyjnej.
  11.  * @author Jacek Rumiński
  12.  */
  13. public class GameWindow extends JFrame{
  14.    
  15.    /**
  16.      * Główny konstruktor klasy - ustawienie parametrów i rozpoczęcia akcji
  17.      * @param width szerokość okna
  18.      * @param height wysokość okna
  19.      * @param x pozycja x lewego górnego narożnika okna
  20.      * @param y pozycja y lewego górnego narożnika okna
  21.      */
  22.     public GameWindow(int width, int height, int x, int y){
  23.         super(); //wywołaj konstruktor klasy nadrzędnej - utwórz okno
  24.         setSize(width, height); //ustaw wymiary okna
  25.         setLocation(x,y); //ustaw pozycję okna
  26.         setResizable(false); //zablokuj możliwość zmian rozmiaru okna
  27.         setUndecorated(true); //ukryj ramkę okna i przyciski kontrolne
  28.         initGUI(width,height); //wywołaj metodę budowy interfejsu
  29.         setVisible(true); //pokaż okno
  30.         animationLoop(); //uruchom pętlę animacji gry
  31.     }//koniec GameWindow()
  32.    
  33.    
  34.     /**
  35.      * Utwórz interfejs graficzny użytkownika
  36.      * @param width szerokość okna
  37.      * @param height wysokość okna
  38.      */
  39.     private void initGUI(int width, int height){
  40.         setLayout(new GridLayout(1,1)); //ustaw rozkład
  41.         //ustaw zasoby i parametry początkowe
  42.         GPars.loadInitialImages();
  43.         Toolkit tk = Toolkit.getDefaultToolkit();
  44.         //ustaw kursor myszki w kształcie tarczy
  45.         Cursor tCursor = tk.createCustomCursor(GPars.cursorImage, new Point(10,10), "Target Cursor");
  46.         setCursor(tCursor);
  47.         //((Component)screen.getFullScreenWindow()).setCursor(tCursor);
  48.         add(new GamePanel(width,height)); //dodaj panel gry zawierający grafikę i akcję
  49.     }//koniec initGUI()
  50.    
  51.     /**
  52.      * Główna pętla gry - takt animacji (w procesie dalszej edukacji
  53.      * można używać wątków czy klasy Timer)
  54.      */
  55.     private void animationLoop() {
  56.         //pobierz liczbę milisekund od daty referencyjnej (w ms)
  57.         GPars.startTime = System.currentTimeMillis();
  58.         long currTime = GPars.startTime;
  59.  
  60.         while (currTime - GPars.startTime < GPars.GAME_TIME) {
  61.           long elapsedTime = System.currentTimeMillis() - currTime;
  62.           //licz czas gry - może się przydać w ograniczeniach czasowych
  63.           //w tej demonstracji nie wykorzystane
  64.           currTime += elapsedTime;
  65.          
  66.           //odrysuj kolejny ekran gry (nowe pozycje obiektów - symulacja ruchu)
  67.           repaint();
  68.          
  69.           // przerwa w czasie
  70.           try {
  71.             Thread.sleep(80);
  72.           } catch (InterruptedException ex) {System.out.println("Wyjątek: "+ex);      }
  73.         }//koniec while
  74.     }//koniec animationLoop()
  75.    
  76. }//koniec class GameWindow
Advertisement
Add Comment
Please, Sign In to add comment