Advertisement
shadeyourself

ravesli/tetris

Mar 20th, 2023
660
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.57 KB | None | 0 0
  1. #include <SFML/Graphics.hpp>
  2.  
  3. const int WIDTH = 10;
  4. const int HEIGHT = 20;
  5.  
  6. int field[WIDTH][HEIGHT] = { 0 };
  7.  
  8. int figures[7][4] =
  9. {
  10.     1,3,5,7, // I
  11.     2,4,5,7, // S
  12.     3,5,4,6, // Z
  13.     3,5,4,7, // T
  14.     2,3,5,7, // L
  15.     3,5,7,6, // J
  16.     2,3,4,5, // O
  17.  
  18. };
  19.  
  20. struct Point
  21. {
  22.     int x, y;
  23. } a[4], b[4];
  24.  
  25. int main()
  26. {
  27.     sf::RenderWindow window(sf::VideoMode(320, 480), "name");
  28.  
  29.     sf::Texture texture;
  30.  
  31.     texture.loadFromFile("textures/tiles.png");
  32.  
  33.     sf::Sprite sprite(texture);
  34.  
  35.     sprite.setTextureRect(sf::IntRect(0, 0, 18, 18));
  36.  
  37.     int dx = 0;
  38.  
  39.     while(window.isOpen())
  40.     {
  41.         sf::Event event;
  42.        
  43.         while(window.pollEvent(event))
  44.         {
  45.             if(event.type == sf::Event::Closed)
  46.             {
  47.                 window.close();
  48.             }
  49.         }
  50.  
  51.         if(event.type == sf::Event::KeyPressed)
  52.         {
  53.             if(event.key.code == sf::Keyboard::Left) dx = -1;
  54.             else if(event.key.code == sf::Keyboard::Right) dx = 1;
  55.         }
  56.  
  57.         for(int i = 0; i < 4; i++) a[i].x += dx;
  58.  
  59.         int n = 3;
  60.  
  61.         if(a[0].x == 0)
  62.         {
  63.             for(int i = 0; i < 4; i++)
  64.             {  
  65.                 a[i].x = figures[n][i] % 2;
  66.                 a[i].y = figures[n][i] / 2;
  67.             }
  68.         }
  69.         dx = 0;
  70.  
  71.         window.clear(sf::Color::White);
  72.  
  73.         for(int i = 0; i < 4; i++)
  74.         {
  75.             sprite.setPosition(a[i].x * 18, a[i].y * 18);
  76.             window.draw(sprite);
  77.         }
  78.        
  79.         window.display();
  80.     }
  81.     return 0;
  82. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement