cleanup time-based: elimina base classes frame-based (MovingSprite/SmartSprite/AnimatedSprite/Writer/Fade), MovingSprite::update(dt_s) integra rotacio
This commit is contained in:
@@ -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_) {
|
||||
|
||||
Reference in New Issue
Block a user