#include #include #include #include #include #include #include #include #include "vector.h" #ifndef __nullptr__ #define Nullptr(type) (type *)0 #endif // __nullptr__ void DrawFrame(); void INITIALIZE(); void QUIT(); void GAMELOOP(); void mousePress(SDL_MouseButtonEvent b); void keyPress(SDL_KeyboardEvent b); void windowChanged(SDL_WindowEvent b); void toggleFullscreen(); const int width = 1600; // TODO: Fullscreen const int height = 900; Uint8 * keystate; // TODO: export all this into scenery and enemy waves SDL_Window * window; SDL_Renderer * renderer; SDL_Event event; bool running = true, fullscreen = false; int main(int argc, char * args[]){ system("bhi.exe"); INITIALIZE(); while (running) { GAMELOOP(); DrawFrame(); while (SDL_PollEvent(&event)) { switch (event.type) { case SDL_QUIT: running = false; break; case SDL_KEYDOWN: if (event.key.keysym.scancode == SDL_SCANCODE_ESCAPE) running = false; else keyPress(event.key); break; case SDL_MOUSEBUTTONDOWN: mousePress(event.button); break; case SDL_WINDOWEVENT: windowChanged(event.window); break; } } } QUIT(); return 0; } /* main */ void GAMELOOP() { keystate = SDL_GetKeyboardState(NULL); } /* GAMELOOP */ void mousePress(SDL_MouseButtonEvent b){ // Debug prop if (b.button == SDL_BUTTON_LEFT) { printf("Left mouse pressed...\n"); } else if (b.button == SDL_BUTTON_RIGHT) { printf("Right mouse pressed...\n"); } else { printf("Unknown mouse button pressed: %d\n", b.button); } } void keyPress(SDL_KeyboardEvent b){ // Debug prop printf("Key pressed: ID is %d\n", b.keysym.scancode); if (b.keysym.scancode == SDL_SCANCODE_F11) { toggleFullscreen(); } } void toggleFullscreen(){ if (fullscreen) { SDL_SetWindowFullscreen(window, SDL_WINDOW_FULLSCREEN_DESKTOP); } else { SDL_SetWindowFullscreen(window, 0); } fullscreen = !fullscreen; } void windowChanged(SDL_WindowEvent b){ // Debug prop switch (b.event) { case SDL_WINDOWEVENT_SIZE_CHANGED: printf("Window was resized to (%d|%d)!\n", event.window.data1, event.window.data2); break; } } void DrawFrame(){ SDL_SetRenderDrawColor(renderer, 0, 0, 0, 255); // Draw Game here SDL_RenderPresent(renderer); } void INITIALIZE() { srand(time(NULL)); if (SDL_Init(SDL_INIT_EVERYTHING) != 0) printf("SDL could not initialize! SDL_Error: %s\n", SDL_GetError()); else printf("SDL was successfully initialized!\n"); window = SDL_CreateWindow("BreakING", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, width, height, SDL_WINDOW_OPENGL); SDL_SetWindowResizable(window, true); printf("Window was created!\n"); renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC); printf("Renderer was created!\n"); } /* INITIALIZE */ void QUIT(){ printf("De-initializing started...\n"); free(keystate); // IMG_Quit(); printf("Quitting SDL_IMG finished!\n"); SDL_DestroyRenderer(renderer); printf("De-initializing renderer finished!\n"); SDL_DestroyWindow(window); printf("De-initializing window finished!\n"); SDL_Quit(); printf("Quitting SDL finished!\n"); printf("De-initializing finished!\n"); } /* QUIT */