mirror of
https://github.com/kristoferssolo/Qualification-Thesis.git
synced 2025-10-21 20:10:37 +00:00
feat: add poweup module
This commit is contained in:
parent
935343f7d2
commit
4209d94e24
2
doc.typ
2
doc.typ
@ -30,7 +30,7 @@ izdrukai.
|
|||||||
Darba vadītājs: *prof. Mg. dat. Jānis Iljins ~~\_\_.01.2025.*]
|
Darba vadītājs: *prof. Mg. dat. Jānis Iljins ~~\_\_.01.2025.*]
|
||||||
|
|
||||||
v(vspace)
|
v(vspace)
|
||||||
[Recenzents: #todo("write reviewer name")*recenzenta grāds, vārds, uzvārds*]
|
[Recenzents: _grāds, vārds, uzvārds_ #long-underline]
|
||||||
|
|
||||||
|
|
||||||
v(vspace)
|
v(vspace)
|
||||||
|
|||||||
227
main.typ
227
main.typ
@ -400,13 +400,11 @@ pienākumi, un tas ietver funkcijas, kas veicina kopējo spēles sistēmu.
|
|||||||
[Labirinta pārvaldības saskarne],
|
[Labirinta pārvaldības saskarne],
|
||||||
[#link(<dev_tools-F01>)[IRMF01]],
|
[#link(<dev_tools-F01>)[IRMF01]],
|
||||||
|
|
||||||
rowspanx(3)[Stāva pārvaldības modulis], // floor
|
rowspanx(2)[Stāva pārvaldības modulis], // floor
|
||||||
[Stāva ielāde],
|
[Stāva kustība],
|
||||||
[],
|
[#link(<floor-F01>)[SPMF01]],
|
||||||
[Stāva izlāde],
|
[Stāvu pārejas apstrāde],
|
||||||
[],
|
[#link(<floor-F02>)[SPMF02]],
|
||||||
[Stāvu kustība],
|
|
||||||
[],
|
|
||||||
|
|
||||||
rowspanx(1)[Labirinta ģenerēšanas modulis], // hexlab
|
rowspanx(1)[Labirinta ģenerēšanas modulis], // hexlab
|
||||||
[Labirinta būvētājs],
|
[Labirinta būvētājs],
|
||||||
@ -437,6 +435,12 @@ pienākumi, un tas ietver funkcijas, kas veicina kopējo spēles sistēmu.
|
|||||||
[#link(<screen-F03>)[SSPMF03]],
|
[#link(<screen-F03>)[SSPMF03]],
|
||||||
|
|
||||||
rowspanx(3)[Papildspēju modulis], // power_up
|
rowspanx(3)[Papildspēju modulis], // power_up
|
||||||
|
[Spēlētāja ievades apstrāde],
|
||||||
|
[#link(<power-up-F01>)[PSMF01]],
|
||||||
|
[Ceļa rādīšanas papildspēja],
|
||||||
|
[#link(<power-up-F02>)[PSMF02]],
|
||||||
|
[Sienu pārlēkšanas papildspēja],
|
||||||
|
[#link(<power-up-F03>)[PSMF03]],
|
||||||
),
|
),
|
||||||
) <function-modules>
|
) <function-modules>
|
||||||
|
|
||||||
@ -518,7 +522,78 @@ gala lietotāji nevar piekļūt šīm uzlabotajām konfigurācijas opcijām.
|
|||||||
) <dev_tools-F01>
|
) <dev_tools-F01>
|
||||||
|
|
||||||
=== Stāvu pārvaldības modulis
|
=== Stāvu pārvaldības modulis
|
||||||
#todo("uzrakstīt stāvu pārvaldības moduli")
|
Stāvu pārvaldības modulis nodrošina vertikālo pārvietošanos starp spēles
|
||||||
|
līmeņiem.
|
||||||
|
Modulis sastāv no divām galvenajām funkcijām (sk. @fig:dpd-2-floor):
|
||||||
|
stāvu kustības (sk. @tbl:floor-F01) un stāvu
|
||||||
|
pārejas apstrādes (sk. @tbl:floor-F02).
|
||||||
|
Stāvu kustības sistēma nodrošina plūstošu vertikālo pārvietošanos starp
|
||||||
|
līmeņiem, savukārt pārejas apstrādes sistema koordinē pārejas starp pašreizējo
|
||||||
|
un nākamo stāvu, reaģējot uz "TransitionFloor" notikumu (sk. @tbl:events-floor).
|
||||||
|
|
||||||
|
#figure(
|
||||||
|
caption: [Stāvu pārvaldības moduļa 2. līmeņa DPD],
|
||||||
|
diagram(
|
||||||
|
spacing: (8em, 4em),
|
||||||
|
{
|
||||||
|
process((-1, 0), [Stāvu\ kustība])
|
||||||
|
dpd-edge("d,r,u", align(center)[Atjaunoti labirinta\ entitātes dati])
|
||||||
|
|
||||||
|
dpd-database((0, 0), [Operatīvā\ atmiņa])
|
||||||
|
dpd-edge("u,l,d", align(center)[Atjaunotie labirinta\ entitātes dati])
|
||||||
|
|
||||||
|
dpd-edge("u,r,d", align(center)[Labirinta\ konfigurācijas dati])
|
||||||
|
dpd-edge("uu,r,dd", align(center)[Labirinta entitātes dati])
|
||||||
|
dpd-edge("uuu,r,ddd", align(center)[Sistēmas notikumu dati])
|
||||||
|
|
||||||
|
process((1, 0), [Stāvu pārejas\ apstrāde])
|
||||||
|
dpd-edge("d,l,u", align(center)[Atjaunoti labirinta\ entitātes dati])
|
||||||
|
},
|
||||||
|
),
|
||||||
|
) <dpd-2-floor>
|
||||||
|
|
||||||
|
#function-table(
|
||||||
|
"Stāvu kustība",
|
||||||
|
"SPMF01",
|
||||||
|
"Nodrošina plūstošu pāreju starp stāviem, pārvietojot tos vertikāli.",
|
||||||
|
[
|
||||||
|
+ Labirinta entitātes ar galamērķa $Y$ pozīcijām.
|
||||||
|
],
|
||||||
|
[
|
||||||
|
+ Aprēķina kustības attālumus.
|
||||||
|
+ Pārvieto stāvus uz galamērķi ar noteiktu ātrumu.
|
||||||
|
+ Atjaunina stāvu pozīcijas datus.
|
||||||
|
+ Noņem mērķa komponentes pēc sasniegšanas.
|
||||||
|
],
|
||||||
|
[
|
||||||
|
+ Atjaunināto stāva pozīcijas.
|
||||||
|
],
|
||||||
|
) <floor-F01>
|
||||||
|
|
||||||
|
#function-table(
|
||||||
|
"Stāvu pārejas apstrāde",
|
||||||
|
"SPMF02",
|
||||||
|
"Apstrādā stāvu pārejas notikumus un koordinē pārejas starp stāviem.",
|
||||||
|
[
|
||||||
|
+ Pārejas notikums.
|
||||||
|
+ Stāvas entitātes.
|
||||||
|
+ Pašreizējais stāvs.
|
||||||
|
+ Nākamais stāvs.
|
||||||
|
],
|
||||||
|
[
|
||||||
|
+ Pārbauda vai ir aktīva pāreja.
|
||||||
|
+ Ja ir, iziet no sistēmas un nedara neko.
|
||||||
|
+ Aprēķina galamērķu pozīcijas.
|
||||||
|
+ Pievieno mērķa komponentes stāvu entitātēm.
|
||||||
|
+ Atjauno stāvu statusus:
|
||||||
|
+ Noņem pašreizējā stāva komponenti no pašreizējā stāva entitātes.
|
||||||
|
+ Pievieno nākamā stāva komponenti nākamā entitātei.
|
||||||
|
+ Noņem nākamā stāva komponenti no nākamā stāva entitātes.
|
||||||
|
],
|
||||||
|
[
|
||||||
|
+ Atjaunināts stāvs.
|
||||||
|
],
|
||||||
|
) <floor-F02>
|
||||||
|
|
||||||
=== Labirinta ģenerēšanas modulis
|
=== Labirinta ģenerēšanas modulis
|
||||||
|
|
||||||
@ -599,8 +674,7 @@ pārvaldību katrā spēles stāvā. Moduļa darbības plūsma ir attēlota 2. l
|
|||||||
plūsmas diagrammā (sk. @fig:dpd-2-maze).
|
plūsmas diagrammā (sk. @fig:dpd-2-maze).
|
||||||
|
|
||||||
Modulis nodrošina divas galvenās funkcijas: labirinta izveidi
|
Modulis nodrošina divas galvenās funkcijas: labirinta izveidi
|
||||||
(#link(<maze-F01>)[LPMF01]) un labirinta atjaunošanu
|
(sk. @tbl:maze-F01) un labirinta atjaunošanu (sk. @tbl:maze-F02).
|
||||||
(#link(<maze-F02>)[LPMF02]).
|
|
||||||
Labirinta izveides funkcija tiek izsaukta, kad nepieciešams izveidot jaunu
|
Labirinta izveides funkcija tiek izsaukta, kad nepieciešams izveidot jaunu
|
||||||
stāvu, pārbaudot, vai šāds stāvs jau neeksistē.
|
stāvu, pārbaudot, vai šāds stāvs jau neeksistē.
|
||||||
Funkcija ģenerē jaunu labirintu, izmantojot norādīto konfigurāciju, un izvieto
|
Funkcija ģenerē jaunu labirintu, izmantojot norādīto konfigurāciju, un izvieto
|
||||||
@ -623,7 +697,7 @@ saglabājot to pašu stāva numuru un pozīciju telpā nemainot entitātes ID.
|
|||||||
dpd-edge("uu,r,dd", align(center)[Labirinta entitātes dati])
|
dpd-edge("uu,r,dd", align(center)[Labirinta entitātes dati])
|
||||||
|
|
||||||
process((1, 0), [Labirinta\ pārlāde])
|
process((1, 0), [Labirinta\ pārlāde])
|
||||||
dpd-edge("d,l,u", align(center)[Atjaunotie labirinta\ entitātes dati])
|
dpd-edge("d,l,u", align(center)[Atjaunoti labirinta\ entitātes dati])
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
) <dpd-2-maze>
|
) <dpd-2-maze>
|
||||||
@ -693,8 +767,7 @@ plūsma ir attēlota 2. līmeņa datu plūsmas diagrammā (sk. @fig:dpd-2-player
|
|||||||
parāda četras galvenās funkcijas un to mijiedarbību ar datu glabātuvi.
|
parāda četras galvenās funkcijas un to mijiedarbību ar datu glabātuvi.
|
||||||
|
|
||||||
Spēlētāja kustība tiek realizēta divās daļās: ievades apstrāde
|
Spēlētāja kustība tiek realizēta divās daļās: ievades apstrāde
|
||||||
(#link(<player-F02>)[SPMF02]) un kustības izpilde
|
(@tbl:player-F02) un kustības izpilde (@tbl:player-F03).
|
||||||
(#link(<player-F03>)[SPMF03]).
|
|
||||||
Ievades apstrādes funkcija pārbauda tastatūras ievadi
|
Ievades apstrādes funkcija pārbauda tastatūras ievadi
|
||||||
un, ņemot vērā labirinta sienu izvietojumu, nosaka nākamo kustības mērķi.
|
un, ņemot vērā labirinta sienu izvietojumu, nosaka nākamo kustības mērķi.
|
||||||
Kustības izpildes funkcija nodrošina plūstošu pārvietošanos uz mērķa pozīciju,
|
Kustības izpildes funkcija nodrošina plūstošu pārvietošanos uz mērķa pozīciju,
|
||||||
@ -841,10 +914,10 @@ punktiem, funkcija izsauc atbilstošu pārejas notikumu.
|
|||||||
"SPMF03",
|
"SPMF03",
|
||||||
"Atjaunina spēlētāja pozīciju, veicot plūstošu pārvietošanos uz mērķa plāksnes pozīciju.",
|
"Atjaunina spēlētāja pozīciju, veicot plūstošu pārvietošanos uz mērķa plāksnes pozīciju.",
|
||||||
[
|
[
|
||||||
+ Kustības mērķis
|
+ Kustības mērķis.
|
||||||
+ Kustības ātrums
|
+ Kustības ātrums.
|
||||||
+ Pašreizējā pozīcija
|
+ Pašreizējā pozīcija.
|
||||||
+ Labirinta konfigurācija
|
+ Labirinta konfigurācija.
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
+ Aprēķina mērķa pozīciju pasaules koordinātēs.
|
+ Aprēķina mērķa pozīciju pasaules koordinātēs.
|
||||||
@ -881,9 +954,9 @@ punktiem, funkcija izsauc atbilstošu pārejas notikumu.
|
|||||||
=== Spēles stāvokļa pārvaldības modulis
|
=== Spēles stāvokļa pārvaldības modulis
|
||||||
Spēles stāvokļa pārvaldības modulis nodrošina spēles dažādu stāvokļu pārvaldību
|
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
|
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
|
sākšana (@tbl:screen-F01), atgriešanās uz sākumekrānu
|
||||||
(#link(<screen-F02>)[SSPMF02]) un sākumekrāna attēlošanas
|
(@tbl:screen-F02) un sākumekrāna attēlošanas
|
||||||
(#link(<screen-F03>)[SSPMF03]). Katra no šīm funkcijām apstrādā specifiskus
|
(@tbl:screen-F03). Katra no šīm funkcijām apstrādā specifiskus
|
||||||
lietotāja ievades datus un atbilstoši atjaunina spēles stāvokli operatīvajā
|
lietotāja ievades datus un atbilstoši atjaunina spēles stāvokli operatīvajā
|
||||||
atmiņā.
|
atmiņā.
|
||||||
|
|
||||||
@ -976,7 +1049,6 @@ sākumekrānu.
|
|||||||
[
|
[
|
||||||
+ Pievieno interaktīvas pogas:
|
+ Pievieno interaktīvas pogas:
|
||||||
- pogu "Play" ar pāreju uz spēli;
|
- pogu "Play" ar pāreju uz spēli;
|
||||||
// - pogu "Credits" ar pāreju uz kredītiem;
|
|
||||||
- pogu "Exit" (tikai platformām, kas nav WASM).
|
- pogu "Exit" (tikai platformām, kas nav WASM).
|
||||||
+ Pievieno novērotājus katrai pogai.
|
+ Pievieno novērotājus katrai pogai.
|
||||||
],
|
],
|
||||||
@ -986,7 +1058,114 @@ sākumekrānu.
|
|||||||
) <screen-F03>
|
) <screen-F03>
|
||||||
|
|
||||||
|
|
||||||
#todo("uzrakstīt papildspēju moduli")
|
=== Papildspēju modulis
|
||||||
|
|
||||||
|
Papildspēju modulis nodrošina spēlētājam papildu iespējas labirinta izpētē,
|
||||||
|
piedāvājot divas galvenās funkcijas: sienu pārlēkšanu un izejas ceļa parādīšanu
|
||||||
|
(sk. @fig:dpd-2-powerup).
|
||||||
|
|
||||||
|
#figure(
|
||||||
|
caption: [Papildspēju moduļa 2. līmeņa DPD],
|
||||||
|
diagram(
|
||||||
|
spacing: (8em, 4em),
|
||||||
|
{
|
||||||
|
data-store((0, 0), [Spēlētājs])
|
||||||
|
dpd-edge("r", align(center)[Tastatūras\ ievades dati])
|
||||||
|
|
||||||
|
process((1, -1), [Ceļa rādīšanas\ papildspēja])
|
||||||
|
dpd-edge(
|
||||||
|
"dr",
|
||||||
|
align(center)[Ceļa marķieru\ dati],
|
||||||
|
label-pos: 0.4,
|
||||||
|
)
|
||||||
|
|
||||||
|
process((1, 0), [Spēlētāja\ ievades apstrāde])
|
||||||
|
dpd-edge("r", align(center)[Papildspēju\ notikumu dati])
|
||||||
|
|
||||||
|
process((1, 1), [Sienu pārlēkšanas\ papildspēja])
|
||||||
|
dpd-edge(
|
||||||
|
"ur",
|
||||||
|
align(center)[Atjaunoti spēlētāja\ entitātes dati],
|
||||||
|
label-pos: 0.3,
|
||||||
|
)
|
||||||
|
|
||||||
|
dpd-database((2, 0), [Operatīvā\ atmiņa])
|
||||||
|
dpd-edge("u,l", align(center)[Papildspēju\ notikumu dati], label-pos: 0.6)
|
||||||
|
dpd-edge("d,l", align(center)[Papildspēju\ notikumu dati], label-pos: 0.6)
|
||||||
|
},
|
||||||
|
),
|
||||||
|
) <dpd-2-powerup>
|
||||||
|
|
||||||
|
#function-table(
|
||||||
|
"Spēlētāja ievades apstrāde",
|
||||||
|
"PSMF01",
|
||||||
|
"Apstrādā spēlētāja tastatūras ievadi un aktivizē attiecīgo papildspēju.",
|
||||||
|
[
|
||||||
|
+ Tastatūras ievade.
|
||||||
|
+ Globālā konfigurācija.
|
||||||
|
+ Papildspējas atdzišanas stāvoklis.
|
||||||
|
+ Atdzišanas laiks.
|
||||||
|
],
|
||||||
|
[
|
||||||
|
+ Pārbauda lēkšanas papildspējas ievadi.
|
||||||
|
+ Iegūst lēkšanas taustiņu no konfigurācijas.
|
||||||
|
+ Ja taustiņš nospiests un nav atdzišanas periodā.
|
||||||
|
+ Izsauc lēkšanas notikumu.
|
||||||
|
+ Pārbauda ceļa rādīšanas papildspējas ievadi.
|
||||||
|
+ Iegūst ceļa rādīšanas taustiņu no konfigurācijas
|
||||||
|
+ Ja taustiņš nospiests un nav atdzišanas periodā.
|
||||||
|
+ Izsauc ceļa parādīšanas notikumu.
|
||||||
|
],
|
||||||
|
[
|
||||||
|
+ Papilspējas notikums.
|
||||||
|
],
|
||||||
|
) <power-up-F01>
|
||||||
|
|
||||||
|
#function-table(
|
||||||
|
"Ceļa rādīšanas papildspēja",
|
||||||
|
"PSMF02",
|
||||||
|
"Rāda ceļu uz izeju noteiktu laiku periodu.",
|
||||||
|
[
|
||||||
|
+ Papilspējas notikums.
|
||||||
|
+ Pašreizējā spēlētāja pozīcija.
|
||||||
|
+ Labirinta konfigurācija.
|
||||||
|
+ Laiks.
|
||||||
|
],
|
||||||
|
[
|
||||||
|
+ Aprēķina īsāko ceļu no pašreizējās pozīcijas līdz labirinta izejai.
|
||||||
|
+ Izveido ceļa marķieru entitātes.
|
||||||
|
+ Seko līdzi atlikušajam laikam.
|
||||||
|
+ Ja laiks pārsniedz 10 sekundes, izdzēš ceļa marķierus.
|
||||||
|
],
|
||||||
|
[
|
||||||
|
+ Ceļa vizualizācijas dati.
|
||||||
|
],
|
||||||
|
) <power-up-F02>
|
||||||
|
|
||||||
|
#function-table(
|
||||||
|
"Sienu pārlēkšanas papildspēja",
|
||||||
|
"PSMF03",
|
||||||
|
"Ļauj pārlēkt pāri sienām.",
|
||||||
|
[
|
||||||
|
+ Lēciena pozīcijas dati
|
||||||
|
+ Papilspējas notikums.
|
||||||
|
+ Kustības mērķis.
|
||||||
|
+ Kustības ātrums.
|
||||||
|
+ Pašreizējā spēlētāja pozīcija.
|
||||||
|
+ Labirinta konfigurācija.
|
||||||
|
],
|
||||||
|
[
|
||||||
|
+ Aprēķina mērķa pozīciju pasaules koordinātēs.
|
||||||
|
+ Pārbauda sienas esamību.
|
||||||
|
+ Pārvieto spēlētāju uz mērķi ar noteiktu ātrumu.
|
||||||
|
+ Atjaunina pozīcijas datus.
|
||||||
|
],
|
||||||
|
[
|
||||||
|
+ Atjauninātā pozīcija.
|
||||||
|
+ Transformācijas dati.
|
||||||
|
],
|
||||||
|
) <power-up-F03>
|
||||||
|
|
||||||
|
|
||||||
== Nefunkcionālās prasības
|
== Nefunkcionālās prasības
|
||||||
=== Veiktspējas prasības
|
=== Veiktspējas prasības
|
||||||
@ -1030,6 +1209,8 @@ ir noteiktas, lai nodrošinātu plašu pieejamību, vienlaikus saglabājot veikt
|
|||||||
|
|
||||||
=== Ārējās saskarnes prasības
|
=== Ārējās saskarnes prasības
|
||||||
|
|
||||||
|
#todo("Ārējās saskarnes prasības")
|
||||||
|
|
||||||
= Programmatūras projektējuma apraksts
|
= Programmatūras projektējuma apraksts
|
||||||
== Datu struktūru projektējums
|
== Datu struktūru projektējums
|
||||||
|
|
||||||
@ -1231,8 +1412,6 @@ Spēle izmanto vairākus resursus globālās konfigurācijas un stāvokļa pārv
|
|||||||
|
|
||||||
#todo("pievienot funkciju projektējumu +diagrammas")
|
#todo("pievienot funkciju projektējumu +diagrammas")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#figure(
|
#figure(
|
||||||
caption: "Stāva pārejas diagramma",
|
caption: "Stāva pārejas diagramma",
|
||||||
kind: image,
|
kind: image,
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user