feat: finish screen module

This commit is contained in:
Kristofers Solo 2025-01-01 18:32:06 +02:00
parent 8277cf452a
commit e297e1ab9a

View File

@ -644,24 +644,53 @@ programmu.
#todo("uzrakstīt spēlētāja moduli") #todo("uzrakstīt spēlētāja moduli")
=== Spēles stāvokļa pārvaldības modulis === Spēles stāvokļa pārvaldības modulis
#todo("uzrakstīt spēles stāvokļa pārvaldības moduli") Spēles stāvokļa pārvaldības modulis nodrošina spēles dažādu stāvokļu pārvaldību
un pārejas starp tiem. Modulis sastāv no trim galvenajām funkcijām: spēles
sākšana (#link(<screen-F01>)[SSPMF01]), atgriešanās uz sākumekrānu
(#link(<screen-F02>)[SSPMF02]) un sākumekrāna attēlošanas
(#link(<screen-F03>)[SSPMF03]). Katra no šīm funkcijām apstrādā specifiskus
lietotāja ievades datus un atbilstoši atjaunina spēles stāvokli operatīvajā
atmiņā.
Moduļa 2. līmeņa DPD diagramma (sk. @fig:dpd-2-screen) parāda, ka lietotājs
mijiedarbojas ar sistēmu caur diviem galvenajiem ievades veidiem: pogu izvēli
sākumekrānā un "Escape" taustiņa nospiešanu spēles laikā.
Spēles sākšanas funkcija inicializē nepieciešamos resursus un
sistēmas, kad lietotājs izvēlas sākt jaunu spēli. Atgriešanās funkcija
apstrādā lietotāja pieprasījumu pārtraukt aktīvo spēli un atgriežas uz
sākumekrānu.
#figure( #figure(
caption: [\2. līmeņa DPD], caption: [Spēles stāvokļa pārvaldības moduļa 2. līmeņa DPD],
diagram({ diagram({
dpd-database((0, 0), [Operatīvā\ atmiņa], snap: -1) data-store((0, 0), [Spēlētājs])
dpd-edge("rrr", align(center)[Tastatūras\ ievades dati])
dpd-edge("u,rrr", align(center)[Izvēlētās\ pogas dati], label-pos: 0.6)
process((-2, 0), [SSPMF01:\ Spēles sākšana]) process((3, -1), [Spēles\ sākšana])
dpd-edge("r", [Ekrāna stāvoklis]) dpd-edge("rrr,d", align(center)[Spēles\ stāvokļa dati], label-pos: 0.4)
process((2, 0), [SSPMF02:\ Atgriešanās]) process((3, 0), [Atgriešanās\ uz sākumekrānu])
dpd-edge("l", [Tastatūras ievade]) dpd-edge("rrr", align(center)[Spēles\ stāvokļa dati])
process((0, 2), [SSPMF03:\ Sākumekrāns]) process((3, 1), [Attēlot\ sākumekrānu])
dpd-edge("u", [UI elementi]) dpd-edge(
dpd-edge("d", [Pogu stāvokļi]) "rrr,u",
align(center)[Atjaunoti spēles\ stāvokļa dati],
label-pos: 0.3,
shift: -20pt,
)
dpd-database((6, 0), [Operatīvā\ atmiņa])
dpd-edge(
"d,lll",
align(center)[Atjaunoti spēles\ stāvokļa dati],
label-pos: 0.7,
shift: -20pt,
)
}), }),
) <dpd-2-floor> ) <dpd-2-screen>
#function-table( #function-table(
"Spēles sākšana", "Spēles sākšana",