1
0
Fork 0
breakout/src/breakout.cpp

77 lines
2.0 KiB
C++
Raw Normal View History

2015-09-28 17:46:34 +00:00
#include <iostream>
#include "SDL2/SDL.h"
2015-10-04 12:48:57 +00:00
#include "breakout.hpp"
#include "scene.hpp"
2015-09-30 11:56:05 +00:00
2015-09-29 11:27:26 +00:00
int main(int argc, char const *argv[]) {
if (SDL_Init(SDL_INIT_VIDEO) != 0) {
2015-10-04 12:48:57 +00:00
std::cout << "SDL_Init Error: " << std::endl;
2015-09-28 17:46:34 +00:00
return 1;
}
2015-10-04 12:48:57 +00:00
DEBUG("[?] Creating window");
2015-09-29 11:27:26 +00:00
SDL_Window *window = SDL_CreateWindow(
2015-09-30 11:56:05 +00:00
"Breakout",
SCREEN_X, SCREEN_Y,
SCREEN_WIDTH, SCREEN_HEIGHT,
SDL_WINDOW_SHOWN
2015-09-29 11:27:26 +00:00
);
if (window == nullptr) {
2015-09-28 17:46:34 +00:00
std::cout << "SDL_CreateWindow Error: " << SDL_GetError() << std::endl;
SDL_Quit();
return 1;
}
2015-10-04 12:48:57 +00:00
DEBUG("[!] Window created");
2015-09-28 17:46:34 +00:00
2015-10-04 12:48:57 +00:00
DEBUG("[?] Creating renderer");
2015-09-29 11:27:26 +00:00
SDL_Renderer *renderer = SDL_CreateRenderer(
window, // Window
-1, // Video driver. -1 means "any compatible"
SDL_RENDERER_ACCELERATED|SDL_RENDERER_PRESENTVSYNC // Options
);
if (renderer == nullptr) {
SDL_DestroyWindow(window);
std::cout << "SDL_CreateRenderer Error: " << SDL_GetError() << std::endl;
SDL_Quit();
return 1;
}
2015-10-04 12:48:57 +00:00
DEBUG("[!] Renderer created");
2015-09-29 11:27:26 +00:00
2015-10-04 12:48:57 +00:00
Scene scene(renderer);
2015-09-29 18:18:26 +00:00
2015-09-29 18:18:43 +00:00
SDL_Event e;
bool quit = false;
while (!quit) {
while (SDL_PollEvent(&e)) {
if (e.type == SDL_QUIT) {
quit = true;
}
if (e.type == SDL_KEYDOWN) {
switch (e.key.keysym.sym) {
case SDLK_q:
quit = true;
break;
case SDLK_LEFT:
2015-09-30 14:55:40 +00:00
scene.move_pad_relative(-KEY_MOVE_STEP);
2015-09-29 18:18:43 +00:00
break;
case SDLK_RIGHT:
2015-09-30 14:55:40 +00:00
scene.move_pad_relative(KEY_MOVE_STEP);
2015-09-29 18:18:43 +00:00
break;
}
}
2015-09-29 19:16:17 +00:00
if (e.type == SDL_MOUSEMOTION) {
2015-09-30 14:55:40 +00:00
scene.move_pad(e.motion.x - PAD_WIDTH / 2);
2015-09-29 19:16:17 +00:00
}
2015-09-29 18:18:43 +00:00
}
2015-09-29 19:16:17 +00:00
2015-10-04 12:48:57 +00:00
scene.render();
SDL_Delay(10);
2015-09-29 18:18:43 +00:00
}
2015-09-29 18:18:26 +00:00
SDL_DestroyWindow(window);
SDL_Quit();
2015-09-28 17:46:34 +00:00
2015-09-29 11:27:26 +00:00
std::cout << "Exiting nicely" << std::endl;
2015-09-28 17:46:34 +00:00
return 0;
}