Advertisement
Rapptz

player.cpp

Nov 1st, 2012
376
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.04 KB | None | 0 0
  1. #include <SFML/Graphics.hpp>
  2.  
  3. const size_t screenWidth = 800;
  4. const size_t screenHeight = 600;
  5.  
  6. class Player {
  7. public:
  8.     size_t x;
  9.     size_t y;
  10.     double speed;
  11.     sf::Sprite sprite;
  12.     Player(sf::Texture& texture, const std::string& filename, size_t ux = 100, size_t uy = 30, double uspeed = .2): x(ux), y(uy), speed(uspeed) {
  13.         if(texture.loadFromFile(filename))
  14.             sprite.setTexture(texture);
  15.  
  16.         sprite.setPosition(ux,uy);
  17.     }
  18.     void move() {
  19.         // Moves the sprite.
  20.         if(sf::Keyboard::isKeyPressed(sf::Keyboard::Right))
  21.             sprite.move(speed,0);
  22.         if(sf::Keyboard::isKeyPressed(sf::Keyboard::Left))
  23.             sprite.move(-speed,0);
  24.         if(sf::Keyboard::isKeyPressed(sf::Keyboard::Down))
  25.             sprite.move(0,speed);
  26.         if(sf::Keyboard::isKeyPressed(sf::Keyboard::Up))
  27.             sprite.move(0,-speed);
  28.         //Checks for collision for the border
  29.         sf::Vector2f hold = sprite.getPosition();
  30.         sf::FloatRect coord = sprite.getGlobalBounds();
  31.         if(hold.x < 0) {
  32.             hold.x = 0;
  33.             sprite.setPosition(hold);
  34.         }
  35.         else if(hold.y < 0) {
  36.             hold.y = 0;
  37.             sprite.setPosition(hold);
  38.         }
  39.         else if(hold.x + coord.width> screenWidth) {
  40.             hold.x = screenWidth - coord.width;
  41.             sprite.setPosition(hold);
  42.         }
  43.         else if(hold.y + coord.height > screenHeight) {
  44.             hold.y = screenHeight - coord.height;
  45.             sprite.setPosition(hold);
  46.         }
  47.  
  48.     }
  49. };
  50.  
  51. int main() {
  52.     sf::Texture texture2;
  53.     Player omok(texture2,"images/omok.png");
  54.     sf::RenderWindow window(sf::VideoMode(screenWidth,screenHeight),"Example",sf::Style::Close);
  55.  
  56.     while(window.isOpen()) {
  57.         sf::Event event;
  58.         while(window.pollEvent(event)) {
  59.             if(event.type == sf::Event::Closed)
  60.                 window.close();
  61.         }
  62.  
  63.         window.clear();
  64.         window.draw(omok.sprite);
  65.         omok.move();
  66.         window.display();
  67.     }
  68. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement