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