mirror of
https://github.com/kristoferssolo/Qualification-Thesis.git
synced 2025-10-21 20:10:37 +00:00
refactor(dpd): update dpd1
This commit is contained in:
parent
c68065abc7
commit
96f6289552
81
diagrams.typ
81
diagrams.typ
@ -1,5 +1,7 @@
|
|||||||
#import "@preview/fletcher:0.5.3" as fletcher: diagram, node, edge
|
#import "@preview/fletcher:0.5.3" as fletcher: diagram, node, edge
|
||||||
#import fletcher.shapes: diamond
|
#import fletcher.shapes: diamond, ellipse
|
||||||
|
#import "@preview/cetz:0.3.1"
|
||||||
|
#import cetz: draw
|
||||||
|
|
||||||
#let default-node-stroke = 1pt
|
#let default-node-stroke = 1pt
|
||||||
#let default-edge-stroke = 1pt
|
#let default-edge-stroke = 1pt
|
||||||
@ -47,7 +49,7 @@
|
|||||||
|
|
||||||
// Standard arrow edge
|
// Standard arrow edge
|
||||||
#let std-edge(..args) = {
|
#let std-edge(..args) = {
|
||||||
edge(..args, "-|>", label-pos: 0.1, stroke: default-edge-stroke)
|
edge(label-pos: 0.1, stroke: default-edge-stroke, ..args, "-|>")
|
||||||
}
|
}
|
||||||
|
|
||||||
// Fork/parallel function
|
// Fork/parallel function
|
||||||
@ -121,3 +123,78 @@
|
|||||||
|
|
||||||
elements
|
elements
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#let data-store(pos, text) = {
|
||||||
|
node(
|
||||||
|
pos,
|
||||||
|
text,
|
||||||
|
inset: 20pt,
|
||||||
|
stroke: default-node-stroke,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
#let process(..args) = {
|
||||||
|
node(
|
||||||
|
inset: 10pt,
|
||||||
|
shape: ellipse,
|
||||||
|
stroke: default-node-stroke,
|
||||||
|
..args,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
#let dpd-edge(..args) = {
|
||||||
|
edge(
|
||||||
|
label-pos: 0.5,
|
||||||
|
stroke: default-edge-stroke,
|
||||||
|
label-anchor: "center",
|
||||||
|
label-fill: white,
|
||||||
|
corner-radius: 4pt,
|
||||||
|
..args,
|
||||||
|
"-|>",
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Database shape
|
||||||
|
#let database(node, extrude) = {
|
||||||
|
let (w, h) = node.size
|
||||||
|
|
||||||
|
// Calculate dimensions for the cylinder parts
|
||||||
|
let ellipse-height = h * 0.15
|
||||||
|
|
||||||
|
let cap-ratio = 0.2 // Cap height will be 30% of width
|
||||||
|
let cap-height = w * cap-ratio
|
||||||
|
|
||||||
|
// Main body sides (without bottom line)
|
||||||
|
draw.line(
|
||||||
|
(-w, -h + cap-height), // Start at top-left
|
||||||
|
(-w, h - cap-height), // Left side
|
||||||
|
)
|
||||||
|
draw.line(
|
||||||
|
(w, h - cap-height), // To bottom-right
|
||||||
|
(w, -h + cap-height), // Right side
|
||||||
|
)
|
||||||
|
|
||||||
|
// Top ellipse
|
||||||
|
draw.circle(
|
||||||
|
(0, h - cap-height),
|
||||||
|
radius: (w, cap-height),
|
||||||
|
)
|
||||||
|
|
||||||
|
// Bottom elliptical cap (front arc only)
|
||||||
|
draw.arc(
|
||||||
|
(-w, -h + cap-height),
|
||||||
|
radius: (w, cap-height),
|
||||||
|
start: 180deg,
|
||||||
|
delta: 180deg,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
#let dpd-database(..args) = {
|
||||||
|
node(
|
||||||
|
shape: database,
|
||||||
|
height: 4em,
|
||||||
|
stroke: default-node-stroke,
|
||||||
|
fill: white,
|
||||||
|
..args,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|||||||
146
main.typ
146
main.typ
@ -193,11 +193,23 @@ brīža.
|
|||||||
nepieciešams automātiskai spēles gaitas pārvaldībai. */
|
nepieciešams automātiskai spēles gaitas pārvaldībai. */
|
||||||
|
|
||||||
Ar lietotājiem saistītās datu plūsmas ir attēlotas sistēmas nultā līmeņa DPD
|
Ar lietotājiem saistītās datu plūsmas ir attēlotas sistēmas nultā līmeņa DPD
|
||||||
(sk. @fig:dpd-0)
|
(sk. @fig:dpd-0).
|
||||||
|
|
||||||
#figure(
|
#figure(
|
||||||
caption: [\0. līmeņa DPD],
|
caption: [\0. līmeņa DPD],
|
||||||
image("assets/images/dpd/dpd0.svg"),
|
diagram(
|
||||||
|
data-store((0, 0), [Spēlētājs]),
|
||||||
|
dpd-edge("rr,ddd,ll", [Ievades ierīces\ dati]),
|
||||||
|
process((0, 3), [Spēle], inset: 20pt),
|
||||||
|
dpd-edge(
|
||||||
|
"lll,uuu,rrr",
|
||||||
|
[Vizuālās\ izvades dati],
|
||||||
|
),
|
||||||
|
dpd-edge(
|
||||||
|
"l,uuu,r",
|
||||||
|
[Audio\ izvades dati],
|
||||||
|
),
|
||||||
|
),
|
||||||
) <dpd-0>
|
) <dpd-0>
|
||||||
|
|
||||||
== Vispārējie ierobežojumi
|
== Vispārējie ierobežojumi
|
||||||
@ -239,16 +251,16 @@ Ar lietotājiem saistītās datu plūsmas ir attēlotas sistēmas nultā līmeņ
|
|||||||
== Funkcionālās prasības
|
== Funkcionālās prasības
|
||||||
\1. līmeņa datu plūsmas diagramma (sk. @fig:dpd-1) ilustrē galvenos
|
\1. līmeņa datu plūsmas diagramma (sk. @fig:dpd-1) ilustrē galvenos
|
||||||
procesus spēles "Maze Ascension" sistēmā.
|
procesus spēles "Maze Ascension" sistēmā.
|
||||||
Diagrammā attēloti septiņi galvenie procesi:
|
Diagrammā attēloti seši galvenie procesi, viens izstrādes process un viens
|
||||||
ievades apstrādāšanas modulis,
|
ārējs (bibliotēkas) process(-i) process:
|
||||||
spēles stāvokļa pārvalības modulis,
|
stāva pārvaldības modulis,
|
||||||
|
labirinta ģenerēšanas un pārvaldības moduļi,
|
||||||
spēlētāja modulis,
|
spēlētāja modulis,
|
||||||
labirinta ģenerēšanas modulis,
|
spēles stāvokļa pārvalības modulis,
|
||||||
spēles līmeņu pārvaldības modulis,
|
papildspēju modulis
|
||||||
atveidošanas jeb renderēšanas un skaņas jeb audio moduļi.
|
un izstrādes rīku modulis.
|
||||||
Šie procesi mijiedarbojas ar vienu datu krātuvi -- operatīvo atmiņu (RAM) -- un vienu
|
Šie procesi mijiedarbojas ar vienu datu krātuvi -- operatīvo atmiņu (RAM) -- un vienu
|
||||||
ārējo lietotāju -- spēlētājs.
|
ārējo lietotāju -- spēlētājs.
|
||||||
#todo("update module list")
|
|
||||||
|
|
||||||
Ievades apstrādes modulis uztver un apstrādā spēlētāja ievades datus.
|
Ievades apstrādes modulis uztver un apstrādā spēlētāja ievades datus.
|
||||||
Spēles stāvokļa modulis pārrauga vispārējo spēles stāvokli.
|
Spēles stāvokļa modulis pārrauga vispārējo spēles stāvokli.
|
||||||
@ -264,12 +276,120 @@ Renderēšanas un audio moduļi pārvalda attiecīgi vizuālo un audio izvadi.
|
|||||||
|
|
||||||
#figure(
|
#figure(
|
||||||
caption: [\1. līmeņa DPD],
|
caption: [\1. līmeņa DPD],
|
||||||
image("assets/images/dpd/dpd1.svg"),
|
diagram({
|
||||||
|
dpd-database((0, 0), [Operatīvā\ atmiņa], snap: -1)
|
||||||
|
dpd-edge(
|
||||||
|
"u,ull",
|
||||||
|
align(center)[Visi spēles\ dati],
|
||||||
|
shift: (-29pt, 0),
|
||||||
|
label-pos: 0.8,
|
||||||
|
) // dev_tools
|
||||||
|
dpd-edge(
|
||||||
|
"uuu",
|
||||||
|
align(center)[Visi spēles\ dati],
|
||||||
|
shift: -20pt,
|
||||||
|
) // bevy
|
||||||
|
dpd-edge("rru,u", [Stāva dati]) // floor
|
||||||
|
dpd-edge(
|
||||||
|
(2.5, 0),
|
||||||
|
align(center)[Labirinta\ konfigurācijas dati],
|
||||||
|
label-sep: -0.5em,
|
||||||
|
shift: -22pt,
|
||||||
|
) // hexlab
|
||||||
|
dpd-edge(
|
||||||
|
"rrd,d",
|
||||||
|
align(center)[Labirinta\ izkārtojuma dati],
|
||||||
|
shift: 20pt,
|
||||||
|
label-pos: 0.501,
|
||||||
|
label-sep: 4em,
|
||||||
|
) // maze
|
||||||
|
dpd-edge(
|
||||||
|
"d,drr",
|
||||||
|
align(center)[Labirinta\ konfigurācijas dati],
|
||||||
|
shift: (-29pt, 0),
|
||||||
|
label-pos: 0.7,
|
||||||
|
) // maze
|
||||||
|
dpd-edge(
|
||||||
|
"ddd",
|
||||||
|
align(center)[Spēlētaja\ dati],
|
||||||
|
shift: 10pt,
|
||||||
|
label-pos: 0.4,
|
||||||
|
) // player
|
||||||
|
dpd-edge(
|
||||||
|
"d,dll",
|
||||||
|
align(center)[Spēles\ stāvokļa dati],
|
||||||
|
shift: (29pt, 0),
|
||||||
|
label-pos: 0.7,
|
||||||
|
) // screns
|
||||||
|
dpd-edge(
|
||||||
|
(-2.5, 0),
|
||||||
|
align(center)[Papildspēju\ stāvokļa dati],
|
||||||
|
shift: 15pt,
|
||||||
|
label-sep: -0.5em,
|
||||||
|
) // power_ups
|
||||||
|
|
||||||
|
process(
|
||||||
|
(0, -3),
|
||||||
|
[Bevy],
|
||||||
|
inset: 20pt,
|
||||||
|
extrude: (-4pt, 0),
|
||||||
|
stroke: (thickness: 1pt, dash: "dashed"),
|
||||||
|
)
|
||||||
|
dpd-edge("uu", align(center)[Vizuālās\ izvades dati])
|
||||||
|
dpd-edge("l,uu,r", align(center)[Audio\ izvades dati])
|
||||||
|
dpd-edge("ddd", [Ievades dati], shift: (-20pt, -20pt), label-pos: 0.3)
|
||||||
|
|
||||||
|
data-store((0, -5), [Spēlētājs])
|
||||||
|
dpd-edge(
|
||||||
|
"r,dd,l",
|
||||||
|
align(center)[Neapstrādāti ievades\ ierīces dati],
|
||||||
|
label-sep: -0.3em,
|
||||||
|
)
|
||||||
|
|
||||||
|
process((-2, -2), [Izstrādes rīku\ modulis])
|
||||||
|
dpd-edge(
|
||||||
|
"d,drr",
|
||||||
|
align(center)[Atjaunoti\ spēles dati],
|
||||||
|
label-pos: 0.4,
|
||||||
|
)
|
||||||
|
|
||||||
|
process((2, -2), [Stāva pārvaldības\ modulis])
|
||||||
|
dpd-edge("ddll", align(center)[Atjaunoti\ stāva dati])
|
||||||
|
|
||||||
|
process((2.5, 0), [Labirinta\ ģenerēšanas\ modulis])
|
||||||
|
dpd-edge((0, 0), align(center)[Labirinta\ izkārtojuma dati], shift: -10pt)
|
||||||
|
|
||||||
|
process((2, 2), [Labirinta\ pārvaldības\ modulis])
|
||||||
|
dpd-edge(
|
||||||
|
"ll,uu",
|
||||||
|
align(center)[Labirinta dati],
|
||||||
|
label-pos: 0.3,
|
||||||
|
shift: (0, 22pt),
|
||||||
|
)
|
||||||
|
|
||||||
|
process((0, 3), [Spēlētāja\ modulis])
|
||||||
|
dpd-edge(
|
||||||
|
"uuu",
|
||||||
|
align(center)[Atjaunoti\ spēlētāja\ dati],
|
||||||
|
shift: 20pt,
|
||||||
|
label-pos: 0.3,
|
||||||
|
)
|
||||||
|
|
||||||
|
process((-2, 2), [Spēles stāvokļa\ pārvaldības modulis])
|
||||||
|
dpd-edge(
|
||||||
|
"u,urr",
|
||||||
|
align(center)[Atjaunoti spēles\ stāvokļa dati],
|
||||||
|
shift: (0, 10pt),
|
||||||
|
label-pos: 0.3,
|
||||||
|
)
|
||||||
|
|
||||||
|
process((-2.5, 0), [Papildspēju\ modulis])
|
||||||
|
dpd-edge((0, 0), align(center)[Papildspēju\ dati], shift: 15pt)
|
||||||
|
}),
|
||||||
) <dpd-1>
|
) <dpd-1>
|
||||||
|
|
||||||
|
|
||||||
=== Funkciju sadalījums moduļos
|
=== Funkciju sadalījums moduļos
|
||||||
Tabulā @tbl:function-modules ir sniegts visaptverošs spēles funkcionalitātes
|
Tabulā @tbl:function-modules[] ir sniegts visaptverošs spēles funkcionalitātes
|
||||||
sadalījums pa tās galvenajiem moduļiem. Katram modulim ir noteikti konkrēti
|
sadalījums pa tās galvenajiem moduļiem. Katram modulim ir noteikti konkrēti
|
||||||
pienākumi, un tas ietver funkcijas, kas veicina kopējo spēles sistēmu.
|
pienākumi, un tas ietver funkcijas, kas veicina kopējo spēles sistēmu.
|
||||||
|
|
||||||
@ -330,6 +450,8 @@ pienākumi, un tas ietver funkcijas, kas veicina kopējo spēles sistēmu.
|
|||||||
[#link(<screen-F02>)[SSPMF02]],
|
[#link(<screen-F02>)[SSPMF02]],
|
||||||
[Attēlot sākumekrānu],
|
[Attēlot sākumekrānu],
|
||||||
[#link(<screen-F03>)[SSPMF03]],
|
[#link(<screen-F03>)[SSPMF03]],
|
||||||
|
|
||||||
|
rowspanx(3)[Papildspēju modulis], // power_up
|
||||||
),
|
),
|
||||||
) <function-modules>
|
) <function-modules>
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user