From 1ae4028603087daa228ba725e6f0011af10b8425 Mon Sep 17 00:00:00 2001 From: Gregory Eremin Date: Wed, 30 Sep 2015 14:56:05 +0300 Subject: [PATCH] Define constants, set pad move limits --- main.cpp | 48 +++++++++++++++++++++++++++++++++--------------- 1 file changed, 33 insertions(+), 15 deletions(-) diff --git a/main.cpp b/main.cpp index 19deff5..90650d2 100644 --- a/main.cpp +++ b/main.cpp @@ -1,6 +1,18 @@ #include #include "SDL2/SDL.h" +#define SCREEN_X 100 +#define SCREEN_Y 100 +#define SCREEN_WIDTH 640 +#define SCREEN_HEIGHT 480 +#define PAD_WIDTH 200 +#define PAD_HEIGHT 20 + +#define KEY_MOVE_STEP 5 + +#define BG_COLOR 0, 0, 0, 255 +#define PAD_COLOR 0, 0, 255, 255 + int main(int argc, char const *argv[]) { if (SDL_Init(SDL_INIT_VIDEO) != 0) { std::cout << "SDL_Init Error: " << SDL_GetError() << std::endl; @@ -8,10 +20,10 @@ int main(int argc, char const *argv[]) { } SDL_Window *window = SDL_CreateWindow( - "Breakout", // Title - 100, 100, // X, Y - 640, 480, // Width, Height - SDL_WINDOW_SHOWN // Visibility + "Breakout", + SCREEN_X, SCREEN_Y, + SCREEN_WIDTH, SCREEN_HEIGHT, + SDL_WINDOW_SHOWN ); if (window == nullptr) { std::cout << "SDL_CreateWindow Error: " << SDL_GetError() << std::endl; @@ -32,19 +44,19 @@ int main(int argc, char const *argv[]) { } // Setting background color to black - SDL_SetRenderDrawColor(renderer, 0, 0, 0, 255); + SDL_SetRenderDrawColor(renderer, BG_COLOR); SDL_RenderClear(renderer); // Creat a rect at pos ( 50, 50 ) that's 50 pixels wide and 50 pixels high. SDL_Rect platform = { - .x = (640 - 200) / 2, - .y = (480 - 20), - .w = 200, - .h = 20 + .x = (SCREEN_WIDTH - PAD_WIDTH) / 2, + .y = (SCREEN_HEIGHT - PAD_HEIGHT), + .w = PAD_WIDTH, + .h = PAD_HEIGHT }; // Set render color to blue ( rect will be rendered in this color ) - SDL_SetRenderDrawColor(renderer, 0, 0, 255, 255); + SDL_SetRenderDrawColor(renderer, PAD_COLOR); // Render rect SDL_RenderFillRect(renderer, &platform); @@ -65,22 +77,28 @@ int main(int argc, char const *argv[]) { quit = true; break; case SDLK_LEFT: - platform.x-=5; + platform.x -= KEY_MOVE_STEP; break; case SDLK_RIGHT: - platform.x+=5; + platform.x += KEY_MOVE_STEP; break; } } if (e.type == SDL_MOUSEMOTION) { - platform.x = e.motion.x - 100; + platform.x = e.motion.x - PAD_WIDTH / 2; + } + + if (platform.x < 0) { + platform.x = 0; + } else if (platform.x > SCREEN_WIDTH - PAD_WIDTH) { + platform.x = SCREEN_WIDTH - PAD_WIDTH; } } // Re-rendering - SDL_SetRenderDrawColor(renderer, 0, 0, 0, 255); + SDL_SetRenderDrawColor(renderer, BG_COLOR); SDL_RenderClear(renderer); - SDL_SetRenderDrawColor(renderer, 0, 0, 255, 255); + SDL_SetRenderDrawColor(renderer, PAD_COLOR); SDL_RenderFillRect(renderer, &platform); SDL_RenderPresent(renderer); SDL_Delay(1);