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.
 
 
 
Jonathan Hager 56fea55b72
Merge branch 'test'
2 years ago
Dict kack dict ausm internet um große switch cases zu vermeiden vllt keine Ahnung 3 years ago
Entity DrawRect for world added, scaling of Textures on selectables, some new textures and links to textures 3 years ago
Input map can be edited easily now 3 years ago
IsometricMap Wasser ist animiert, ist aktuell aber noch gehardcoded in der IsometricMapDraw 3 years ago
MapObject LUMBERJÄCKES 3 years ago
Screen map can be edited easily now 3 years ago
Sprite DrawRect for world added, scaling of Textures on selectables, some new textures and links to textures 3 years ago
Textures Wasser ist animiert, ist aktuell aber noch gehardcoded in der IsometricMapDraw 3 years ago
Ui Wasser ist animiert, ist aktuell aber noch gehardcoded in der IsometricMapDraw 3 years ago
assets Wasser ist animiert, ist aktuell aber noch gehardcoded in der IsometricMapDraw 3 years ago
.gitignore removed unneccessary (?) files from repo 3 years ago
Makefile kack dict ausm internet um große switch cases zu vermeiden vllt keine Ahnung 3 years ago
README.md Wasser ist animiert, ist aktuell aber noch gehardcoded in der IsometricMapDraw 3 years ago
cropEntity.sh test2 2 years ago
definitions.h Wasser ist animiert, ist aktuell aber noch gehardcoded in der IsometricMapDraw 3 years ago
game.c Wasser ist animiert, ist aktuell aber noch gehardcoded in der IsometricMapDraw 3 years ago
game.h Screens hinzugefügt, Selectable / Button erstellen ist jetzt einfacher, Selectable und Button Texturen sind jetzt auch im TextureAtlas 3 years ago
main.c Test für Neogit lol 2 years ago

README.md

Aufbauspiel

[[TOC]]

Notizen

KI Gegner ist erstmal zu aufwändig, ein wenig Ackern muss man aber immer!

Projection Orthogonal -> Isometric

TargetFPS vs. VSYNC

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

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