migrant a SDL3
This commit is contained in:
@@ -78,7 +78,7 @@ void Instructions::iniSprites()
|
||||
for (int i = 0; i < (int)item_textures_.size(); ++i)
|
||||
{
|
||||
auto sprite = std::make_unique<Sprite>(item_textures_[i], 0, 0, param.game.item_size, param.game.item_size);
|
||||
sprite->setPosition((SDL_Point){sprite_pos_.x, sprite_pos_.y + ((param.game.item_size + item_space_) * i)});
|
||||
sprite->setPosition((SDL_FPoint){sprite_pos_.x, sprite_pos_.y + ((param.game.item_size + item_space_) * i)});
|
||||
sprites_.push_back(std::move(sprite));
|
||||
}
|
||||
}
|
||||
@@ -302,44 +302,44 @@ std::vector<Line> Instructions::initializeLines(int height)
|
||||
// Método para mover las líneas con suavizado
|
||||
bool Instructions::moveLines(std::vector<Line> &lines, int width, float duration, Uint32 startDelay)
|
||||
{
|
||||
Uint32 currentTime = SDL_GetTicks();
|
||||
bool allLinesOffScreen = true;
|
||||
Uint32 current_time = SDL_GetTicks();
|
||||
bool all_lines_off_screen = true;
|
||||
|
||||
for (auto &line : lines)
|
||||
{
|
||||
// Establecer startTime en el primer cuadro de animación
|
||||
if (line.startTime == 0)
|
||||
{
|
||||
line.startTime = currentTime + line.y * startDelay;
|
||||
line.startTime = current_time + line.y * startDelay;
|
||||
}
|
||||
|
||||
float elapsedTime = (currentTime - line.startTime) / 1000.0f; // Convertir a segundos
|
||||
if (elapsedTime < 0)
|
||||
float elapsed_time = (current_time - line.startTime) / 1000.0f; // Convertir a segundos
|
||||
if (elapsed_time < 0)
|
||||
{
|
||||
allLinesOffScreen = false; // Si aún no se debe mover esta línea, no están todas fuera de pantalla
|
||||
all_lines_off_screen = false; // Si aún no se debe mover esta línea, no están todas fuera de pantalla
|
||||
continue;
|
||||
}
|
||||
if (elapsedTime >= duration)
|
||||
if (elapsed_time >= duration)
|
||||
{
|
||||
continue; // Si la línea ha salido de los límites, no la muevas más
|
||||
}
|
||||
|
||||
float t = elapsedTime / duration;
|
||||
float smoothFactor = easeInOutQuint(t);
|
||||
line.x = line.direction * smoothFactor * width;
|
||||
allLinesOffScreen = false; // Si alguna línea aún se está moviendo, no están todas fuera de pantalla
|
||||
float t = elapsed_time / duration;
|
||||
float smooth_factor = easeInOutQuint(t);
|
||||
line.x = line.direction * smooth_factor * width;
|
||||
all_lines_off_screen = false; // Si alguna línea aún se está moviendo, no están todas fuera de pantalla
|
||||
}
|
||||
|
||||
return allLinesOffScreen;
|
||||
return all_lines_off_screen;
|
||||
}
|
||||
|
||||
// Método para renderizar las líneas
|
||||
void Instructions::renderLines(SDL_Renderer *renderer, SDL_Texture *texture, const std::vector<Line> &lines)
|
||||
{
|
||||
for (const auto &line : lines)
|
||||
for (const auto &LINE : lines)
|
||||
{
|
||||
SDL_FRect srcRect = {0, line.y, 320, 1};
|
||||
SDL_FRect dstRect = {static_cast<int>(line.x), line.y, 320, 1};
|
||||
SDL_FRect srcRect = {0, static_cast<float>(LINE.y), 320, 1};
|
||||
SDL_FRect dstRect = {static_cast<float>(LINE.x), static_cast<float>(LINE.y), 320, 1};
|
||||
SDL_RenderTexture(renderer, texture, &srcRect, &dstRect);
|
||||
}
|
||||
}
|
||||
@@ -357,7 +357,7 @@ void Instructions::updateMusic()
|
||||
void Instructions::updateBackbuffer()
|
||||
{
|
||||
// Establece la ventana del backbuffer
|
||||
view_.y = std::max(0, param.game.height - counter_ + 100);
|
||||
view_.y = std::max(0.0f, param.game.height - counter_ + 100);
|
||||
|
||||
// Verifica si view_.y == 0 y gestiona el temporizador
|
||||
if (view_.y == 0)
|
||||
|
||||
Reference in New Issue
Block a user