Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <SDL2/SDL.h>
- enum PlayerNumber {one,two};
- int done;
- int speed = 5;
- static void quit(int rc)
- {
- SDL_Quit();
- exit(rc);
- }
- void loop(SDL_Rect* playerBat,SDL_Renderer* renderer, enum PlayerNumber playerNumber)
- {
- SDL_Keycode upKey;
- switch (playerNumber) {
- case one:
- upKey = SDLK_UP;
- break;
- case two:
- upKey = 'w';
- break;
- }
- SDL_Keycode downKey;
- switch (playerNumber) {
- case one:
- downKey = SDLK_DOWN;
- break;
- case two:
- downKey = 's';
- break;
- }
- SDL_Event event;
- if (SDL_PollEvent(&event))
- {
- switch (event.type)
- {
- case SDL_KEYDOWN:
- if (event.key.keysym.sym == upKey && playerBat->y > 0)
- {
- playerBat->y-=speed;
- printf("Going up, new local: %i\n", playerBat->y);
- }
- else if (event.key.keysym.sym == downKey && playerBat->y < 400 - playerBat->h)
- {
- playerBat->y+=speed;
- printf("Going down, new local: %i\n", playerBat->y);
- }
- break;
- case SDL_QUIT:
- done = 1;
- break;
- default:
- break;
- }
- }
- }
- int main(int argc, char *argv[])
- {
- SDL_Window *window;
- if (SDL_Init(SDL_INIT_VIDEO) < 0)
- {
- SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Couldn't initialize SDL: %s\n", SDL_GetError());
- return (1);
- }
- window = SDL_CreateWindow("Pong-ish",
- SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED,
- 640, 400, 0);
- SDL_StartTextInput();
- SDL_PumpEvents();
- done = 0;
- SDL_Renderer* renderer = SDL_CreateRenderer(window, -1, 0);
- SDL_Rect playerLeft = { .x = 10, .y = 175, .h = 50, .w = 8 };
- SDL_Rect playerRight = { .x = 640 - 10 - 8, .y = 175, .h = 50, .w = 8 };
- while (!done)
- {
- SDL_SetRenderDrawColor(renderer, 0, 0, 0, 255);
- SDL_RenderClear( renderer );
- SDL_SetRenderDrawColor( renderer, 255, 255, 255, 255 );
- loop(&playerRight, renderer, one);
- loop(&playerLeft, renderer, two);
- SDL_RenderFillRect(renderer, &playerRight);
- SDL_RenderFillRect(renderer, &playerLeft);
- SDL_RenderPresent( renderer);
- }
- SDL_Quit();
- return (0);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement