Define constants, set pad move limits
This commit is contained in:
parent
b7b1780f9e
commit
1ae4028603
48
main.cpp
48
main.cpp
|
@ -1,6 +1,18 @@
|
|||
#include <iostream>
|
||||
#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);
|
||||
|
|
Loading…
Reference in New Issue