Advertisement
Guest User

Game Engine

a guest
Mar 11th, 2024
32
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.56 KB | None | 0 0
  1. // Compile With: g++ LQGE.h main.cpp -lSDL2 -lSDL_image -o "Butter Game"
  2.  
  3. #include <iostream>
  4. #include <SDL2/SDL.h>
  5. #include <SDL2/SDL_image.h>
  6.  
  7. // Errors
  8. #define LQGE_SUCCESS 0
  9. #define LQGE_INITIALIZATION_ERROR 1
  10. #define LQGE_IMAGE_INITIALIZATION_ERROR 2
  11. #define LQGE_WINDOW_CREATION_ERROR 3
  12. #define LQGE_RENDERER_CREATION_ERROR 4
  13. #define LQGE_IMAGE_LOADING_ERROR 5
  14.  
  15. // Constants Needed
  16. #define WINDOW_CENTER_X 1920/2
  17. #define WINDOW_CENTER_Y 1080
  18.  
  19. // The Window And Renderer And Other Important Stuff
  20. SDL_Window* window;
  21. SDL_Renderer* renderer;
  22.  
  23. SDL_Texture* backgroundTexture;
  24.  
  25. bool running = true;
  26. bool fullscreen;
  27.  
  28. int LQGE_CreateWindow(int posX, int posY, int sizeX, int sizeY, bool fullscreen)
  29. {
  30. if(SDL_Init(SDL_INIT_EVERYTHING) != 0){return LQGE_INITIALIZATION_ERROR;}
  31. if(IMG_Init(IMG_INIT_PNG) == 0){return LQGE_IMAGE_INITIALIZATION_ERROR;}
  32. if(fullscreen){window = SDL_CreateWindow("Untitled Butter Game", posX, posY, sizeX, sizeY, SDL_WINDOW_FULLSCREEN); fullscreen = true;}
  33. if(!fullscreen){window = SDL_CreateWindow("Untitled Butter Game", posX, posY, sizeX, sizeY, SDL_WINDOW_SHOWN); fullscreen = false;}
  34. if(window == NULL){return LQGE_WINDOW_CREATION_ERROR;}
  35.  
  36. renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_PRESENTVSYNC);
  37. if(renderer == NULL){return LQGE_RENDERER_CREATION_ERROR;}
  38.  
  39. return LQGE_SUCCESS;
  40. }
  41.  
  42. void quit()
  43. {
  44. SDL_DestroyRenderer(renderer);
  45. SDL_DestroyWindow(window);
  46. IMG_Quit();
  47. SDL_Quit();
  48.  
  49. running = false;
  50. }
  51.  
  52. int LQGE_ChangeBackground(const char* path)
  53. {
  54. SDL_Surface* backgroundSurface;
  55.  
  56. backgroundSurface = IMG_Load(path);
  57. if(backgroundSurface == NULL){return LQGE_IMAGE_LOADING_ERROR;}
  58. backgroundTexture = SDL_CreateTextureFromSurface(renderer, backgroundSurface);
  59. if(backgroundTexture == NULL){return LQGE_IMAGE_LOADING_ERROR;}
  60.  
  61. return LQGE_SUCCESS;
  62. }
  63.  
  64. void LQGE_RenderScreen()
  65. {
  66. SDL_RenderClear(renderer);
  67.  
  68. SDL_RenderCopy(renderer, backgroundTexture, NULL, NULL);
  69.  
  70. SDL_RenderPresent(renderer);
  71. }
  72.  
  73. void LQGE_GetInput()
  74. {
  75. SDL_Event event;
  76.  
  77. while(SDL_PollEvent(&event) != 0)
  78. {
  79. switch(event.type)
  80. {
  81. case SDL_QUIT:
  82. quit();
  83. break;
  84. case SDL_KEYDOWN:
  85. switch(event.key.keysym.sym)
  86. {
  87. case SDLK_F4:
  88. if(fullscreen)
  89. {
  90. SDL_SetWindowFullscreen(window, 0);
  91. fullscreen = false;
  92. }
  93. else if(!fullscreen)
  94. {
  95. SDL_SetWindowFullscreen(window, SDL_WINDOW_FULLSCREEN);
  96. fullscreen = true;
  97. }
  98. break;
  99. default:
  100. break;
  101. }
  102. break;
  103. default:
  104. break;
  105. }
  106. }
  107. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement