forked from jaildesigner-jailgames/jaildoctors_dilemma
Solventat bug amb el punter a ScoreboardData
This commit is contained in:
@@ -24,7 +24,7 @@ Player::Player(PlayerData player)
|
||||
room_(player.room)
|
||||
{
|
||||
// Inicializa algunas variables
|
||||
initSprite(player.texture, player.animation);
|
||||
initSprite(player.texture_path, player.animations_path);
|
||||
setColor();
|
||||
applySpawnValues(player.spawn);
|
||||
placeSprite();
|
||||
@@ -48,38 +48,11 @@ Player::Player(PlayerData player)
|
||||
// Pinta el jugador en pantalla
|
||||
void Player::render()
|
||||
{
|
||||
sprite_->getTexture()->setColor(color_.r, color_.g, color_.b);
|
||||
sprite_->render();
|
||||
|
||||
#ifdef DEBUG
|
||||
if (debug_->getEnabled())
|
||||
{
|
||||
// Pinta los underfeet
|
||||
SDL_SetRenderDrawColor(renderer_, 255, 0, 255, 255);
|
||||
SDL_RenderDrawPoint(renderer_, under_feet_[0].x, under_feet_[0].y);
|
||||
SDL_RenderDrawPoint(renderer_, under_feet_[1].x, under_feet_[1].y);
|
||||
|
||||
// Pinta rectangulo del jugador
|
||||
SDL_SetRenderDrawColor(renderer_, debug_color_.r, debug_color_.g, debug_color_.b, 192);
|
||||
SDL_Rect rect = getRect();
|
||||
SDL_RenderFillRect(renderer_, &rect);
|
||||
SDL_SetRenderDrawColor(renderer_, 0, 255, 255, 255);
|
||||
SDL_RenderDrawRect(renderer_, &rect);
|
||||
|
||||
// Pinta el rectangulo de movimiento
|
||||
SDL_SetRenderDrawColor(renderer_, 255, 0, 0, 255);
|
||||
if (vx_ != 0.0f)
|
||||
{
|
||||
SDL_RenderFillRect(renderer_, &debug_rect_x_);
|
||||
}
|
||||
if (vy_ != 0.0f)
|
||||
{
|
||||
SDL_RenderFillRect(renderer_, &debug_rect_y_);
|
||||
}
|
||||
|
||||
// Pinta el punto de debug
|
||||
SDL_SetRenderDrawColor(renderer_, rand() % 256, rand() % 256, rand() % 256, 255);
|
||||
SDL_RenderDrawPoint(renderer_, debug_point_.x, debug_point_.y);
|
||||
}
|
||||
renderDebugInfo();
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -122,10 +95,12 @@ void Player::checkInput()
|
||||
}
|
||||
|
||||
else
|
||||
{ // No se pulsa ninguna dirección
|
||||
{
|
||||
// No se pulsa ninguna dirección
|
||||
vx_ = 0.0f;
|
||||
if (isOnAutoSurface())
|
||||
{ // Si deja de moverse sobre una superficie se engancha
|
||||
{
|
||||
// Si deja de moverse sobre una superficie se engancha
|
||||
auto_movement_ = true;
|
||||
}
|
||||
}
|
||||
@@ -679,8 +654,6 @@ void Player::setColor()
|
||||
{
|
||||
color_ = stringToColor(options.video.palette, "white");
|
||||
}
|
||||
|
||||
sprite_->getTexture()->setColor(color_.r, color_.g, color_.b);
|
||||
}
|
||||
|
||||
// Actualiza los puntos de colisión
|
||||
@@ -756,11 +729,49 @@ void Player::applySpawnValues(const PlayerSpawn &spawn)
|
||||
}
|
||||
|
||||
// Inicializa el sprite del jugador
|
||||
void Player::initSprite(const std::string &png, const std::string &animation)
|
||||
void Player::initSprite(const std::string &texture_path, const std::string &animations_path)
|
||||
{
|
||||
sprite_ = std::make_shared<AnimatedSprite>(png, animation);
|
||||
auto texture = Resource::get()->getTexture(texture_path);
|
||||
auto animations = Resource::get()->getAnimations(animations_path);
|
||||
|
||||
sprite_ = std::make_shared<AnimatedSprite>(texture, animations);
|
||||
sprite_->setWidth(WIDTH_);
|
||||
sprite_->setHeight(HEIGHT_);
|
||||
sprite_->setCurrentAnimation("walk");
|
||||
// sprite_->update();
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef DEBUG
|
||||
// Pinta la información de debug del jugador
|
||||
void Player::renderDebugInfo()
|
||||
{
|
||||
if (debug_->getEnabled())
|
||||
{
|
||||
// Pinta los underfeet
|
||||
SDL_SetRenderDrawColor(renderer_, 255, 0, 255, 255);
|
||||
SDL_RenderDrawPoint(renderer_, under_feet_[0].x, under_feet_[0].y);
|
||||
SDL_RenderDrawPoint(renderer_, under_feet_[1].x, under_feet_[1].y);
|
||||
|
||||
// Pinta rectangulo del jugador
|
||||
SDL_SetRenderDrawColor(renderer_, debug_color_.r, debug_color_.g, debug_color_.b, 192);
|
||||
SDL_Rect rect = getRect();
|
||||
SDL_RenderFillRect(renderer_, &rect);
|
||||
SDL_SetRenderDrawColor(renderer_, 0, 255, 255, 255);
|
||||
SDL_RenderDrawRect(renderer_, &rect);
|
||||
|
||||
// Pinta el rectangulo de movimiento
|
||||
SDL_SetRenderDrawColor(renderer_, 255, 0, 0, 255);
|
||||
if (vx_ != 0.0f)
|
||||
{
|
||||
SDL_RenderFillRect(renderer_, &debug_rect_x_);
|
||||
}
|
||||
if (vy_ != 0.0f)
|
||||
{
|
||||
SDL_RenderFillRect(renderer_, &debug_rect_y_);
|
||||
}
|
||||
|
||||
// Pinta el punto de debug
|
||||
SDL_SetRenderDrawColor(renderer_, rand() % 256, rand() % 256, rand() % 256, 255);
|
||||
SDL_RenderDrawPoint(renderer_, debug_point_.x, debug_point_.y);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
Reference in New Issue
Block a user