Advertisement
Guest User

Untitled

a guest
Feb 28th, 2020
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.02 KB | None | 0 0
  1. #include <SDL.h>
  2. #include <SDL_ttf.h>
  3. #include <iostream>
  4. #include <SDL_image.h>
  5. #include <fstream>
  6.  
  7.  
  8. #define WIDTH 1024
  9. #define HEIGHT 680
  10.  
  11. #define PLAYER_SPRITE_RED "player_red.jpg"
  12. #define PLAYER_SPRITE_GREEN "player_green.jpg"
  13.  
  14. #define START_MONEY 500000
  15. #define PRISON_POS 10
  16. #define MAX_POS 30
  17.  
  18.  
  19.  
  20. /*
  21. /**\
  22. / \
  23. / || \
  24. / || \
  25. / == \
  26. |____________|
  27.  
  28.  
  29. - ТЕКСТУРЫ ЗАГРУЖАТЬ ЧЕРЕЗ ФУНКЦИИ!
  30. - ЧИСТИТЬ РЕСУРСЫ (ОЧЕНЬ ЖЕЛАТЕЛЬНО)
  31. - ДЕФАЙНИТЬ ЧАСТОИСПОЛЬЗУЕМЫЕ ЗНАЧЕНИЯ
  32. - ДЕЛАТЬ МНОГО ОТСТУПОВ И ПИСАТЬ ПРОСТО
  33. - КОММЕНТИРОВАТЬ КОД
  34. */
  35.  
  36.  
  37.  
  38.  
  39. SDL_Texture* createTextTexture(SDL_Renderer* ren, const char* text, TTF_Font* font, SDL_Color col, SDL_Rect* resultRect) {
  40. SDL_Surface* surf = TTF_RenderText_Blended(font, text, col);
  41. *resultRect = { 0, 0, surf->w, surf->h };
  42. SDL_Texture* texture = SDL_CreateTextureFromSurface(ren, surf);
  43. SDL_FreeSurface(surf);
  44. return texture;
  45. }
  46.  
  47. SDL_Texture* loadTexture(SDL_Renderer* ren, const char* file, SDL_Rect* resultRect) {
  48. SDL_Surface* surf = IMG_Load(file);
  49. SDL_Texture* texture = SDL_CreateTextureFromSurface(ren, surf);
  50. resultRect->w = surf->w / 4;
  51. resultRect->h = surf->h;
  52. SDL_FreeSurface(surf);
  53. return texture;
  54. }
  55.  
  56.  
  57.  
  58. class Player {
  59. unsigned int pos;
  60. int money;
  61. bool inPrison;
  62.  
  63. SDL_Texture* texture;
  64. SDL_Rect textureRect;
  65.  
  66. public:
  67. Player() {
  68. pos = 0;
  69. money = START_MONEY;
  70. inPrison = false;
  71.  
  72. texture = NULL;
  73. textureRect = { 0, 0, 0, 0 };
  74. }
  75.  
  76. Player(SDL_Renderer* ren, const char* spriteFile) {
  77. pos = 0;
  78. money = 0;
  79. inPrison = false;
  80.  
  81. texture = loadTexture(ren, spriteFile, &textureRect);
  82. }
  83.  
  84. ~Player() {
  85. // Сообщение о выходе из игры to do!
  86. }
  87.  
  88.  
  89. // METHODS
  90.  
  91. void goOn(unsigned int cnt) {
  92. while (cnt) {
  93. // Чекать мосты to do!
  94. cnt--;
  95. }
  96. }
  97.  
  98. void goToStart() {
  99. goOn(MAX_POS - pos + 1);
  100. }
  101.  
  102. void goToPrison() {
  103. goOn(PRISON_POS - pos);
  104. inPrison = true;
  105. }
  106.  
  107. // Чтобы вычесть деньги, передайте отрицательное значение
  108. void addMoney(int m) {
  109. money += m;
  110. if (money < 0)
  111. delete this;
  112. }
  113. };
  114. int cube()
  115. {
  116. srand(0);
  117. std::srand(unsigned(std::time(0)));
  118. int random_variable = std::rand()%(1,6);
  119. return random_variable;
  120.  
  121. }
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128. int main(int argc, char** argv) {
  129. if (SDL_Init(SDL_INIT_EVERYTHING))
  130. return 0;
  131.  
  132. SDL_Event event;
  133.  
  134.  
  135. // WINDOW
  136.  
  137. SDL_Window* win = SDL_CreateWindow("Platformer", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, WIDTH, HEIGHT, SDL_WINDOW_SHOWN);
  138. if (!win) {
  139. SDL_Quit();
  140. return 0;
  141. }
  142.  
  143. SDL_Renderer* ren = SDL_CreateRenderer(win, -1, 0);
  144. if (!ren) {
  145. SDL_DestroyWindow(win);
  146. SDL_Quit();
  147. return 0;
  148. }
  149.  
  150.  
  151. // FONTS
  152.  
  153. TTF_Init();
  154. TTF_Font* font1 = TTF_OpenFont("trebuc.ttf", 25);
  155. if (!font1) {
  156. SDL_DestroyRenderer(ren);
  157. SDL_DestroyWindow(win);
  158. SDL_Quit();
  159. return 0;
  160. }
  161.  
  162. TTF_Font* font2 = TTF_OpenFont("trebuc.ttf", 20);
  163. if (!font2) {
  164. TTF_CloseFont(font1);
  165. SDL_DestroyRenderer(ren);
  166. SDL_DestroyWindow(win);
  167. SDL_Quit();
  168. return 0;
  169. }
  170.  
  171. // TEXTURES
  172.  
  173.  
  174.  
  175.  
  176. // VARIABLES
  177.  
  178. int ot = SDL_GetTicks(),
  179. nt, dt;
  180. bool quit = false;
  181.  
  182.  
  183. // STRUCTURE INSTANCES
  184.  
  185. SDL_Color fg1 = { 255, 0, 0, 255 };
  186. SDL_Color fg2 = { 0, 0, 255, 255 };
  187. SDL_Rect livesRect, timeRect;
  188.  
  189.  
  190. // OBJECTS
  191.  
  192. Player* player[2]; // Сменное количество игроков to do!
  193. player[0] = new Player(ren, PLAYER_SPRITE_RED);
  194. player[1] = new Player(ren, PLAYER_SPRITE_GREEN);
  195.  
  196.  
  197.  
  198.  
  199. while (!quit) {
  200.  
  201. while (SDL_PollEvent(&event)) {
  202. switch (event.type) {
  203. case SDL_QUIT:
  204. quit = true;
  205. break;
  206. case SDL_KEYDOWN:
  207. if (event.key.keysym.sym == SDLK_SPACE) {
  208.  
  209.  
  210.  
  211. }
  212. break;
  213. }
  214. }
  215.  
  216. // FPS
  217.  
  218. nt = SDL_GetTicks();
  219. dt = nt - ot;
  220. ot = nt;
  221.  
  222.  
  223. // DRAW
  224.  
  225. SDL_SetRenderDrawColor(ren, 0, 0, 0, 0);
  226. SDL_RenderClear(ren);
  227.  
  228.  
  229.  
  230. SDL_RenderPresent(ren);
  231. }
  232.  
  233.  
  234. // DESTRUCTION
  235.  
  236. SDL_DestroyRenderer(ren);
  237. SDL_DestroyWindow(win);
  238.  
  239. SDL_Quit();
  240.  
  241. return 0;
  242. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement