#include "player.h" // Constructor Player::Player(SDL_Renderer *renderer, Asset *asset, Input *input) { this->asset = asset; this->renderer = renderer; this->input = input; sound_jump = JA_LoadSound(asset->get("sound_player_jump.wav").c_str()); sound_death = JA_LoadSound(asset->get("sound_player_death.wav").c_str()); sound_coin = JA_LoadSound(asset->get("sound_player_coin.wav").c_str()); texture = new LTexture(); loadTextureFromFile(texture, asset->get("player.png"), renderer); sprite = new AnimatedSprite(texture, renderer, asset->get("player.ani")); sprite->setPosX(16); sprite->setPosY(168); sprite->setCurrentAnimation("stand"); can_jump = true; standing = true; invulnerable = true; jumpforce = 10; enabled = true; cooldown = 0; lifes = 10; coins = 0; key.insert(key.end(), {0, 0, 0, 0, 0, 0}); } // Destructor Player::~Player() { JA_DeleteSound(sound_jump); JA_DeleteSound(sound_death); JA_DeleteSound(sound_coin); texture->unload(); delete texture; delete sprite; } // Actualiza todas las variables void Player::update() { checkInput(); sprite->update(); } // Dibuja el objeto void Player::render() { sprite->render(); } // Comprueba las entradas y modifica variables void Player::checkInput() { const float speed = 1.0f; // Solo comprueba las entradas de dirección cuando está de pie if (input->checkInput(INPUT_LEFT, REPEAT_TRUE)) { sprite->setVelX(-speed); sprite->setFlip(SDL_FLIP_NONE); sprite->setCurrentAnimation("walk"); } else if (input->checkInput(INPUT_RIGHT, REPEAT_TRUE)) { sprite->setVelX(speed); sprite->setFlip(SDL_FLIP_HORIZONTAL); sprite->setCurrentAnimation("walk"); } else { sprite->setVelX(0); sprite->setCurrentAnimation("stand"); } }