cleanup time-based: elimina base classes frame-based (MovingSprite/SmartSprite/AnimatedSprite/Writer/Fade), MovingSprite::update(dt_s) integra rotacio

This commit is contained in:
2026-05-19 18:38:57 +02:00
parent 635662d65d
commit b558ea0b4c
10 changed files with 44 additions and 210 deletions
+6 -35
View File
@@ -20,33 +20,18 @@ void SmartSprite::init() {
on_destination_ = false;
dest_x_ = 0;
dest_y_ = 0;
counter_ = 0;
finished_ = false;
}
// Actualiza la posición y comprueba si ha llegado a su destino
void SmartSprite::update() {
if (enabled_) {
// NOLINTNEXTLINE(bugprone-parent-virtual-call): salt deliberat a l'avi — SmartSprite hereta d'AnimatedSprite només per reutilitzar API, però no usa animació de frames, així que es salta AnimatedSprite::update() (que cridaria animate())
MovingSprite::update();
// Comprueba el movimiento
checkMove();
// Comprueba si ha terminado
checkFinished();
}
}
// Time-based: la velocitat i acceleració són en px/s i px/s^2; el temps de
// permanència després d'arribar al destí ve donat per setRemainingTime().
// La velocitat i acceleració són en px/s i px/s²; el temps de permanència
// després d'arribar al destí ve donat per setRemainingTime().
void SmartSprite::update(float dt_s) {
if (enabled_) {
// NOLINTNEXTLINE(bugprone-parent-virtual-call): vegeu update() per al motiu del salt
// NOLINTNEXTLINE(bugprone-parent-virtual-call): salt deliberat a l'avi — SmartSprite hereta d'AnimatedSprite només per reutilitzar API, però no usa animació de frames, així que es salta AnimatedSprite::update() (que cridaria animate())
MovingSprite::update(dt_s);
checkMove();
checkFinishedTimeBased(dt_s);
checkFinished(dt_s);
}
}
@@ -150,22 +135,8 @@ void SmartSprite::checkMove() {
}
}
// Comprueba si ha terminado
void SmartSprite::checkFinished() {
// Comprueba si ha llegado a su destino
on_destination_ = getPosX() == dest_x_ && getPosY() == dest_y_;
if (on_destination_) { // Si esta en el destino comprueba su contador
if (enabled_counter_ == 0) { // Si ha llegado a cero, deshabilita el objeto y lo marca como finalizado
finished_ = true;
} else { // Si no ha llegado a cero, decrementa el contador
enabled_counter_--;
}
}
}
// Time-based: decrementa el temps restant cada crida si està al destí
void SmartSprite::checkFinishedTimeBased(float dt_s) {
// Decrementa el temps restant cada crida si està al destí
void SmartSprite::checkFinished(float dt_s) {
on_destination_ = getPosX() == dest_x_ && getPosY() == dest_y_;
if (on_destination_) {