#ifndef SELECTABLE_H_ #define SELECTABLE_H_ #include "raylib.h" #include "../game.h" #define SELECTABLE_STATE_DEFAULT 0 #define SELECTABLE_STATE_HOVERED 1 #define SELECTABLE_STATE_SELECTED 2 #define SELECTABLE_ID_TEST 0 typedef struct Selectable{ Vector2 position; // Linke obere Ecke Vector2 centerPosition; // Die Mitte des Selectables Texture2D texture[3];// [0]: Normal | [1]: Hovered | [2]: Selected Texture2D backgroundTexture[3]; // [0]: Normal | [1]: Hovered | [2]: Selected int hasBackground; // 0: hat keine Background Textur | 1: hat Background Textur char description[20]; //Text der unter dem selectable angezeigt werden kann int showDescription; //0: zeigt Description nicht | 1: zeigt Description int id; // Durch die ID wird dem Selectable eine Funktion zugeordnet int state; // 0: not selected | 1: hovered | 2: selected int fontSize; // FontSize kann für jede Selectable Description individuell festgelegt werden // Notiz: Die Selectables können auch in einem 2-Dimensionalen Array im UiContainer gespeichert werden, worüber die Groups auch definiert werden könnten int groupID; // Selectables können gruppiert werden, man kann also mehrere Dinge gleichzeitig selected haben }Selectable; // Textures+backgroundTextures: [0]: Normal | [1]: Hovered | [2]: Selected // hasBackground: 0: hat keine Background Textur | 1: hat Background Textur // showDescription 0: zeigt Description nicht | 1: zeigt Description // Max Description LEN 20 Selectable * SelectableInit(Texture2D textures[3], Texture2D backgroundTextures[3], int hasBackground, Vector2 *position, char *description, int showDescripton, int descriptionLEN, int fontSize, int id, int groupID); void SelectableExecuteSelectable(Selectable *selectable, Game * game); int SelectableUpdateSelectableState(Selectable * selectable); int SelectableUnselectSelectable(Selectable * selectable); void SelectableDrawSelectable(Selectable * selectable); #endif