Advertisement
Guest User

Untitled

a guest
Sep 18th, 2019
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.63 KB | None | 0 0
  1. #include <SFML/Graphics.hpp>
  2. #include <iostream>
  3.  
  4. const int WINDOW_WIDTH = 500;
  5. const int WINDOW_HEIGHT = 500;
  6.  
  7. const char *WINDOW_NAME = "Snakey";
  8.  
  9. const float RECT_SIZE = 20;
  10. const sf::Vector2f INITIAL_RECT_POSITION{ WINDOW_WIDTH / 2 - 10, WINDOW_HEIGHT / 2 - 10};
  11.  
  12. sf::Vector2f deltaMovement{};
  13.  
  14. int main() {
  15.    
  16.     sf::RenderWindow window(sf::VideoMode(WINDOW_WIDTH, WINDOW_HEIGHT), WINDOW_NAME);
  17.     window.setFramerateLimit(8);
  18.  
  19.     sf::RectangleShape rect(sf::Vector2f(RECT_SIZE, RECT_SIZE));
  20.     rect.setFillColor(sf::Color::Blue);
  21.     rect.setPosition(INITIAL_RECT_POSITION);
  22.  
  23.     while(window.isOpen())
  24.     {
  25.  
  26.         //CRTANJE
  27.         window.clear();
  28.  
  29.         window.draw(rect);
  30.  
  31.         window.display();
  32.  
  33.         //LOGIKA
  34.         rect.move(deltaMovement);
  35.  
  36.         {
  37.             float x = rect.getPosition().x;
  38.             float y = rect.getPosition().y;
  39.  
  40.             if (x < 0 || x >= WINDOW_WIDTH || y < 0 || y >= WINDOW_HEIGHT) {
  41.                 std::cout << "Poginuli ste!" << std::endl;
  42.                 window.close();
  43.             }
  44.         }
  45.  
  46.         //EVENT HANDLING
  47.         sf::Event event;
  48.         while (window.pollEvent(event))
  49.         {
  50.  
  51.             if (event.type == sf::Event::Closed) {
  52.                 window.close();
  53.             }
  54.  
  55.             if (event.type == sf::Event::KeyPressed) {
  56.                 switch (event.key.code) {
  57.                 case sf::Keyboard::Up:
  58.                     deltaMovement.x = 0;
  59.                     deltaMovement.y = -RECT_SIZE;
  60.                     break;
  61.                 case sf::Keyboard::Down:
  62.                     deltaMovement.x = 0;
  63.                     deltaMovement.y = RECT_SIZE;
  64.                     break;
  65.                 case sf::Keyboard::Right:
  66.                     deltaMovement.x = RECT_SIZE;
  67.                     deltaMovement.y = 0;
  68.                     break;
  69.                 case sf::Keyboard::Left:
  70.                     deltaMovement.x = -RECT_SIZE;
  71.                     deltaMovement.y = 0;
  72.                     break;
  73.                 }
  74.             }
  75.  
  76.         }
  77.     }
  78.  
  79.     return 0;
  80. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement