Muerte y reaparición del jugador

This commit is contained in:
2022-07-11 18:08:48 +02:00
parent 4f6a99f670
commit 8101c33526
9 changed files with 110 additions and 38 deletions

View File

@@ -5,7 +5,7 @@
// CAUTION!!!!! si no se gasta al final, quitar la referencia a la habitación
// Constructor
Player::Player(std::string _tileset, SDL_Renderer *_renderer, Asset *_asset, Input *_input, Room *_room)
Player::Player(player_t ini, std::string _tileset, SDL_Renderer *_renderer, Asset *_asset, Input *_input, Room *_room)
{
// Obten punteros a objetos
asset = _asset;
@@ -24,15 +24,14 @@ Player::Player(std::string _tileset, SDL_Renderer *_renderer, Asset *_asset, Inp
onBorder = false;
border = BORDER_TOP;
jump_ini = 0;
status = STATUS_STANDING;
jump_ini = ini.jump_ini;
status = ini.status;
sprite->setPosX(ini.x);
sprite->setPosY(ini.y);
sprite->setVelX(ini.vx);
sprite->setVelY(ini.vy);
sprite->setPosX(2 * 8);
sprite->setPosX(10 * 8);
sprite->setPosY(12 * 8);
sprite->setPosY(6 * 8);
sprite->setVelX(0);
sprite->setVelY(0);
sprite->setWidth(8);
sprite->setHeight(16);
sprite->setCurrentFrame(0);
@@ -46,6 +45,8 @@ Player::Player(std::string _tileset, SDL_Renderer *_renderer, Asset *_asset, Inp
sprite->setAnimationFrames(0, 3, 8 * 3, 0, 8, 16);
sprite->setSpriteClip(sprite->getAnimationClip(0, 0));
sprite->setFlip(ini.flip);
lastPosition = getRect();
collider = getRect();
}
@@ -281,4 +282,20 @@ void Player::checkJump()
{
status = STATUS_FALLING;
}
}
// Obtiene algunos parametros del jugador
player_t Player::getSpawnParams()
{
player_t params;
params.x = sprite->getPosX();
params.y = sprite->getPosY();
params.vx = sprite->getVelX();
params.vy = sprite->getVelY();
params.jump_ini = jump_ini;
params.status = status;
params.flip = sprite->getFlip();
return params;
}