Files
volcano_2022/source/player.cpp

79 lines
1.2 KiB
C++

#include "const.h"
#include "player.h"
// Constructor
Player::Player(SDL_Renderer *renderer, Asset *asset)
{
texture = new LTexture();
loadTextureFromFile(texture, asset->get("player.png"), renderer);
sprite = new AnimatedSprite();
sprite->setTexture(texture);
sprite->setRenderer(renderer);
sprite->setSpriteClip(rect);
this->asset = asset;
init();
}
// Destructor
Player::~Player()
{
texture->unload();
delete texture;
texture = nullptr;
delete sprite;
sprite = nullptr;
}
// Inicializa todas las variables
void Player::init()
{
rect = {0, 0, 16, 24};
can_jump = false;
enabled = false;
jump_pressed_before = false;
jump_pressed_now = false;
for (Uint8 i = 0; i < 6; i++)
key[i] = false;
standing = false;
was_on_background = false;
coins = 0;
cooldown = 0;
jumpforce = 0;
respawn_x = 0;
respawn_y = 0;
speed_x = 0;
speed_y = 0;
sound_coin = 0;
sound_death = 0;
sound_jump = 0;
active_animation = 0;
direction = 0;
lifes = 0;
respawn_direction = 0;
}
// Resetea ciertas variables
void Player::reset()
{
}
// Actualiza todas las variables
void Player::update()
{
sprite->setPosX(rect.x);
sprite->setPosY(rect.y);
}
// Dibuja el objeto
void Player::render()
{
sprite->render();
}