MenuItem és TextRenderer dokumentáció
This commit is contained in:
203
doc/MenuItem.md
Normal file
203
doc/MenuItem.md
Normal file
@@ -0,0 +1,203 @@
|
||||
# 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
|
||||
|
||||
```python
|
||||
MenuItem(
|
||||
label,
|
||||
x,
|
||||
y,
|
||||
left,
|
||||
right,
|
||||
up,
|
||||
down,
|
||||
action,
|
||||
data=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.
|
||||
|
||||
---
|
||||
|
||||
## Attribútumok
|
||||
|
||||
### Navigáció
|
||||
|
||||
```python
|
||||
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:
|
||||
|
||||
```python
|
||||
None
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Akció
|
||||
|
||||
```python
|
||||
self.action
|
||||
```
|
||||
|
||||
A kiválasztás során meghívandó függvény.
|
||||
|
||||
Példa:
|
||||
|
||||
```python
|
||||
def start_game(data):
|
||||
print("Játék indul!")
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Adat
|
||||
|
||||
```python
|
||||
self.data
|
||||
```
|
||||
|
||||
A menüelemhez kapcsolódó opcionális adat, amelyet az akciófüggvény paraméterként kap meg.
|
||||
|
||||
Példa:
|
||||
|
||||
```python
|
||||
MenuItem(
|
||||
"Nehéz",
|
||||
100, 100,
|
||||
None, None, None, None,
|
||||
set_difficulty,
|
||||
"hard"
|
||||
)
|
||||
```
|
||||
|
||||
Kiválasztáskor:
|
||||
|
||||
```python
|
||||
set_difficulty("hard")
|
||||
```
|
||||
|
||||
fut le.
|
||||
|
||||
---
|
||||
|
||||
### Pozíció
|
||||
|
||||
```python
|
||||
self.x
|
||||
self.y
|
||||
```
|
||||
|
||||
A menüpont képernyőn elfoglalt pozíciója.
|
||||
|
||||
---
|
||||
|
||||
### Szövegmegjelenítő
|
||||
|
||||
```python
|
||||
self.text
|
||||
```
|
||||
|
||||
Egy `TextRenderer` objektum, amely a felirat megjelenítéséért felel.
|
||||
|
||||
---
|
||||
|
||||
### Kijelölt állapot
|
||||
|
||||
```python
|
||||
self.selected
|
||||
```
|
||||
|
||||
Logikai érték:
|
||||
|
||||
- `True`: a menüpont jelenleg ki van jelölve;
|
||||
- `False`: a menüpont nincs kijelölve.
|
||||
|
||||
---
|
||||
|
||||
## Metódusok
|
||||
|
||||
### `select()`
|
||||
|
||||
```python
|
||||
select()
|
||||
```
|
||||
|
||||
Kijelöli a menüpontot.
|
||||
|
||||
#### Működés
|
||||
|
||||
```python
|
||||
self.selected = True
|
||||
```
|
||||
|
||||
#### Példa
|
||||
|
||||
```python
|
||||
start_button.select()
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### `update()`
|
||||
|
||||
```python
|
||||
update()
|
||||
```
|
||||
|
||||
A menüpont állapotának frissítése.
|
||||
|
||||
Ha az elem nincs kijelölve, a függvény azonnal visszatér:
|
||||
|
||||
```python
|
||||
if not self.selected:
|
||||
return
|
||||
```
|
||||
Reference in New Issue
Block a user