Advertisement
Combreal

multiSDL02.cpp

Nov 3rd, 2019
310
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.56 KB | None | 0 0
  1. #include <SDL.h>
  2. #include <iostream>
  3. #include <algorithm>
  4. #include <winsock2.h>
  5. #include <Ws2tcpip.h>
  6. #pragma comment(lib, "ws2_32.lib")
  7. using namespace std;
  8.  
  9. struct playerData
  10. {
  11.   int playerID;
  12.   double playerX;
  13.   double playerY;
  14. } playerA;
  15.  
  16. int main(int arc, char ** argv)
  17. {
  18.     SDL_Window* pWindow = NULL;
  19.     SDL_Event event;
  20.     SDL_Renderer *pRenderer = NULL;
  21.     SDL_Texture* pTexture = NULL;
  22.     SDL_Texture* pTextureB = NULL;
  23.     SDL_Surface* pSprite = NULL;
  24.     SDL_Surface* pSpriteB = NULL;
  25.     SDL_Rect dest;
  26.     SDL_Rect destB;
  27.     playerA.playerID = 1;
  28.     string talk = "";
  29.     char responce[1024];
  30.     WSADATA WSAData;
  31.     SOCKET server;
  32.     SOCKADDR_IN addr;
  33.     WSAStartup(MAKEWORD(2, 0), &WSAData);
  34.     server = socket(AF_INET, SOCK_STREAM, 0);
  35.     InetPton(AF_INET, "192.168.1.16", &addr.sin_addr.s_addr);
  36.     addr.sin_family = AF_INET;
  37.     addr.sin_port = htons(5555);
  38.     connect(server, (SOCKADDR *)&addr, sizeof(addr));
  39.     //if (connect(server, (SOCKADDR *)&addr, sizeof(addr))>0)
  40.     {
  41.         bool cont = true;
  42.         int CurrentTime = 0, seconds = 0, PassedTime = 0;
  43.         if (SDL_Init(SDL_INIT_VIDEO) < 0)
  44.         {
  45.             cout << "SDL could not initialize! SDL_Error: " << SDL_GetError() << endl;
  46.         }
  47.         else
  48.         {
  49.             pWindow = SDL_CreateWindow("SDL2 Test", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 800, 600, SDL_WINDOW_SHOWN);
  50.         }
  51.         pRenderer = SDL_CreateRenderer(pWindow, -1, SDL_RENDERER_ACCELERATED);
  52.         if (pRenderer)
  53.         {
  54.             pSprite = SDL_LoadBMP("data/deck/background.bmp");
  55.             if (pSprite)
  56.             {
  57.                 pTexture = SDL_CreateTextureFromSurface(pRenderer, pSprite);
  58.                 if (pTexture)
  59.                 {
  60.                     dest = { 0, 0, 800, 600 };
  61.                     SDL_RenderCopy(pRenderer, pTexture, NULL, &dest);
  62.                     SDL_RenderPresent(pRenderer);
  63.                 }
  64.                 else
  65.                 {
  66.                     cout << "Couldn't display image : " << SDL_GetError() << endl;
  67.                 }
  68.             }
  69.             else
  70.             {
  71.                 cout << "Sprite loading error : " << SDL_GetError() << endl;
  72.             }
  73.             pSpriteB = SDL_LoadBMP("data/deck/player.bmp");
  74.             if (pSpriteB)
  75.             {
  76.                 pTextureB = SDL_CreateTextureFromSurface(pRenderer, pSpriteB);
  77.                 if (pTextureB)
  78.                 {
  79.                     dest = { 0, 0, 100, 100 };
  80.                     SDL_RenderCopy(pRenderer, pTextureB, NULL, &dest);
  81.                     SDL_RenderPresent(pRenderer);
  82.                 }
  83.                 else
  84.                 {
  85.                     cout << "Couldn't display image : " << SDL_GetError() << endl;
  86.                 }
  87.             }
  88.             else
  89.             {
  90.                 cout << "Sprite loading error : " << SDL_GetError() << endl;
  91.             }
  92.         }
  93.         else
  94.         {
  95.             cout << "Couldn't create renderer : " << SDL_GetError() << endl;
  96.         }
  97.         while (cont != 0)
  98.         {
  99.             while (SDL_PollEvent(&event))
  100.             {
  101.                 CurrentTime = SDL_GetTicks();
  102.                 if (CurrentTime - PassedTime > 200)
  103.                 {
  104.                     switch (event.type)
  105.                     {
  106.                     case SDL_KEYDOWN:
  107.                         if (event.key.keysym.scancode == SDL_SCANCODE_ESCAPE)
  108.                         {
  109.                             cout << "Quit" << endl;
  110.                             cont = 0;
  111.                         }
  112.                         else if (event.key.keysym.scancode == SDL_SCANCODE_1)
  113.                         {
  114.                             talk = "1";
  115.                             cout << "1" << endl;
  116.                         }
  117.                         else if (event.key.keysym.scancode == SDL_SCANCODE_2)
  118.                         {
  119.                             talk = "2";
  120.                             cout << "2" << endl;
  121.                         }
  122.                         break;
  123.                     case SDL_QUIT:
  124.                         cont = false;
  125.                         break;
  126.                     default:
  127.                         break;
  128.                     }
  129.                     PassedTime = CurrentTime;
  130.                 }
  131.             }
  132.             send(server, talk.c_str(), sizeof(talk), 0);   
  133.             SDL_RenderClear(pRenderer);
  134.             SDL_RenderCopy(pRenderer, pTexture, NULL, &dest);
  135.             SDL_RenderPresent(pRenderer);
  136.             CurrentTime = SDL_GetTicks();
  137.         }
  138.     }
  139.     //delse
  140.     {
  141.         cout << "Counldn't connect to server." << endl;
  142.         system("pause");
  143.     }
  144.     SDL_DestroyTexture(pTexture);
  145.     SDL_DestroyRenderer(pRenderer);
  146.     SDL_FreeSurface(pSprite);
  147.     return 0;
  148. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement