Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <SDL.h>
- #undef main
- int main() {
- SDL_Init(SDL_INIT_EVERYTHING);
- SDL_Window * window;
- window = SDL_CreateWindow("PONG", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 640, 480, 0);
- SDL_Renderer * renderer = SDL_CreateRenderer(window, -1, 0);
- SDL_Surface * pad = SDL_LoadBMP("pad1.bmp");
- SDL_Surface * bawl2 = SDL_LoadBMP("ball.bmp");
- SDL_Texture * texture = SDL_CreateTextureFromSurface(renderer,
- pad);
- SDL_Texture * texture2 = SDL_CreateTextureFromSurface(renderer,
- pad);
- SDL_Texture * ball2 = SDL_CreateTextureFromSurface(renderer,
- bawl2);
- SDL_Rect rcball2;
- rcball2.x = 300;
- rcball2.y = 150;
- rcball2.w = 20;
- rcball2.h = 20;
- SDL_Rect rcpad2;
- rcpad2.x = 610;
- rcpad2.y = 10;
- rcpad2.w = 20;
- rcpad2.h = 100;
- SDL_Rect rcpad;
- rcpad.x = 10;
- rcpad.y = 10;
- rcpad.w = 20;
- rcpad.h = 100;
- SDL_Event event;
- int ballsd = 3;
- int ballsdy = 0;
- int pad1d = 0;
- int pad2d =0;
- bool running = true;
- while (running) {
- rcball2.y -= ballsdy;
- rcball2.x -= ballsd;
- // left pad
- if (rcball2.x < rcpad.x + rcpad.w ) {
- if((rcball2.y < rcpad.y + rcpad.h) && (rcball2.y + rcball2.h > rcpad.y)){
- if(pad1d == 1)
- {
- ballsdy = 1;
- }
- if(pad1d == 2)
- {
- ballsdy = -1;
- }
- ballsd = -3;
- }
- }
- // right pad
- if (rcball2.x + rcball2.w > rcpad2.x ) {
- if((rcball2.y + rcball2.h > rcpad2.y ) && (rcball2.y < rcpad2.y + rcpad2.h)){
- if(pad2d == 1)
- {
- ballsdy = -1;
- }
- if(pad2d == 2)
- {
- ballsdy = 1;
- }
- ballsd = 3;
- }
- }
- if (rcball2.y < 0)
- {
- ballsdy *= -1;
- }
- if (rcball2.y + rcball2.h > 480)
- {
- ballsdy *= -1;
- }
- const int start_time_ms = SDL_GetTicks();
- while (SDL_PollEvent(&event)) {
- switch(event.type) {
- case SDL_KEYDOWN:
- if(event.key.keysym.sym == SDLK_ESCAPE) {
- running = false ;
- }
- if(event.key.keysym.sym == SDLK_a) {
- rcpad.y -= 5;
- pad1d = 2;
- } if(event.key.keysym.sym == SDLK_z) {
- rcpad.y += 5;
- pad1d = 1;
- }
- if(event.key.keysym.sym == SDLK_UP) {
- rcpad2.y -= 5;
- pad2d = 1;
- } if(event.key.keysym.sym == SDLK_DOWN) {
- rcpad2.y += 5;
- pad2d = 2;
- }
- break;
- default:
- break;
- }
- }
- SDL_RenderClear(renderer);
- SDL_RenderCopy(renderer, ball2, NULL, &rcball2);
- SDL_RenderCopy(renderer, texture, NULL, &rcpad);
- SDL_RenderCopy(renderer, texture2, NULL, &rcpad2);
- SDL_RenderPresent(renderer);
- const int elapsed_time_ms = SDL_GetTicks() - start_time_ms;
- SDL_Delay(1000 / 32 - elapsed_time_ms);
- }
- SDL_DestroyTexture(texture);
- SDL_FreeSurface(pad);
- SDL_DestroyRenderer(renderer);
- SDL_DestroyWindow(window);
- SDL_Quit();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement