Add header file
This commit is contained in:
parent
38e0db28c0
commit
e5a66c40b4
@ -32,7 +32,7 @@ file(GLOB SOURCES
|
||||
"*.cpp"
|
||||
"*.c"
|
||||
)
|
||||
add_executable(Snake main.cpp)
|
||||
add_executable(Snake main.cpp food.c)
|
||||
target_link_libraries(Snake ${SDL2_LIBRARIES})
|
||||
|
||||
|
||||
|
8
config.h
Normal file
8
config.h
Normal file
@ -0,0 +1,8 @@
|
||||
struct config_t{
|
||||
int mapWidth; // =10 //Kartenbreite
|
||||
int mapHeight; // =10 //Kartenhöhe
|
||||
int cycleDurationMs; //ms between each game loop iterartion (game speed)
|
||||
int difficulty; //0-3 //Schwierigkeitsgrad
|
||||
int snakeDefaultLength; // = 2 //Länge der Schlange
|
||||
const char *leaderboardFilename; //Dateiname des Leaderboards
|
||||
}
|
13
food.c
Normal file
13
food.c
Normal file
@ -0,0 +1,13 @@
|
||||
#include "food.h"
|
||||
|
||||
//platziert zufällig (mit bestimmtem Algorithmus) Fressen auf dem Spielfeld
|
||||
void placeFood(int count)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
//Überprüft, ob Snake gefressen hat
|
||||
void ckeckEaten()
|
||||
{
|
||||
return;
|
||||
}
|
5
food.h
Normal file
5
food.h
Normal file
@ -0,0 +1,5 @@
|
||||
void placeFood(int cnt);
|
||||
//platziert zufällig (mit bestimmtem Algorithmus) Fressen auf dem Spielfeld
|
||||
|
||||
void ckeckEaten();
|
||||
//Überprüft, ob Snake gefressen hat
|
33
game.h
Normal file
33
game.h
Normal file
@ -0,0 +1,33 @@
|
||||
typedef enum gameState_t {PAUSED=0, MENU, RUNNING};
|
||||
|
||||
struct gameData_t{
|
||||
snake_t snake;
|
||||
int mapCollisions[int MAX_MAP_SIZE][int MAX_MAP_SIZE]; //Position der Wände
|
||||
int mapPortals [int MAX_MAP_SIZE][int MAX_MAP_SIZE]; //Position der Portale
|
||||
|
||||
int foodX, foodY; //Positon des Futters (es gibt immer nur 1 Futter)
|
||||
int lifesRemaining; //implementieren wir nicht!!
|
||||
int timestampLastRun;
|
||||
bool isPaused;
|
||||
gameState_t gameState;
|
||||
}
|
||||
|
||||
void gameInit();
|
||||
//ruft snakeInit auf
|
||||
//ruft place Food auf
|
||||
|
||||
void handleCollision();
|
||||
//Überprüft, ob Snake mit Gegenstand/Wand kollidiert ist
|
||||
|
||||
void handlePortals(); //optional
|
||||
//Prüft, ob Snake sich auf einem Portal befindet
|
||||
|
||||
void gameLoop();
|
||||
//macht immer: handleKeyboardEvents();
|
||||
//if TickDue: Snakemove(), TickTimerReset
|
||||
//optional: ruft checkCollision auf
|
||||
//ruft place food auf
|
||||
//ruft checkEaten auf
|
||||
//if checkEaten then snakeGrow
|
||||
//ruft snakeMove auf
|
||||
|
6
keyboard.h
Normal file
6
keyboard.h
Normal file
@ -0,0 +1,6 @@
|
||||
void processInputEvent();
|
||||
//wird von SDL aufgerufen, wenn Taste gedrückt wurde
|
||||
//bekommt Info darüber, welche Taste gedrückt wurde
|
||||
//ruft zugehörige Aktion über switch caseauf
|
||||
// z.B. bei Pfeiltaste -> rufe snakeSetDir auf
|
||||
// im Menü bei Settings -> rufe menuNavigate auf
|
7
main.cpp
7
main.cpp
@ -1,5 +1,10 @@
|
||||
#include "SDL.h"
|
||||
|
||||
//initialize SDL window
|
||||
//ruft gameInit auf
|
||||
//uninitialize SDL
|
||||
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
SDL_Init(SDL_INIT_VIDEO);
|
||||
@ -22,6 +27,6 @@ int main(int argc, char *argv[])
|
||||
|
||||
SDL_DestroyWindow(window);
|
||||
SDL_Quit();
|
||||
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
12
menu.h
Normal file
12
menu.h
Normal file
@ -0,0 +1,12 @@
|
||||
void startScreen();
|
||||
//zum Starten Enter drücken
|
||||
//optional: "E" eingeen für Settings
|
||||
|
||||
void showLeaderboard();
|
||||
//zeigt die besten Spieldurchläufe inkl. Punktestand an
|
||||
|
||||
void menuNavigate();
|
||||
//über Tastaturbefehle im Menü navigieren
|
||||
|
||||
void showSettings(); //optional
|
||||
//Menü zum Auswählen über Tastaturbefehle
|
2
render.h
Normal file
2
render.h
Normal file
@ -0,0 +1,2 @@
|
||||
void renderGame(struct game, struct snake);
|
||||
//erstellt aus Spielfeldstruktur die graphische Anzeige mit SDL-Framework
|
32
snake.h
Normal file
32
snake.h
Normal file
@ -0,0 +1,32 @@
|
||||
|
||||
typedef enum SnakeDirection{DOWN=0, UP, LEFT, RIGHT}; //Bewegungsrichtung
|
||||
|
||||
struct snake_t {
|
||||
int length; //aktuelle Länge der Schlange
|
||||
int headX, headY; //aktuelle Position der Schlange
|
||||
snakeDirection_t direction;
|
||||
int tail[512][2] ={0};
|
||||
bool isAlive; //lebt die Schlange noch oder ist sie mit sich selbst kollidiert?
|
||||
}
|
||||
|
||||
void snakeInit();
|
||||
//Snake mit bestimmter Startlänge an Startposition erstellen
|
||||
//Speicherbereich reservieren
|
||||
|
||||
void snakegrow();
|
||||
//Snake wird um 1 Glied länger (nach Fressen)
|
||||
|
||||
void snakeMove();
|
||||
//bewegt die Schlang einen Schritt in die aktuelle Richtung
|
||||
//ruft lokale Variable dir von snakeSetDir auf
|
||||
|
||||
void snakeSetDir(enum dir); //Richtung als Übergabeparameter
|
||||
//definiert aktuelle Bewegungsrichtung der Schlange
|
||||
|
||||
bool snakeIsAlive();
|
||||
//Überprüfen, ob Schlange noch lebt
|
||||
//Prüft Kollision mit sich selbst
|
||||
|
||||
void snakeSetHeadPos(); //optional
|
||||
//für handlePortals
|
||||
//generiert zufällige Zielsposition, wohin sich die Schlange nach Betreten eines Portals bewegt
|
Loading…
x
Reference in New Issue
Block a user