dsadas - CaffeineCoderz/Fungorium GitHub Wiki
A felület működésének elve és a grafikus rendszer architektúrája
A FungoriumGamePanel osztály a játék grafikus felületének központi eleme, amely a JPanel osztályból származik. A felület a játék állapotát vizualizálja a felhasználó számára, beleértve a különböző játékelemeket (tektonok, gombatestek, fonalak, spórák, rovarok) és a játéktér hátterét.
Működés elve:
A FungoriumGamePanel a következőképpen működik:
- Inicializálás: A konstruktorban beállítja a panel méretét, inicializálja a
RenderMaposztályt a játéktér kezelésére, létrehozza a státusz szövegterületet, és betölti a szükséges képeket a játékelemekhez és a háttérhez. EgyMouseListeneris hozzáadásra kerül, amely figyeli a felhasználó kattintásait a játéktéren, és ha egy objektumra kattintanak, lekérdezi annak státuszát aCommandProcessorsegítségével, majd megjeleníti azt astatusTextArea-ban. - Rajzolás: A
paintComponentmetódus felelős a játéktér és az összes játékelem kirajzolásáért. Ez magában foglalja a háttér kirajzolását, az objektumok pozícióinak kiszámítását, opcionálisan a cellaháló kirajzolását, a tektonok, spórák, fonalak, rovarok és gombatestek megjelenítését. A tektonokhoz égtáji pontok kerülnek kiszámításra a fonalak növekedésének megkönnyítése érdekében. - Objektumok pozicionálása: A
calculateObjectPositionsmetódus határozza meg az egyes játékelemek pozícióját a képernyőn. A tektonok véletlenszerűen kerülnek elhelyezésre a játéktéren belül, figyelembe véve a méretüket és az elfoglalt cellákat. A többi objektum (gombatestek, fonalak, spórák, rovarok) pozíciója a hozzájuk kapcsolódó tektonokhoz vagy más objektumokhoz viszonyítva kerül kiszámításra. - Interakció: Az egérkattintásokon keresztül a felhasználó lekérdezheti az objektumok státuszát. A kattintás helyén lévő objektum neve alapján a
CommandProcessorfeldolgozza a/statusparancsot, és a válasz megjelenik a státusz szövegterületen.
Grafikus rendszer architektúrája (struktúra diagram):
A fenti TikZ diagram vizuálisan ábrázolja a FungoriumGamePanel osztály és a hozzá kapcsolódó osztályok struktúráját. A diagramon láthatók a FungoriumGamePanel által használt kezelők (CommandProcessor, RenderMap, GameStateHandler), az adattárolók (pozíciók, elfoglalt cellák, stb.), a GUI komponens (JTextArea), a betöltött képek, valamint a prototípus azon osztályai (Tekton, FungusBody, FungusThread, Spore, Insect, Point, Line2D, stb.), amelyekkel a grafikus felület közvetlenül vagy közvetetten kapcsolatban áll. A nyilak az osztályok közötti függőségeket jelzik. A szaggatott nyíl statikus hivatkozást jelöl.
A diagram kiemeli, hogy a FungoriumGamePanel felelős a játék vizuális megjelenítéséért és az alapvető felhasználói interakcióért (egérkattintás). Ehhez együttműködik a CommandProcessor-ral a parancsok feldolgozásában és a játékállapot lekérdezésében, a RenderMap-pel a játéktér kezelésében, és a GameStateHandler-rel a játékállapot mentésében/betöltésében (bár ez utóbbihoz való közvetlen grafikus kapcsolódás a kódrészletben nem hangsúlyos). Az adattárolók a játékelemek pozícióit és egyéb vizuális megjelenítéshez szükséges információkat tárolják. A prototípus osztályok példányai kerülnek megjelenítésre a felületen.