mirror of
https://github.com/kristoferssolo/Qualification-Thesis.git
synced 2025-10-21 20:10:37 +00:00
feat(dev_tools): add module
This commit is contained in:
parent
2ff2c82385
commit
645a14aee5
@ -121,3 +121,13 @@ webgl2:
|
|||||||
title: Bevy + WebGPU
|
title: Bevy + WebGPU
|
||||||
author:
|
author:
|
||||||
url: https://bevyengine.org/news/bevy-webgpu/
|
url: https://bevyengine.org/news/bevy-webgpu/
|
||||||
|
bevy-egui:
|
||||||
|
type: Web
|
||||||
|
title: Bevy Egui bibliotēkas dokumentācija
|
||||||
|
author:
|
||||||
|
url: https://docs.rs/bevy_egui/latest/bevy_egui/
|
||||||
|
bevy-inspector-egui:
|
||||||
|
type: Web
|
||||||
|
title: Bevy Inspector Egui bibliotēkas dokumentācija
|
||||||
|
author:
|
||||||
|
url: https://docs.rs/bevy-inspector-egui/0.28.0/bevy_inspector_egui/
|
||||||
|
|||||||
195
main.typ
195
main.typ
@ -28,10 +28,11 @@
|
|||||||
/ PPA: programmatūras projektējuma apraksts;
|
/ PPA: programmatūras projektējuma apraksts;
|
||||||
/ PPS: programmatūras prasību specifikācija;
|
/ PPS: programmatūras prasību specifikācija;
|
||||||
/ Papildspēja: objekts, kas kā spēles mehānika spēlētājam piešķir īslaicīgas priekšrocības vai papildu spējas (angl. power-up#footnote[https://en.wikipedia.org/wiki/Power-up]<power-up>);
|
/ Papildspēja: objekts, kas kā spēles mehānika spēlētājam piešķir īslaicīgas priekšrocības vai papildu spējas (angl. power-up#footnote[https://en.wikipedia.org/wiki/Power-up]<power-up>);
|
||||||
|
/ Pasaules resursi: #todo("add World resource")
|
||||||
/ Pirmkods: Cilvēkam lasāmas programmēšanas instrukcijas, kas nosaka programmatūras darbību.
|
/ Pirmkods: Cilvēkam lasāmas programmēšanas instrukcijas, kas nosaka programmatūras darbību.
|
||||||
/ Renderēšana: Process, kurā tiek ģenerēts vizuāla izvade.
|
/ Renderēšana: Process, kurā tiek ģenerēts vizuāla izvade.
|
||||||
/ Sēkla: Skaitliska vērtība, ko izmanto nejaušo skaitļu ģeneratora inicializēšanai.
|
|
||||||
/ Spēlētājs: lietotāja ieraksts vienas virtuālās istabas kontekstā.
|
/ Spēlētājs: lietotāja ieraksts vienas virtuālās istabas kontekstā.
|
||||||
|
/ Sēkla: Skaitliska vērtība, ko izmanto nejaušo skaitļu ģeneratora inicializēšanai.
|
||||||
|
|
||||||
/* Pēdējos gados spēļu izstrādes joma ir piedzīvojusi strauju popularitātes
|
/* Pēdējos gados spēļu izstrādes joma ir piedzīvojusi strauju popularitātes
|
||||||
* pieaugumu, ko veicināja neatkarīgo spēļu skaita pieaugums un jaudīgu spēļu
|
* pieaugumu, ko veicināja neatkarīgo spēļu skaita pieaugums un jaudīgu spēļu
|
||||||
@ -192,7 +193,7 @@ Ar lietotājiem saistītās datu plūsmas ir attēlotas sistēmas nultā līmeņ
|
|||||||
- tīmekļa spēļu spēlēšanai (WebAssembly versija) pārlūkprogrammai jābūt mūsdienīgai un saderīgai ar WebAssembly.
|
- tīmekļa spēļu spēlēšanai (WebAssembly versija) pārlūkprogrammai jābūt mūsdienīgai un saderīgai ar WebAssembly.
|
||||||
- ekrāna izšķirtspējai jābūt vismaz 800x600 pikseļu, lai spēle būtu optimāla.
|
- ekrāna izšķirtspējai jābūt vismaz 800x600 pikseļu, lai spēle būtu optimāla.
|
||||||
- Veiktspējas atkarība:
|
- Veiktspējas atkarība:
|
||||||
- Spēle ir atkarīga no Bevy spēles dzinēja (0.14).
|
- Spēle ir atkarīga no Bevy spēles dzinēja (0.15).
|
||||||
- Veiksmīga kompilēšana un izvietošana ir atkarīga no CI/CD darbplūsmai saderības ar:
|
- Veiksmīga kompilēšana un izvietošana ir atkarīga no CI/CD darbplūsmai saderības ar:
|
||||||
- Linux kompilācijām;
|
- Linux kompilācijām;
|
||||||
- macOS kompilācijām;
|
- macOS kompilācijām;
|
||||||
@ -257,15 +258,47 @@ pienākumi, un tas ietver funkcijas, kas veicina kopējo spēles sistēmu.
|
|||||||
[*Funkcija*],
|
[*Funkcija*],
|
||||||
[*Identifikators*],
|
[*Identifikators*],
|
||||||
/* -------------- */
|
/* -------------- */
|
||||||
rowspanx(3)[Ievades apstrādes modulis],
|
rowspanx(1)[Audio modulis], // audio
|
||||||
[Ievades notikumu apstrāde],
|
[Skaņas efektu atskaņošana],
|
||||||
[],
|
|
||||||
[Ievades stāvokļa atjaunināšana],
|
|
||||||
[],
|
|
||||||
[Ievades validācija],
|
|
||||||
[],
|
[],
|
||||||
|
|
||||||
rowspanx(4)[Spēles stāvokļa pārvaldības modulis],
|
rowspanx(1)[Izstrādes rīku modulis], // dev_tools
|
||||||
|
[Labirinta pārvaldības saskarne],
|
||||||
|
[#link(<dev_tools-F01>)[IRMF01]],
|
||||||
|
|
||||||
|
rowspanx(3)[Stāva pārvaldības modulis], // floor
|
||||||
|
[Stāva ielāde],
|
||||||
|
[],
|
||||||
|
[Stāva #red("izlāde")],
|
||||||
|
[],
|
||||||
|
[Stāvu kustība],
|
||||||
|
[],
|
||||||
|
|
||||||
|
rowspanx(1)[Labirinta ģenerēšanas modulis], // hexlab
|
||||||
|
[Labirinta būvētājs],
|
||||||
|
[#link(<hexlab-F01>)[LGMF01]],
|
||||||
|
|
||||||
|
rowspanx(3)[Labirinta pārvaldības modulis], // maze
|
||||||
|
[Labirinta ielāde],
|
||||||
|
[],
|
||||||
|
[Labirinta #red("pārlāde")],
|
||||||
|
[],
|
||||||
|
[Labirinta #red("izlāde")],
|
||||||
|
[],
|
||||||
|
|
||||||
|
rowspanx(5)[Spēlētāja modulis], // player
|
||||||
|
[Spēlētāja ielāde],
|
||||||
|
[],
|
||||||
|
[Spēlētāja ievades apstrāde],
|
||||||
|
[],
|
||||||
|
[Spēlētāja kustība],
|
||||||
|
[],
|
||||||
|
[Spēlētāja #red("pacelšanās")],
|
||||||
|
[],
|
||||||
|
[Spēlētāja #red("nolaušainās")],
|
||||||
|
[],
|
||||||
|
|
||||||
|
rowspanx(4)[Spēles stāvokļa pārvaldības modulis], // screens
|
||||||
[Spēļu stāvokļa pārvaldība],
|
[Spēļu stāvokļa pārvaldība],
|
||||||
[],
|
[],
|
||||||
[Spēles cilpas pārvaldība],
|
[Spēles cilpas pārvaldība],
|
||||||
@ -274,68 +307,86 @@ pienākumi, un tas ietver funkcijas, kas veicina kopējo spēles sistēmu.
|
|||||||
[],
|
[],
|
||||||
[Spēles notikumu apstrāde],
|
[Spēles notikumu apstrāde],
|
||||||
[],
|
[],
|
||||||
|
|
||||||
rowspanx(4)[Spēlētāja modulis],
|
|
||||||
[Kustības vadība],
|
|
||||||
[],
|
|
||||||
[Sadursmju apstrāde],
|
|
||||||
[],
|
|
||||||
[Papildsēju pārvaldība],
|
|
||||||
[],
|
|
||||||
[Spēlētāju stāvokļa atjaunināšana],
|
|
||||||
[],
|
|
||||||
|
|
||||||
rowspanx(1)[Labirinta ģenerēšanas modulis],
|
|
||||||
[Labirinta būvētājs],
|
|
||||||
[#link(<LGMF01>)[LGMF01]],
|
|
||||||
|
|
||||||
rowspanx(5)[Līmeņu pārvaldības modulis],
|
|
||||||
[Līmeņu ielāde],
|
|
||||||
[],
|
|
||||||
[Progresa izsekošana],
|
|
||||||
[],
|
|
||||||
[Pāreju apstrāde],
|
|
||||||
[],
|
|
||||||
[Stāvokļa saglabāšana],
|
|
||||||
[],
|
|
||||||
[Stāvokļa ielāde],
|
|
||||||
[],
|
|
||||||
|
|
||||||
rowspanx(4)[Renderēšanas modulis],
|
|
||||||
[Labirinta renderēšana],
|
|
||||||
[],
|
|
||||||
[Spēlētāja renderēšana],
|
|
||||||
[],
|
|
||||||
[Lietotājsaskarnes renderēšana],
|
|
||||||
[],
|
|
||||||
[Vizuālo efektu renderēšana],
|
|
||||||
[],
|
|
||||||
|
|
||||||
rowspanx(3)[Audio modulis],
|
|
||||||
[Skaņas efektu atskaņošana],
|
|
||||||
[],
|
|
||||||
[Mūzikas pārvaldība],
|
|
||||||
[],
|
|
||||||
[Audio stāvokļu apstrāde],
|
|
||||||
[],
|
|
||||||
),
|
),
|
||||||
) <function-modules>
|
) <function-modules>
|
||||||
|
|
||||||
=== Ievades apstrādes modulis
|
=== Audio modulis
|
||||||
#todo("uzrakstīt ievades apstrādes moduli")
|
#todo("uzrakstīt audio moduli")
|
||||||
=== Spēles stāvokļa pārvaldības modulis
|
|
||||||
#todo("uzrakstīt spēles stāvokļa pārvaldības moduli")
|
=== Izstrādes rīku modulis
|
||||||
=== Spēlētāja modulis
|
|
||||||
#todo("uzrakstīt spēlētāja moduli")
|
Dotais modulis ir izstrādes rīks, kas paredzēts lietotāja saskarnes elementu
|
||||||
|
attēlošanai un apstrādei, lai konfigurētu labirinta parametrus.
|
||||||
|
Šis modulis, izmantojot "egui"@bevy-egui un "inspector-egui"@bevy-inspector-egui
|
||||||
|
bibliotēkas, izveido logu "Maze Controls" (labirinta vadības
|
||||||
|
elementi), kurā tiek parādītas dažādas
|
||||||
|
konfigurācijas opcijas, piemēram, sēkla, rādiuss, augstums, labirinta izmērs,
|
||||||
|
orientācija un sākuma/galapunkta pozīcijas (skat @tbl:dev_tools-F01 tab.).
|
||||||
|
Lietotāji var mijiedarboties ar šiem vadības elementiem, lai mainītu labirinta
|
||||||
|
izkārtojumu un izskatu.
|
||||||
|
Modulis pārbauda, vai konfigurācijā nav notikušas izmaiņas, un izraisa attiecīgus
|
||||||
|
notikumus, lai atjauninātu labirintu un spēlētāja pozīciju, kad notiek izmaiņas.
|
||||||
|
|
||||||
|
Svarīgi atzīmēt, ka šis modulis ir paredzēts lietošanai spēles izstrādes procesā.
|
||||||
|
Laidiena #todo("double-check 'laidiens'") versijās šī lietotāja saskarne nebūs pieejama, nodrošinot, ka
|
||||||
|
gala lietotāji nevar piekļūt šīm uzlabotajām konfigurācijas opcijām.
|
||||||
|
|
||||||
|
// Moduļa funkcionalitāti var vizualizēt, izmantojot datu plūsmas diagrammu (DFD),
|
||||||
|
// kurā būtu parādītas ievades no spēles pasaules (piemēram, pašreizējā stāva un
|
||||||
|
// labirinta konfigurācija), apstrāde lietotāja saskarnes sistēmā un izejas kā
|
||||||
|
// atjauninātas labirinta konfigurācijas un respawn notikumi.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#function-table(
|
||||||
|
"Labirinta pārvadības saskarne",
|
||||||
|
"IRMF01",
|
||||||
|
[Apstrādā un izvada labirinta konfigurācijas vadības elementus lietotāja saskarnē.],
|
||||||
|
[
|
||||||
|
Ievades dati tiek saņemti no pasaules resursiem un komponentiem:
|
||||||
|
+ Labirinta spraudņa resurss;
|
||||||
|
+ `EguiContext`#footnote("https://docs.rs/bevy_egui/latest/bevy_egui/")<bevy_egui>
|
||||||
|
komponente;
|
||||||
|
+ Labirinta konfigurācija un stāva komponentes saistībā ar pašreizējā stāva
|
||||||
|
komponenti;
|
||||||
|
+ Globālais labirinta konfigurācijas resurss.
|
||||||
|
],
|
||||||
|
[
|
||||||
|
+ Pārbauda, vai labirinta straudņa resurss eksistē pasaulē.
|
||||||
|
+ Ja nav, iziet no sistēmas un nedara neko.
|
||||||
|
+ Saņem `EguiContext` komponentu no primārā loga.
|
||||||
|
+ Saņem labirinta konfigurāciju un stāvu komponentus no pašreizējā stāva.
|
||||||
|
+ Izveido jaunu "Maze Controls" logu, izmantojot `egui`@bevy-egui.
|
||||||
|
+ Ja globālais labirinta konfigurācijas resurss ir pieejams:
|
||||||
|
+ Parāda galveno virsrakstu "Maze Configuration".
|
||||||
|
+ Pievieno vadības elementus:
|
||||||
|
- Sēklai;
|
||||||
|
- Rādiusam;
|
||||||
|
- Augstumam;
|
||||||
|
- Šešstūra izmēram;
|
||||||
|
- Orientācijai;
|
||||||
|
- Sākuma pozīcijai;
|
||||||
|
- Beigu pozīcijai.
|
||||||
|
+ Apstrādā izmaiņas un atjaunina labirintu un spēlētāju, ja radušās izmaiņas.
|
||||||
|
],
|
||||||
|
[
|
||||||
|
+ Atjaunināta labirinta konfigurācijas struktūra.
|
||||||
|
+ Atjaunināts labirints, ja radušās izmaiņas.
|
||||||
|
+ Atjaunināts spēlētāja novietojums, ja radušās izmaiņas.
|
||||||
|
],
|
||||||
|
) <dev_tools-F01>
|
||||||
|
|
||||||
|
=== Stāvu pārvaldības modulis
|
||||||
|
#todo("uzrakstīt stāvu pārvaldības moduli")
|
||||||
|
|
||||||
=== Labirinta ģenerēšanas modulis
|
=== Labirinta ģenerēšanas modulis
|
||||||
#todo("uzrakstīt labirinta ģenerēšanas moduli")
|
#todo("uzrakstīt labirinta ģenerēšanas moduli")
|
||||||
|
|
||||||
Apakšnodaļa ietver labirinta moduļa funkcijas. Moduļa funkcionalitāte ir
|
Apakšnodaļa ietver labirinta moduļa funkcijas. Moduļa funkcionalitāte ir
|
||||||
izmantota sešstūraina labirinta ģenerēšanai.
|
izmantota sešstūraina labirinta ģenerēšanai.
|
||||||
Moduļa funkciju datu
|
Moduļa funkciju datu
|
||||||
plūsmas ir parādītas 2. līmeņa datu plūsmas diagrammā (skat. @dpd-2-maze-gen att.)
|
plūsmas ir parādītas 2. līmeņa datu plūsmas diagrammā (skat. @fig:dpd-2-maze-gen att.)
|
||||||
Labirinta būvēšanas funkcija ir aprakstītas atsevišķā tabulā (skat.
|
Labirinta būvēšanas funkcija ir aprakstītas atsevišķā tabulā (skat. @hexlab-F01 tab.)
|
||||||
#link(<LGMF01>)[LGMF01] tab.)
|
|
||||||
|
|
||||||
Modularitātes un atkārtotas lietojamības apsvērumu dēļ labirinta ģenerēšanas
|
Modularitātes un atkārtotas lietojamības apsvērumu dēļ labirinta ģenerēšanas
|
||||||
funkcionalitāte tika pārnesta uz ārēju bibliotēku "hexlib"@hexlab. Šis lēmums
|
funkcionalitāte tika pārnesta uz ārēju bibliotēku "hexlib"@hexlab. Šis lēmums
|
||||||
@ -390,15 +441,17 @@ programmu.
|
|||||||
+ Sākuma pozīcija ir ārpus labirinta robežām.
|
+ Sākuma pozīcija ir ārpus labirinta robežām.
|
||||||
+ Neizdevās izveidot labirintu.
|
+ Neizdevās izveidot labirintu.
|
||||||
],
|
],
|
||||||
) <LGMF01>
|
) <hexlab-F01>
|
||||||
|
|
||||||
|
=== Labirinta pārvaldības modulis
|
||||||
|
#todo("uzrakstīt labirinta pārvaldības moduli")
|
||||||
|
|
||||||
|
=== Spēlētāja modulis
|
||||||
|
#todo("uzrakstīt spēlētāja moduli")
|
||||||
|
|
||||||
|
=== Spēles stāvokļa pārvaldības modulis
|
||||||
|
#todo("uzrakstīt spēles stāvokļa pārvaldības moduli")
|
||||||
|
|
||||||
=== Līmeņu pārvaldības modulis
|
|
||||||
#todo("uzrakstīt līmeņu pārvaldības moduli")
|
|
||||||
=== Renderēšanas modulis
|
|
||||||
#todo("uzrakstīt renderēšanas moduli")
|
|
||||||
=== Audio modulis
|
|
||||||
#todo("uzrakstīt audio moduli")
|
|
||||||
|
|
||||||
== Nefunkcionālās prasības
|
== Nefunkcionālās prasības
|
||||||
=== Veiktspējas prasības
|
=== Veiktspējas prasības
|
||||||
@ -552,5 +605,5 @@ Versiju specifikācija notiek pēc semantiskās versiju atlases@sem_ver (MAJOR.M
|
|||||||
|
|
||||||
// #include "doc.typ"
|
// #include "doc.typ"
|
||||||
|
|
||||||
// #pagebreak()
|
#pagebreak()
|
||||||
// #total-words words
|
#total-words words
|
||||||
|
|||||||
28
utils.typ
28
utils.typ
@ -21,7 +21,7 @@
|
|||||||
..items,
|
..items,
|
||||||
) = {
|
) = {
|
||||||
set par(first-line-indent: 0pt)
|
set par(first-line-indent: 0pt)
|
||||||
figure(
|
return figure(
|
||||||
gap: 1.5em,
|
gap: 1.5em,
|
||||||
kind: table,
|
kind: table,
|
||||||
caption: if caption != "" {
|
caption: if caption != "" {
|
||||||
@ -42,9 +42,7 @@
|
|||||||
),
|
),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
#for i in range(
|
#for i in range(items.pos().len()) {
|
||||||
items.pos().len(),
|
|
||||||
) {
|
|
||||||
if titles.len() > 0 {
|
if titles.len() > 0 {
|
||||||
custom-block(
|
custom-block(
|
||||||
text(
|
text(
|
||||||
@ -53,13 +51,10 @@
|
|||||||
),
|
),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
custom-block(
|
custom-block(items.pos().at(i))
|
||||||
items.pos().at(i),
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
linebreak()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#let parameter-table(
|
#let parameter-table(
|
||||||
@ -110,7 +105,7 @@
|
|||||||
if caption == "" {
|
if caption == "" {
|
||||||
caption = items.pos().first()
|
caption = items.pos().first()
|
||||||
}
|
}
|
||||||
longtable(
|
return longtable(
|
||||||
titles: (
|
titles: (
|
||||||
"Funkcijas nosaukums",
|
"Funkcijas nosaukums",
|
||||||
"Funkcijas identifikators",
|
"Funkcijas identifikators",
|
||||||
@ -161,19 +156,22 @@
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
figure(
|
return figure(
|
||||||
caption: caption,
|
caption: caption,
|
||||||
kind: table,
|
kind: table,
|
||||||
tablex(
|
tablex(
|
||||||
columns: (4cm, 3cm, auto, auto),
|
columns: (4cm, 3cm, auto, auto),
|
||||||
repeat-header: true,
|
repeat-header: true,
|
||||||
/* Header */
|
/* Header */
|
||||||
[*Lauks*], [*Datu tips*], [*Lauka atribūti*], [*Apraksts*],
|
[*Lauks*],
|
||||||
|
[*Datu tips*],
|
||||||
|
[*Lauka atribūti*],
|
||||||
|
[*Apraksts*],
|
||||||
|
|
||||||
..entity-table-row(..id), // id row
|
..entity-table-row(..id), // id row
|
||||||
|
|
||||||
..for i in range(items.pos().len(), step:4){
|
..for i in range(items.pos().len(), step: 4) {
|
||||||
entity-table-row(..items.pos().slice(i, i+4))
|
entity-table-row(..items.pos().slice(i, i + 4))
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
@ -199,3 +197,7 @@
|
|||||||
lang: lang,
|
lang: lang,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#let red(body) = {
|
||||||
|
text(body, fill: rgb(255, 0, 0))
|
||||||
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user