11. Grafikus felület specifikációja - AdjustmentBeaver/szoftlab GitHub Wiki
Grafikus felület specifikációja
A grafikus interfész
A játék grafikus megjelenítése:

-
A piros nyilak a váltók aktuális váltási irányát jelzik. A piros "farokrész" azt jelenti, hogy a nyíllal ellenkező irányban mindkét irányból erre halad tovább a vonat.
-
A színes ikonok az állomásokat, illetve az alagútszájakat jelzik.
-
A szaggatott vonal a felépített alagutat jelzi.
-
A felületen jelölve lesz továbbá a vonatkocsik színe, sorrendje, az alagútszájak aktivált állapota, illetve az állomások színe, típusa is.
Új játék/Játék betöltése:

- Betölti az elérhető szinteket, mentéseket. A lista elemre kattintva lehet azokat betölteni
Játék mentése, játék szüneteltetése:

-
A játékot a mezőben megadott néven lehet menteni.
-
A 'Start/Stop' menüponttal lehet a játékot szüneteltetni, újra elindítani.
A grafikus rendszer architektúrája

A felület működési elve
Minden megjelenítendő objektum (Node-ok, TrainPartok) megvalósítja a Drawable interfészt, azaz rendelkeznek egy draw függvénnyel, amelyben megkapják, hogy hova kell kirajzolniuk aktuális állapotukat. A TrainPartokra az ütemező - SimulationTimer - hívja meg ezt a kirajzolást minden szimulációs lépésben, míg a Node-ok esetén eseményvezérelt módon történik ez. Ezt úgy valósítjuk meg, hogy a grafikus felületen történő kattintás eseményekre (pozíció alapján) megkeressük a megfelelő Node-ot, majd az esetleges állapotváltás után kirajzolja magát a grafikus felületen.
A felület osztály-struktúrája

A grafikus objektumok felsorolása
IDrawable
-
Felelősség
- Interfész. Az interfészt megvalósító osztályok a Draw() metódusban elvégzik a saját maguk kirajzolását. Ahogy az osztálydiagramon látható a TrainPart és a Node és ezek leszármazott osztályaik fogják megvalósítani.
-
Metódusok
- +Draw(c:GraphicsContext):void - A paraméterben kapott Canvas objektumra rajzolja ki a saját megjelenését a megvalósító osztály. Ez a Canvas lesz megjelenítve a képernyőn.
Game
-
Felelősség
- Az eredeti Game osztály módosítása (Módosításokat feltüntetve). Létrehozza a grafikus felületet (Menü, játék megjelenítése(Canvas)).
-
Ősosztályok
- javafx.application.Application
-
Attribútumok
- -controller:Controller
-
Metódusok
-
+main(args:String[]):void - A program belépési pontja. Megjeleníti az ablakot, elindul az alkalmazás. Application launch() metódusát hívja.
-
+start(primaryStage:Stage):void - Az alkamazás elindítását követően hívódik. Innen indítjató el a vezérlés.
-
+update(string:String):void - Végrehajtja a paraméterként kapott parancsot.
-
+getCanvasGC():GraphicsContext - Visszaadja a GraphicsContext-et, amire az elemeket rajzoljuk.
-
Controller
-
Felelősség
- Kezeli a felhasználói eseményeket, menü választása, felületen való kattintás. A játékon végrehajtja az eseményeket.
-
Attribútumok
- -game:Game
-
Metódusok
-
+onClick(e:MouseEvent):void - A felületen való kattintáskor hívódik. Paraméterben megkapja a pontot, ahová a felhasználó kattintott.
-
+onNewGameMenuSelect():void - Új játék indításához tartozó eseménykezelő metódus.
-
+onLoadGameMenuSelect():void - Játék betöltése menühöz tartozó eseménykezelő metódus.
-
+onSaveGameMenuSelect():void - Játék mentése menühöz tartózó eseménykezelő metódus.
-
+onStartStopMenuSelect():void - Játék elindítása és megállítása eseménykezelő.
-
+getCanvasGC():GraphicsContext - Visszaadja a GraphicsContext-et, amire az elemeket rajzoljuk.
-
Kapcsolat az alkalmazói rendszerrel





Napló
| Kezdet | Időtartam | Résztvevők | Leírás |
|---|---|---|---|
| április 22. 21:00 | 1 óra | Dobai, Dömötör, Kövér, Telek | Megbeszélés |
| április 23. 21:00 | 3 óra | Földvári | Osztálydiagram, osztályleírások |
| április 23. 14:00 | 1,5 óra | Dobai | Grafikus interfész |
| április 23. 22:00 | 1 óra | Kövér | szekvencia-diagramok |
| április 23. 21:00 | 3 óra | Dobai | graf. interfész, felület működési elve, szekvencia-diagramok |
| április 23. 21:00 | 3 óra | Telek | Osztálytervek, szekvencia diagram renderelés |