You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
2 years ago | |
|---|---|---|
| Dict | 3 years ago | |
| Entity | 3 years ago | |
| Input | 3 years ago | |
| IsometricMap | 3 years ago | |
| MapObject | 3 years ago | |
| Screen | 3 years ago | |
| Sprite | 3 years ago | |
| Textures | 3 years ago | |
| Ui | 3 years ago | |
| assets | 3 years ago | |
| .gitignore | 3 years ago | |
| Makefile | 3 years ago | |
| README.md | 3 years ago | |
| cropEntity.sh | 2 years ago | |
| definitions.h | 3 years ago | |
| game.c | 3 years ago | |
| game.h | 3 years ago | |
| main.c | 2 years ago | |
README.md
Aufbauspiel
[[TOC]]
Notizen
KI Gegner ist erstmal zu aufwändig, ein wenig Ackern muss man aber immer!
Wichtige Links
Projection Orthogonal -> Isometric
Effizientes Rendering einer isometrischen Blockmap
Sprite sortierung nach Nähe zur Kamera
turn off EXIT on ESC Key, for later
Gebäudetexturen
User
einzelne Texturen
- https://opengameart.org/content/germanic-worker
- https://opengameart.org/content/6-isometric-buildings
- https://opengameart.org/content/isometric-medieval-buildings-2
- https://opengameart.org/content/2d-isometric-homes-part-1
- https://opengameart.org/content/isometric-buildings
- https://opengameart.org/content/isometric-medieval-buildings
- https://opengameart.org/content/western-european-castle-isometric-25d
- https://opengameart.org/content/medieval-building-tiles
- https://opengameart.org/content/watermill-bleeds-game-art
TODO
Allgemein:
- Das Map Rendering sollte den Zoom auch noch beachten, wenn man rauszoomt wird nicht die ganzen map gedrawed, sondern nur die mit den default values
- Das Auswahl Rect beachtet den Zoom der Kamera auch noch nicht
- Vielleicht kann man auch einbauen dass die Kamera zentral zoomt und nicht in die linke obere Ecke
- Maps in eigenen Dateien speichern
- Parser für Map-Dateien
- MapEditor
- Batching in Raylib für die TileMap
Anleitungen
Button einfügen:
Schritt für Schritt Anleitung:
- in definitions.h eine ID für den Button anlegen: BUTTON_ID_{ButtonName}
- Onclick Funktion für den Button anlegen:
- Die Funktion muss in onClickFunctions.h und onClickFunctions.h angelegt werden
- Stil: void OnClick{ButtonName}Button(Game *game, Button *button)
- in button.c in der Funktion ButtonInitButton im Switch Case einen Case für die neue ID anlegen und einen Pointer auf die neue Funktion in button->onClick speichern
- UiContianer hat für jeden Screen eine Init Funktion (Menu, Game, etc.). In der richtigen Init Funktion dann den Button erstellen und in den uiContainer mit UiContainerAddButton einfügen damit er dann auch im Spielt ist
- Die default Texturen sind in der UiContainerInit Funktion im textures Array gespeichert
- Fertig :)
Selectable einfügen:
Schritt für Schritt Anleitung:
- in definitions.h eine ID für das Selectable anlegen: SELECTABLE_ID_{ SelectableName}
- OnSelected Funktion für das Selectable anlegen:
- Die Funktion muss in onClickFunctions.h und onClickFunctions.c angelegt werden
- Stil: void OnSelected{SelectableName}(Game *game, Selectable *selectable)
- Wichtig: Die OnSelected Funktion wird in jedem Frame ausgeführt, in dem das Selectable selected ist, es sollte also nur etwas OnButtonPressed machen, und im gleichen Zug dann den state des selectables auf default zurücksetzen
- Außerdem am besten nur etwas machen wenn game->mouseOnUI == 0 ist
- in selectable.c in der Funktion SelectableInit(...) im Switch Case einen Case für die neue ID anlegen und einen Pointer auf die neue Funktion in selectable->onSelected speichern
- UiContianer hat für jeden Screen eine Init Funktion (Menu, Game, etc.). In der richtigen Init Funktion dann das Selectable erstellen und in den uiContainer mit UiContainerAddSelectable einfügen, damit es dann auch im Spiel ist
- Die default Texturen sind in der UiContainerInit Funktion im textures(2) und im backgroundTextures Array gespeichert