Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "Player.h"
- Player::Player()
- {
- velX = 0;
- velY = 0;
- }
- Player::~Player()
- {
- }
- void Player::LoadContent(SDL_Renderer *renderer)
- {
- Entity::LoadContent("Files/config/Player.cfg", renderer);
- moveSpeed = 0.5f;
- Gravity = 0.02f;
- jumpSpeed = 2.5f;
- direction = Direction::Right;
- }
- void Player::UnloadContent()
- {
- Entity::UnloadContent();
- ssAnim.UnloadContent();
- anim.UnloadContent();
- direction = Direction::Right;
- jumpSpeed = 0;
- }
- void Player::Draw(SDL_Renderer *renderer)
- {
- Entity::DrawR(renderer);
- }
- void Player::Update(InputManager input)
- {
- Entity::Update(input);
- posX += velX;
- posY += velY;
- if (activeGravity == true)
- {
- velY += Gravity;
- }
- else
- {
- velY = 0;
- }
- anim.CurrentFrame().second = direction;
- anim.getPositionX() = posX;
- anim.getPositionY() = posY;
- ssAnim.Update(anim);
- delete rect;
- delete prevRect;
- rect = new FloatRect(posX, posY, 41, 60);
- prevRect = new FloatRect(prevPosX, prevPosY, 41, 60);
- }
- void Player::UpdateEvent(SDL_Event &event)
- {
- if (event.type == SDL_KEYDOWN && event.key.repeat == 0)
- {
- switch (event.key.keysym.sym)
- {
- case SDLK_LEFT: velX -= moveSpeed; anim.getActive() = true; direction = Direction::Left; break;
- case SDLK_RIGHT: velX += moveSpeed; anim.getActive() = true; direction = Direction::Right; break;
- case SDLK_LSHIFT: moveSpeed = 2.0f; break;
- case SDLK_UP:
- {
- if (!activeGravity && direction == Direction::Left)
- {
- velY = -jumpSpeed;
- activeGravity = true;
- direction = Direction::Left;
- }
- else if (!activeGravity && direction == Direction::Right)
- {
- velY = -jumpSpeed;
- activeGravity = true;
- direction = Direction::Right;
- }
- }
- break;
- }
- }
- else if (event.type == SDL_KEYUP && event.key.repeat == 0)
- {
- switch (event.key.keysym.sym)
- {
- case SDLK_LEFT: velX += moveSpeed; anim.getActive() = false; break;
- case SDLK_RIGHT: velX -= moveSpeed; anim.getActive() = false; break;
- case SDLK_LSHIFT: moveSpeed = 0.5f; break;
- case SDLK_UP:
- {
- if (activeGravity)
- {
- if (velY < -1)
- {
- velY = -1;
- }
- }
- }
- break;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement