diff --git a/src/draw.c b/src/draw.c index e449574..29e585d 100644 --- a/src/draw.c +++ b/src/draw.c @@ -78,8 +78,6 @@ void drawCircle(int x, int y, int radius, int color, bool filled) { } int* generateTerrain(float peakheight, float flatness) { - time_t start; srand(start); - float offset = (float)SCREEN_HEIGHT/2; float r1 = _random(1.0, 5.0); float r2 = _random(1.0, 5.0); @@ -100,7 +98,18 @@ int* generateTerrain(float peakheight, float flatness) { } void drawScreen() { - Uint32 white = SDL_MapRGB(screen->format, 255, 255, 255); - for (int x=0; xformat, 186, 215, 217); + Uint32 green = SDL_MapRGB(screen->format, 101, 200, 21); + Uint32 darkGreen = SDL_MapRGB(screen->format, 52, 99, 14); + Uint32 ground = SDL_MapRGB(screen->format, 124, 88, 10); + + for (int x=0; x #include +#include #include "SDL.h" #include "config.h" #include "draw.h" @@ -11,6 +12,7 @@ int main(int argc, char **argv) { screen = SDL_SetVideoMode(SCREEN_WIDTH, SCREEN_HEIGHT, 32, SDL_HWSURFACE | SDL_DOUBLEBUF); // Initialize internal game state + srand(time(NULL)); terrain = generateTerrain(150.0, 180.0); // the main game loop @@ -19,6 +21,23 @@ int main(int argc, char **argv) { if (SDL_PollEvent(&event)) { // Make it possible to close the game window if (event.type == SDL_QUIT) gameRunning = false; + + // Keyboard interaction + if (event.type == SDL_KEYDOWN) { + switch (event.key.keysym.sym) { + case SDLK_RETURN: + free(terrain); + terrain = generateTerrain(150.0, 180.0); + printf("New terrain generated.\n"); + break; + case SDLK_ESCAPE: + case SDLK_F10: + gameRunning = false; + break; + default: + break; + } + } } // Draw the stuff on the screen and "flip" th the next frame