|
|
3 years ago | |
|---|---|---|
| .vscode | 3 years ago | |
| DepthSorting | 3 years ago | |
| Input | 3 years ago | |
| IsometricMap | 3 years ago | |
| List | 3 years ago | |
| Textures | 3 years ago | |
| assets | 3 years ago | |
| Makefile | 3 years ago | |
| README.md | 3 years ago | |
| game.c | 3 years ago | |
| game.h | 3 years ago | |
| main.c | 3 years ago | |
| sprite.c | 3 years ago | |
| sprite.h | 3 years ago | |
README.md
Aufbauspiel jaja
[[TOC]]
Ackermatch gegen die Natur?
KI Gegner ist erstmal zu aufwändig, ein wenig Ackern muss man aber immer!
Fantasy Welt oder Realistisch?
Isometrie in RayLib
Projection Orthogonal -> Isometric
Effizientes Rendering einer isometrischen Blockmap
Sprite sortierung nach Nähe zur Kamera
TODO
- LinkedList erweitern
- Sprites Animationen etc improven
- Die Inputs sollten den Kamera Zoom beachten, aktuell geht noch alles kaputt wenn man den zoom umstellt
- Funktion, um die ganzen Sprites nach ihrer y-Koordinaten sortiert zu drawen
- Drawable Container machen, die sortiert werden können, dort kommen alle Tiles und Sprites rein, damit sie dann sortiert werden können
- Maps in eigenen Dateien speichern
- Parser für Map-Dateien
- MapEditor
- Rendering Reihenfolge: layer 0, Sprites auf layer 0, layer 1, Sprites auf layer 1; Theoretisch müssen die einzelnen Layer Reihenweise gedrawed werden mit den Sprites zwischendrin
-
IsometricMap struct erstellen, das den IsometricMap(+Layer) Array speichert ?
-
Beim rendern müssen die map tiles und die sprites nach ihrer depth (d = x + y + ~0.05*z) sortiert werden, dafür sollten wir ein bucket sorting system implementieren. Buckets sollten erstmal nur tiles und sprites unterstützen.
-
Wir können auch die Sprites in der Liste nach d sortieren, dann geht das gut mit "nur in der Kamera sichtbare Sprites rendern". d ist nicht optimal, vielleicht auch einfach über die ganze Liste gehen und nur die sprites mit
x y \subset camBoundsin das Bucket sorting system einfügen. Buckets können auch mit MergeSort oder so sortiert werden Vererbung in C, drawable superStruct? -
Mit der Map geht das schon recht einfach, weil wir wissen welche tiles in der Kamera sind. d
-
TODO: Das rendern der IsometricMap wird bei größeren Maps sehr ineffizient;
-
Add offset x and y to each tile to be calculated ONCE, not every frame
-
Alle gehardcodeten screen bounds (450 225 800 400) durch GetScreenWidth() GetScreenHeight() ersetzen
-
Kameraposition abhängiges drawen auch für Sprites implementieren
WiP
- Dokumentation aufholen
Done
- Movement speed der Sprites an delta time orientieren