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
|
||||
author:
|
||||
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;
|
||||
/ 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>);
|
||||
/ Pasaules resursi: #todo("add World resource")
|
||||
/ Pirmkods: Cilvēkam lasāmas programmēšanas instrukcijas, kas nosaka programmatūras darbību.
|
||||
/ 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ā.
|
||||
/ 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
|
||||
* 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.
|
||||
- ekrāna izšķirtspējai jābūt vismaz 800x600 pikseļu, lai spēle būtu optimāla.
|
||||
- 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:
|
||||
- Linux 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*],
|
||||
[*Identifikators*],
|
||||
/* -------------- */
|
||||
rowspanx(3)[Ievades apstrādes modulis],
|
||||
[Ievades notikumu apstrāde],
|
||||
[],
|
||||
[Ievades stāvokļa atjaunināšana],
|
||||
[],
|
||||
[Ievades validācija],
|
||||
rowspanx(1)[Audio modulis], // audio
|
||||
[Skaņas efektu atskaņošana],
|
||||
[],
|
||||
|
||||
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ē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],
|
||||
[],
|
||||
|
||||
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>
|
||||
|
||||
=== Ievades apstrādes modulis
|
||||
#todo("uzrakstīt ievades apstrādes moduli")
|
||||
=== Spēles stāvokļa pārvaldības modulis
|
||||
#todo("uzrakstīt spēles stāvokļa pārvaldības moduli")
|
||||
=== Spēlētāja modulis
|
||||
#todo("uzrakstīt spēlētāja moduli")
|
||||
=== Audio modulis
|
||||
#todo("uzrakstīt audio moduli")
|
||||
|
||||
=== Izstrādes rīku modulis
|
||||
|
||||
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
|
||||
#todo("uzrakstīt labirinta ģenerēšanas moduli")
|
||||
|
||||
Apakšnodaļa ietver labirinta moduļa funkcijas. Moduļa funkcionalitāte ir
|
||||
izmantota sešstūraina labirinta ģenerēšanai.
|
||||
Moduļa funkciju datu
|
||||
plūsmas ir parādītas 2. līmeņa datu plūsmas diagrammā (skat. @dpd-2-maze-gen att.)
|
||||
Labirinta būvēšanas funkcija ir aprakstītas atsevišķā tabulā (skat.
|
||||
#link(<LGMF01>)[LGMF01] tab.)
|
||||
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. @hexlab-F01 tab.)
|
||||
|
||||
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
|
||||
@ -390,15 +441,17 @@ programmu.
|
||||
+ Sākuma pozīcija ir ārpus labirinta robežām.
|
||||
+ 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
|
||||
=== 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"
|
||||
|
||||
// #pagebreak()
|
||||
// #total-words words
|
||||
#pagebreak()
|
||||
#total-words words
|
||||
|
||||
28
utils.typ
28
utils.typ
@ -21,7 +21,7 @@
|
||||
..items,
|
||||
) = {
|
||||
set par(first-line-indent: 0pt)
|
||||
figure(
|
||||
return figure(
|
||||
gap: 1.5em,
|
||||
kind: table,
|
||||
caption: if caption != "" {
|
||||
@ -42,9 +42,7 @@
|
||||
),
|
||||
)
|
||||
}
|
||||
#for i in range(
|
||||
items.pos().len(),
|
||||
) {
|
||||
#for i in range(items.pos().len()) {
|
||||
if titles.len() > 0 {
|
||||
custom-block(
|
||||
text(
|
||||
@ -53,13 +51,10 @@
|
||||
),
|
||||
)
|
||||
}
|
||||
custom-block(
|
||||
items.pos().at(i),
|
||||
)
|
||||
custom-block(items.pos().at(i))
|
||||
}
|
||||
],
|
||||
)
|
||||
linebreak()
|
||||
}
|
||||
|
||||
#let parameter-table(
|
||||
@ -110,7 +105,7 @@
|
||||
if caption == "" {
|
||||
caption = items.pos().first()
|
||||
}
|
||||
longtable(
|
||||
return longtable(
|
||||
titles: (
|
||||
"Funkcijas nosaukums",
|
||||
"Funkcijas identifikators",
|
||||
@ -161,19 +156,22 @@
|
||||
)
|
||||
}
|
||||
|
||||
figure(
|
||||
return figure(
|
||||
caption: caption,
|
||||
kind: table,
|
||||
tablex(
|
||||
columns: (4cm, 3cm, auto, auto),
|
||||
repeat-header: true,
|
||||
/* Header */
|
||||
[*Lauks*], [*Datu tips*], [*Lauka atribūti*], [*Apraksts*],
|
||||
[*Lauks*],
|
||||
[*Datu tips*],
|
||||
[*Lauka atribūti*],
|
||||
[*Apraksts*],
|
||||
|
||||
..entity-table-row(..id), // id row
|
||||
|
||||
..for i in range(items.pos().len(), step:4){
|
||||
entity-table-row(..items.pos().slice(i, i+4))
|
||||
..for i in range(items.pos().len(), step: 4) {
|
||||
entity-table-row(..items.pos().slice(i, i + 4))
|
||||
},
|
||||
),
|
||||
)
|
||||
@ -199,3 +197,7 @@
|
||||
lang: lang,
|
||||
)
|
||||
}
|
||||
|
||||
#let red(body) = {
|
||||
text(body, fill: rgb(255, 0, 0))
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user