Advertisement
Guest User

Untitled

a guest
Oct 15th, 2019
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.44 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <SDL2/SDL.h>
  4.  
  5. enum PlayerNumber {one,two};
  6.  
  7. int done;
  8.  
  9. int speed = 5;
  10.  
  11. static void quit(int rc)
  12. {
  13.     SDL_Quit();
  14.     exit(rc);
  15. }
  16.  
  17. void loop(SDL_Rect* playerBat,SDL_Renderer* renderer, enum PlayerNumber playerNumber)
  18. {
  19.     SDL_Keycode upKey;
  20.    
  21.     switch (playerNumber) {
  22.         case one:
  23.             upKey = SDLK_UP;
  24.             break;
  25.            
  26.         case two:
  27.             upKey = 'w';
  28.             break;
  29.     }
  30.     SDL_Keycode downKey;
  31.     switch (playerNumber) {
  32.         case one:
  33.             downKey = SDLK_DOWN;
  34.             break;
  35.            
  36.         case two:
  37.             downKey = 's';
  38.             break;
  39.     }
  40.      SDL_Event event;
  41.     if (SDL_PollEvent(&event))
  42.     {
  43.         switch (event.type)
  44.         {
  45.         case SDL_KEYDOWN:
  46.             if (event.key.keysym.sym == upKey && playerBat->y > 0)
  47.             {
  48.                 playerBat->y-=speed;
  49.                 printf("Going up, new local: %i\n", playerBat->y);
  50.             }
  51.             else if (event.key.keysym.sym == downKey && playerBat->y < 400 - playerBat->h)
  52.             {
  53.                 playerBat->y+=speed;
  54.                 printf("Going down, new local: %i\n", playerBat->y);
  55.             }
  56.             break;
  57.         case SDL_QUIT:
  58.             done = 1;
  59.             break;
  60.         default:
  61.             break;
  62.         }
  63.     }
  64. }
  65.  
  66. int main(int argc, char *argv[])
  67. {
  68.     SDL_Window *window;
  69.     if (SDL_Init(SDL_INIT_VIDEO) < 0)
  70.     {
  71.         SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Couldn't initialize SDL: %s\n", SDL_GetError());
  72.         return (1);
  73.     }
  74.     window = SDL_CreateWindow("Pong-ish",
  75.                               SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED,
  76.                               640, 400, 0);
  77. SDL_StartTextInput();
  78.     SDL_PumpEvents();
  79. done = 0;
  80.     SDL_Renderer* renderer = SDL_CreateRenderer(window, -1, 0);
  81.     SDL_Rect playerLeft = { .x = 10, .y = 175, .h = 50, .w = 8 };
  82.     SDL_Rect playerRight = { .x = 640 - 10 - 8, .y = 175, .h = 50, .w = 8 };
  83.  while (!done)
  84.     {
  85.         SDL_SetRenderDrawColor(renderer, 0, 0, 0, 255);
  86.         SDL_RenderClear( renderer );
  87.         SDL_SetRenderDrawColor( renderer, 255, 255, 255, 255 );
  88.         loop(&playerRight, renderer, one);
  89.         loop(&playerLeft, renderer, two);
  90.         SDL_RenderFillRect(renderer, &playerRight);
  91.         SDL_RenderFillRect(renderer, &playerLeft);
  92.         SDL_RenderPresent( renderer);
  93.     }
  94.     SDL_Quit();
  95.     return (0);
  96. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement