Advertisement
shout1232131

Untitled

Jul 11th, 2017
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.15 KB | None | 0 0
  1. #include "Player.h"
  2.  
  3. Player::Player()
  4. {
  5.     velX = 0;
  6.     velY = 0;
  7. }
  8.  
  9. Player::~Player()
  10. {
  11. }
  12.  
  13. void Player::LoadContent(SDL_Renderer *renderer)
  14. {
  15.     Entity::LoadContent("Files/config/Player.cfg", renderer);
  16.  
  17.     moveSpeed = 0.5f;
  18.     Gravity = 0.02f;
  19.     jumpSpeed = 2.5f;
  20.     direction = Direction::Right;
  21. }
  22.  
  23. void Player::UnloadContent()
  24. {
  25.     Entity::UnloadContent();
  26.     ssAnim.UnloadContent();
  27.     anim.UnloadContent();
  28.     direction = Direction::Right;
  29.     jumpSpeed = 0;
  30. }
  31. void Player::Draw(SDL_Renderer *renderer)
  32. {
  33.     Entity::DrawR(renderer);
  34. }
  35.  
  36. void Player::Update(InputManager input)
  37. {
  38.     Entity::Update(input);
  39.  
  40.     posX += velX;
  41.     posY += velY;
  42.     if (activeGravity == true)
  43.     {
  44.         velY += Gravity;
  45.     }
  46.     else
  47.     {
  48.         velY = 0;
  49.     }
  50.  
  51.     anim.CurrentFrame().second = direction;
  52.     anim.getPositionX() = posX;
  53.     anim.getPositionY() = posY;
  54.     ssAnim.Update(anim);
  55.  
  56.     delete rect;
  57.     delete prevRect;
  58.  
  59.     rect = new FloatRect(posX, posY, 41, 60);
  60.     prevRect = new FloatRect(prevPosX, prevPosY, 41, 60);
  61. }
  62.  
  63. void Player::UpdateEvent(SDL_Event &event)
  64. {
  65.     if (event.type == SDL_KEYDOWN && event.key.repeat == 0)
  66.     {
  67.         switch (event.key.keysym.sym)
  68.         {
  69.         case SDLK_LEFT: velX -= moveSpeed; anim.getActive() = true; direction = Direction::Left; break;
  70.         case SDLK_RIGHT: velX += moveSpeed; anim.getActive() = true; direction = Direction::Right; break;
  71.         case SDLK_LSHIFT: moveSpeed = 2.0f; break;
  72.         case SDLK_UP:
  73.             {
  74.                 if (!activeGravity &&  direction == Direction::Left)
  75.                 {
  76.                     velY = -jumpSpeed;
  77.                     activeGravity = true;
  78.                     direction = Direction::Left;
  79.                 }
  80.                 else if (!activeGravity && direction == Direction::Right)
  81.                 {
  82.                     velY = -jumpSpeed;
  83.                     activeGravity = true;
  84.                     direction = Direction::Right;
  85.                 }
  86.             }
  87.             break;
  88.         }
  89.     }
  90.     else if (event.type == SDL_KEYUP && event.key.repeat == 0)
  91.     {
  92.         switch (event.key.keysym.sym)
  93.         {
  94.         case SDLK_LEFT: velX += moveSpeed; anim.getActive() = false; break;
  95.         case SDLK_RIGHT: velX -= moveSpeed; anim.getActive() = false; break;
  96.         case SDLK_LSHIFT: moveSpeed = 0.5f; break;
  97.         case SDLK_UP:
  98.         {
  99.             if (activeGravity)
  100.             {
  101.                 if (velY < -1)
  102.                 {
  103.                     velY = -1;
  104.                 }
  105.             }
  106.         }
  107.         break;
  108.         }
  109.     }
  110. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement