forked from jaildesigner-jailgames/jaildoctors_dilemma
Transició a surface acabada. Ja compila
This commit is contained in:
@@ -17,8 +17,8 @@ Scoreboard::Scoreboard(std::shared_ptr<ScoreboardData> data)
|
||||
: data_(data),
|
||||
clock_(ClockData())
|
||||
{
|
||||
const int TEXTURE_WIDTH_ = options.game.width;
|
||||
constexpr int TEXTURE_HEIGHT_ = 6 * BLOCK;
|
||||
const int SURFACE_WIDTH_ = options.game.width;
|
||||
constexpr int SURFACE_HEIGHT_ = 6 * BLOCK;
|
||||
|
||||
// Reserva memoria para los objetos
|
||||
item_surface_ = Resource::get()->getSurface("items.gif");
|
||||
@@ -27,8 +27,8 @@ Scoreboard::Scoreboard(std::shared_ptr<ScoreboardData> data)
|
||||
player_sprite_ = std::make_shared<SAnimatedSprite>(player_texture, player_animations);
|
||||
player_sprite_->setCurrentAnimation("walk_menu");
|
||||
|
||||
surface_ = createTexture(Screen::get()->getRenderer(), TEXTURE_WIDTH_, TEXTURE_HEIGHT_);
|
||||
surface_dest_ = {0, options.game.height - TEXTURE_HEIGHT_, TEXTURE_WIDTH_, TEXTURE_HEIGHT_};
|
||||
surface_ = std::make_shared<Surface>(Screen::get()->getRenderSurfaceData(), SURFACE_WIDTH_, SURFACE_HEIGHT_);
|
||||
surface_dest_ = {0, options.game.height - SURFACE_HEIGHT_, SURFACE_WIDTH_, SURFACE_HEIGHT_};
|
||||
|
||||
// Inicializa las variables
|
||||
counter_ = 0;
|
||||
@@ -46,16 +46,10 @@ Scoreboard::Scoreboard(std::shared_ptr<ScoreboardData> data)
|
||||
}
|
||||
}
|
||||
|
||||
// Destructor
|
||||
Scoreboard::~Scoreboard()
|
||||
{
|
||||
SDL_DestroyTexture(surface_);
|
||||
}
|
||||
|
||||
// Pinta el objeto en pantalla
|
||||
void Scoreboard::render()
|
||||
{
|
||||
SDL_RenderCopy(Screen::get()->getRenderer(), surface_, nullptr, &surface_dest_);
|
||||
surface_->render(nullptr, &surface_dest_);
|
||||
}
|
||||
|
||||
// Actualiza las variables del objeto
|
||||
@@ -142,12 +136,10 @@ int Scoreboard::getMinutes()
|
||||
void Scoreboard::fillTexture()
|
||||
{
|
||||
// Empieza a dibujar en la textura
|
||||
auto temp = SDL_GetRenderTarget(Screen::get()->getRenderer());
|
||||
SDL_SetRenderTarget(Screen::get()->getRenderer(), surface_);
|
||||
Screen::get()->setRenderSurfaceData(surface_);
|
||||
|
||||
// Limpia la textura
|
||||
SDL_SetRenderDrawColor(Screen::get()->getRenderer(), 0, 0, 0, 255);
|
||||
SDL_RenderFillRect(Screen::get()->getRenderer(), nullptr);
|
||||
Screen::get()->clear(stringToColor("black"));
|
||||
|
||||
// Anclas
|
||||
constexpr int LINE1 = BLOCK;
|
||||
@@ -187,5 +179,5 @@ void Scoreboard::fillTexture()
|
||||
text->writeColored(28 * BLOCK, LINE2, ROOMS_TEXT, stringToColor("white"));
|
||||
|
||||
// Deja el renderizador como estaba
|
||||
SDL_SetRenderTarget(Screen::get()->getRenderer(), temp);
|
||||
Screen::get()->setRenderSurfaceData(nullptr);
|
||||
}
|
||||
Reference in New Issue
Block a user