feat: add dev tools dpd2

This commit is contained in:
Kristofers Solo 2025-01-01 18:03:58 +02:00
parent 96f6289552
commit 8277cf452a
2 changed files with 68 additions and 23 deletions

View File

@ -49,7 +49,13 @@
// Standard arrow edge // Standard arrow edge
#let std-edge(..args) = { #let std-edge(..args) = {
edge(label-pos: 0.1, stroke: default-edge-stroke, ..args, "-|>") edge(
label-pos: 0.1,
stroke: default-edge-stroke,
label-size: 10pt,
..args,
"-|>",
)
} }
// Fork/parallel function // Fork/parallel function
@ -149,6 +155,7 @@
label-anchor: "center", label-anchor: "center",
label-fill: white, label-fill: white,
corner-radius: 4pt, corner-radius: 4pt,
label-size: 10pt,
..args, ..args,
"-|>", "-|>",
) )

View File

@ -199,15 +199,15 @@ Ar lietotājiem saistītās datu plūsmas ir attēlotas sistēmas nultā līmeņ
caption: [\0. līmeņa DPD], caption: [\0. līmeņa DPD],
diagram( diagram(
data-store((0, 0), [Spēlētājs]), data-store((0, 0), [Spēlētājs]),
dpd-edge("rr,ddd,ll", [Ievades ierīces\ dati]), dpd-edge("rr,ddd,ll", align(center)[Ievades ierīces\ dati]),
process((0, 3), [Spēle], inset: 20pt), process((0, 3), [Spēle], inset: 20pt),
dpd-edge( dpd-edge(
"lll,uuu,rrr", "lll,uuu,rrr",
[Vizuālās\ izvades dati], align(center)[Vizuālās\ izvades dati],
), ),
dpd-edge( dpd-edge(
"l,uuu,r", "l,uuu,r",
[Audio\ izvades dati], align(center)[Audio\ izvades dati],
), ),
), ),
) <dpd-0> ) <dpd-0>
@ -403,9 +403,6 @@ pienākumi, un tas ietver funkcijas, kas veicina kopējo spēles sistēmu.
[*Funkcija*], [*Funkcija*],
[*Identifikators*], [*Identifikators*],
/* -------------- */ /* -------------- */
// rowspanx(1)[Audio modulis], // audio
// [Skaņas efektu atskaņošana],
// [],
rowspanx(1)[Izstrādes rīku modulis], // dev_tools rowspanx(1)[Izstrādes rīku modulis], // dev_tools
[Labirinta pārvaldības saskarne], [Labirinta pārvaldības saskarne],
@ -414,7 +411,7 @@ pienākumi, un tas ietver funkcijas, kas veicina kopējo spēles sistēmu.
rowspanx(3)[Stāva pārvaldības modulis], // floor rowspanx(3)[Stāva pārvaldības modulis], // floor
[Stāva ielāde], [Stāva ielāde],
[], [],
[Stāva #red("izlāde")], [Stāva izlāde],
[], [],
[Stāvu kustība], [Stāvu kustība],
[], [],
@ -440,7 +437,7 @@ pienākumi, un tas ietver funkcijas, kas veicina kopējo spēles sistēmu.
[], [],
[Spēlētāja #red("pacelšanās")], [Spēlētāja #red("pacelšanās")],
[], [],
[Spēlētāja #red("nolaušainās")], [Spēlētāja #red("nolaišainās")],
[], [],
rowspanx(3)[Spēles stāvokļa pārvaldības modulis], // screens rowspanx(3)[Spēles stāvokļa pārvaldības modulis], // screens
@ -460,6 +457,22 @@ pienākumi, un tas ietver funkcijas, kas veicina kopējo spēles sistēmu.
=== Izstrādes rīku modulis === Izstrādes rīku modulis
#figure(
caption: [Izstrādes rīku moduļa 2. līmeņa DPD],
diagram(
spacing: 10em,
{
data-store((0, 0), [Spēlētājs])
dpd-edge("r", align(center)[Labirinta\ konfigurācijas dati])
dpd-database((2, 0), [Operatīvā\ atmiņa])
process((1, 0), [Labirinta\ pārvaldības\ saskarne])
dpd-edge("r", align(center)[Labirinta\ izkārtojuma dati])
},
),
) <dpd-2-dev_tools>
Dotais modulis ir izstrādes rīks, kas paredzēts lietotāja saskarnes elementu 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. attēlošanai un apstrādei, lai konfigurētu labirinta parametrus.
Šis modulis, izmantojot "egui"@bevy-egui un "inspector-egui"@bevy-inspector-egui Šis modulis, izmantojot "egui"@bevy-egui un "inspector-egui"@bevy-inspector-egui
@ -523,16 +536,15 @@ gala lietotāji nevar piekļūt šīm uzlabotajām konfigurācijas opcijām.
#todo("uzrakstīt stāvu pārvaldības moduli") #todo("uzrakstīt stāvu pārvaldības moduli")
=== Labirinta ģenerēšanas modulis === Labirinta ģenerēšanas modulis
#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ā (sk. @fig:dpd-2-maze-gen) plūsmas ir parādītas 2. līmeņa datu plūsmas diagrammā (sk. @fig:dpd-2-hexlab)
Labirinta būvēšanas funkcija ir aprakstītas atsevišķā tabulā (sk. @tbl:hexlab-F01) Labirinta būvēšanas funkcija ir aprakstītas atsevišķā tabulā (sk. @tbl:hexlab-F01)
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 funkcionalitāte ir izveidota kā ārēja bibliotēka
"hexlib".#footnote[https://crates.io/crates/hexlab]<hexlab> Šis lēmums "hexlib".#footnote[https://crates.io/crates/hexlab]<hexlab> Šis lēmums
ļauj labirinta ģenerēšanas loģiku atkārtoti izmantot dažādos projektos un ļauj labirinta ģenerēšanas loģiku atkārtoti izmantot dažādos projektos un
lietojumprogrammās, veicinot atkārtotu koda izmantošanu. lietojumprogrammās, veicinot atkārtotu koda izmantošanu.
@ -543,8 +555,17 @@ programmu.
#figure( #figure(
caption: [Labirinta ģenerēšanas moduļa 2. līmeņa DPD], caption: [Labirinta ģenerēšanas moduļa 2. līmeņa DPD],
image("assets/images/dpd/dpd2/maze-gen.svg"), diagram(
) <dpd-2-maze-gen> spacing: 8em,
{
dpd-database((0, 0), [Operatīvā\ atmiņa])
dpd-edge("l,u,r", align(center)[Labirinta\ konfigurācijas dati])
process((0, -1), [Labirinta\ būvētājs])
dpd-edge("r,d,l", align(center)[Labirinta\ izkārtojuma dati])
},
),
) <dpd-2-hexlab>
#function-table( #function-table(
"Labirinta būvētājs", "Labirinta būvētājs",
@ -614,8 +635,8 @@ programmu.
Izvades datu sistēmai nav. Izvades datu sistēmai nav.
], ],
[ [
+ "Stāvs _x_ jau eksistē." + "Stāvs $x$ jau eksistē."
+ "Neizdevās ģenerēt labirintu stāvam x." + "Neizdevās ģenerēt labirintu stāvam $x$."
], ],
) <maze-F01> ) <maze-F01>
@ -625,6 +646,23 @@ programmu.
=== 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") #todo("uzrakstīt spēles stāvokļa pārvaldības moduli")
#figure(
caption: [\2. līmeņa DPD],
diagram({
dpd-database((0, 0), [Operatīvā\ atmiņa], snap: -1)
process((-2, 0), [SSPMF01:\ Spēles sākšana])
dpd-edge("r", [Ekrāna stāvoklis])
process((2, 0), [SSPMF02:\ Atgriešanās])
dpd-edge("l", [Tastatūras ievade])
process((0, 2), [SSPMF03:\ Sākumekrāns])
dpd-edge("u", [UI elementi])
dpd-edge("d", [Pogu stāvokļi])
}),
) <dpd-2-floor>
#function-table( #function-table(
"Spēles sākšana", "Spēles sākšana",
"SSPMF01", "SSPMF01",
@ -794,9 +832,9 @@ pašreizējā un nākamā stāva stāvokli un vertikālās kustības mehāniku.
`NextFloor`, `NextFloor`,
"Atzīmē nākamo stāvu", "Atzīmē nākamo stāvu",
"Identificē progresa mērķa līmeni, uz kuru jāpāriet. Var būt arī līmenis zemāk.", "Identificē progresa mērķa līmeni, uz kuru jāpāriet. Var būt arī līmenis zemāk.",
`MovementState`, `FloorYTarget`,
"Veic stāvu vertikālo kustību", "Stāva nākamā Y pozīcija",
"Kontrolē stāvu pārejas animācijas.", "Identificē stāva Y koordināti, uz kuru tas jāpārvieto.",
) <components-floor> ) <components-floor>
==== Labirinta komponentes ==== Labirinta komponentes
@ -821,11 +859,11 @@ labirinta izveidi un uzturēšanu.
"Konfigurē labirinta ģenerēšanu ar rādiusu, pozīcijām un izkārtojumu.", "Konfigurē labirinta ģenerēšanu ar rādiusu, pozīcijām un izkārtojumu.",
`Maze`, `Maze`,
"Glabā sešstūra labirinta datu", "Glabā sešstūra labirinta datu",
"Glabā pilnu labirinta struktūru, izmantojot jaucējtabulu (hashmap)", "Glabā pilnu labirinta struktūru, izmantojot jaucējtabulu.",
`Walls`, `Walls`,
"Apzīmē sienu konfigurāciju", "Apzīmē sienu konfigurāciju",
[Pārvalda sienas stāvokļus, izmantojot bitu karodziņus [Pārvalda sienas stāvokļus, izmantojot bitu karodziņus.
@begginer-patterns.], @begginer-patterns],
) <components-maze> ) <components-maze>
==== Spēlētāja komponentes ==== Spēlētāja komponentes