Advertisement
Guest User

Untitled

a guest
Sep 2nd, 2014
246
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.92 KB | None | 0 0
  1. #include <iostream>
  2. #include <SDL.h>
  3. #undef main
  4.  
  5. int main() {
  6.  
  7. SDL_Init(SDL_INIT_EVERYTHING);
  8. SDL_Window * window;
  9. window = SDL_CreateWindow("PONG", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 640, 480, 0);
  10. SDL_Renderer * renderer = SDL_CreateRenderer(window, -1, 0);
  11. SDL_Surface * pad = SDL_LoadBMP("pad1.bmp");
  12. SDL_Surface * bawl2 = SDL_LoadBMP("ball.bmp");
  13. SDL_Texture * texture = SDL_CreateTextureFromSurface(renderer,
  14. pad);
  15. SDL_Texture * texture2 = SDL_CreateTextureFromSurface(renderer,
  16. pad);
  17. SDL_Texture * ball2 = SDL_CreateTextureFromSurface(renderer,
  18. bawl2);
  19. SDL_Rect rcball2;
  20. rcball2.x = 300;
  21. rcball2.y = 150;
  22. rcball2.w = 20;
  23. rcball2.h = 20;
  24. SDL_Rect rcpad2;
  25. rcpad2.x = 610;
  26. rcpad2.y = 10;
  27. rcpad2.w = 20;
  28. rcpad2.h = 100;
  29. SDL_Rect rcpad;
  30. rcpad.x = 10;
  31. rcpad.y = 10;
  32. rcpad.w = 20;
  33. rcpad.h = 100;
  34.  
  35. SDL_Event event;
  36.  
  37. int ballsd = 3;
  38. int ballsdy = 0;
  39. int pad1d = 0;
  40. int pad2d =0;
  41. bool running = true;
  42. while (running) {
  43. rcball2.y -= ballsdy;
  44. rcball2.x -= ballsd;
  45. // left pad
  46. if (rcball2.x < rcpad.x + rcpad.w ) {
  47. if((rcball2.y < rcpad.y + rcpad.h) && (rcball2.y + rcball2.h > rcpad.y)){
  48.  
  49. if(pad1d == 1)
  50. {
  51. ballsdy = 1;
  52. }
  53. if(pad1d == 2)
  54. {
  55. ballsdy = -1;
  56. }
  57.  
  58. ballsd = -3;
  59. }
  60. }
  61.  
  62. // right pad
  63. if (rcball2.x + rcball2.w > rcpad2.x ) {
  64. if((rcball2.y + rcball2.h > rcpad2.y ) && (rcball2.y < rcpad2.y + rcpad2.h)){
  65.  
  66. if(pad2d == 1)
  67. {
  68. ballsdy = -1;
  69. }
  70. if(pad2d == 2)
  71. {
  72. ballsdy = 1;
  73. }
  74.  
  75. ballsd = 3;
  76. }
  77. }
  78.  
  79. if (rcball2.y < 0)
  80. {
  81. ballsdy *= -1;
  82. }
  83. if (rcball2.y + rcball2.h > 480)
  84. {
  85. ballsdy *= -1;
  86. }
  87.  
  88. const int start_time_ms = SDL_GetTicks();
  89. while (SDL_PollEvent(&event)) {
  90. switch(event.type) {
  91. case SDL_KEYDOWN:
  92. if(event.key.keysym.sym == SDLK_ESCAPE) {
  93. running = false ;
  94.  
  95. }
  96. if(event.key.keysym.sym == SDLK_a) {
  97. rcpad.y -= 5;
  98. pad1d = 2;
  99.  
  100. } if(event.key.keysym.sym == SDLK_z) {
  101. rcpad.y += 5;
  102. pad1d = 1;
  103.  
  104. }
  105. if(event.key.keysym.sym == SDLK_UP) {
  106. rcpad2.y -= 5;
  107. pad2d = 1;
  108.  
  109. } if(event.key.keysym.sym == SDLK_DOWN) {
  110. rcpad2.y += 5;
  111. pad2d = 2;
  112.  
  113. }
  114. break;
  115. default:
  116. break;
  117. }
  118. }
  119. SDL_RenderClear(renderer);
  120. SDL_RenderCopy(renderer, ball2, NULL, &rcball2);
  121. SDL_RenderCopy(renderer, texture, NULL, &rcpad);
  122. SDL_RenderCopy(renderer, texture2, NULL, &rcpad2);
  123. SDL_RenderPresent(renderer);
  124.  
  125. const int elapsed_time_ms = SDL_GetTicks() - start_time_ms;
  126. SDL_Delay(1000 / 32 - elapsed_time_ms);
  127. }
  128. SDL_DestroyTexture(texture);
  129. SDL_FreeSurface(pad);
  130. SDL_DestroyRenderer(renderer);
  131. SDL_DestroyWindow(window);
  132. SDL_Quit();
  133. return 0;
  134. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement