Files
rrttm/doc/MenuItem.md
2026-10-07 12:14:49 +02:00

3.0 KiB

MenuItem

Áttekintés

A MenuItem osztály egy játék menürendszerének egyetlen választható elemét reprezentálja. Az osztály kezeli:

  • a menüpont szövegének megjelenítését,
  • a kijelölést,
  • a menüpontok közötti navigációt,
  • a kiválasztáskor meghívandó függvényt (akciót),
  • valamint a kurzor kirajzolását.

A menüpontok egy irányított hálózatot alkotnak, ahol minden elem ismeri a szomszédait (up, down, left, right).


Konstruktor

MenuItem(
    label,
    x,
    y,
    left,
    right,
    up,
    down,
    action,
    data=None,
    back_func=None
)

Paraméterek

  • label (str)
    A menüpont megjelenő szövege.

  • x (int)
    A menüpont vízszintes pozíciója.

  • y (int)
    A menüpont függőleges pozíciója.

  • left (MenuItem | None)
    A bal oldali szomszédos menüpont.

  • right (MenuItem | None)
    A jobb oldali szomszédos menüpont.

  • up (MenuItem | None)
    A felső szomszédos menüpont.

  • down (MenuItem | None)
    Az alsó szomszédos menüpont.

  • action (callable)
    A menüpont kiválasztásakor meghívandó függvény.

  • data (any, opcionális)
    A kiválasztáskor az akciónak átadott adat.

  • back_func (callable)
    A menüpont kiválasztásakor meghívandó függvény.


Attribútumok

Navigáció

self.left
self.right
self.up
self.down

A szomszédos menüpontokra mutató referenciák.

Ha egy adott irányban nincs további menüpont, akkor az attribútum értéke:

None

Akció

self.action

A kiválasztás során meghívandó függvény.

Példa:

def start_game(data):
    print("Játék indul!")

Vissza

self.back

A visszalépés során meghívandó függvény.

Példa:

def vissza(data):
    open_menu()

Adat

self.data

A menüelemhez kapcsolódó opcionális adat, amelyet az akció- és visszafüggvény paraméterként kap meg.

Példa:

MenuItem(
    "Nehéz",
    100, 100,
    None, None, None, None,
    set_difficulty,
    "hard"
)

Kiválasztáskor:

set_difficulty("hard")

fut le.


Pozíció

self.x
self.y

A menüpont képernyőn elfoglalt pozíciója.


Szövegmegjelenítő

self.text

Egy TextRenderer objektum, amely a felirat megjelenítéséért felel.


Kijelölt állapot

self.selected

Logikai érték:

  • True: a menüpont jelenleg ki van jelölve;
  • False: a menüpont nincs kijelölve.

Metódusok

select()

select()

Kijelöli a menüpontot.

Működés

self.selected = True

Példa

start_button.select()

update()

update()

A menüpont állapotának frissítése.

Ha az elem nincs kijelölve, a függvény azonnal visszatér:

if not self.selected:
    return