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:

Látványterv pálya

  • 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:

Látványterv New Game

  • 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:

Látványterv Save Game

  • 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

Architektúra diagram

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

GUI Class Diagram

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

sd_loadGameEvent

sd_NewGameMenuSelect

sd_onClick

sd_saveGameEvent

sd_StartStopMenuSelect

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