Arreglada la cárrega d'animacions
This commit is contained in:
@@ -13,10 +13,17 @@ Balloon::Balloon(float x, float y, Uint8 kind, float vel_x, float speed, Uint16
|
||||
pos_y_(y),
|
||||
vel_x_(vel_x),
|
||||
being_created_(creation_timer > 0),
|
||||
blinking_(false),
|
||||
enabled_(true),
|
||||
invulnerable_(creation_timer > 0),
|
||||
stopped_(true),
|
||||
visible_(true),
|
||||
creation_counter_(creation_timer),
|
||||
creation_counter_ini_(creation_timer),
|
||||
stopped_counter_(0),
|
||||
kind_(kind),
|
||||
counter_(0),
|
||||
travel_y_(1.0f),
|
||||
speed_(speed)
|
||||
{
|
||||
|
||||
@@ -220,9 +227,23 @@ Balloon::Balloon(float x, float y, Uint8 kind, float vel_x, float speed, Uint16
|
||||
break;
|
||||
}
|
||||
|
||||
// Valores para el efecto de rebote
|
||||
bouncing_.enabled = false;
|
||||
bouncing_.counter = 0;
|
||||
bouncing_.speed = 2;
|
||||
bouncing_.zoomW = 1.0f;
|
||||
bouncing_.zoomH = 1.0f;
|
||||
bouncing_.despX = 0.0f;
|
||||
bouncing_.despY = 0.0f;
|
||||
bouncing_.w = {1.10f, 1.05f, 1.00f, 0.95f, 0.90f, 0.95f, 1.00f, 1.02f, 1.05f, 1.02f};
|
||||
bouncing_.h = {0.90f, 0.95f, 1.00f, 1.05f, 1.10f, 1.05f, 1.00f, 0.98f, 0.95f, 0.98f};
|
||||
|
||||
// Configura el sprite
|
||||
sprite_->setPos({static_cast<int>(pos_x_), static_cast<int>(pos_y_), width_, height_});
|
||||
|
||||
// Tamaño del circulo de colisión
|
||||
collider_.r = width_ / 2;
|
||||
|
||||
// Alinea el circulo de colisión con el objeto
|
||||
updateColliders();
|
||||
}
|
||||
@@ -705,8 +726,8 @@ Circle &Balloon::getCollider()
|
||||
// Alinea el circulo de colisión con la posición del objeto globo
|
||||
void Balloon::updateColliders()
|
||||
{
|
||||
collider_.x = static_cast<int>(pos_x_ + collider_.r);
|
||||
collider_.y = static_cast<int>(pos_y_ + collider_.r);
|
||||
collider_.x = Uint16(pos_x_ + collider_.r);
|
||||
collider_.y = pos_y_ + collider_.r;
|
||||
}
|
||||
|
||||
// Obtiene le valor de la variable
|
||||
|
||||
@@ -74,19 +74,15 @@ private:
|
||||
// Estructura para las variables para el efecto de los rebotes
|
||||
struct Bouncing
|
||||
{
|
||||
bool enabled = false; // Si el efecto está activo
|
||||
Uint8 counter = 0; // Countador para el efecto
|
||||
Uint8 speed = 2; // Velocidad a la que transcurre el efecto
|
||||
float zoomW = 1.0f; // Zoom aplicado a la anchura
|
||||
float zoomH = 1.0f; // Zoom aplicado a la altura
|
||||
float despX = 0.0f; // Desplazamiento de pixeles en el eje X antes de pintar el objeto con zoom
|
||||
float despY = 0.0f; // Desplazamiento de pixeles en el eje Y antes de pintar el objeto con zoom
|
||||
|
||||
std::vector<float> w = {1.10f, 1.05f, 1.00f, 0.95f, 0.90f, 0.95f, 1.00f, 1.02f, 1.05f, 1.02f}; // Vector con los valores de zoom para el ancho del globo
|
||||
std::vector<float> h = {0.90f, 0.95f, 1.00f, 1.05f, 1.10f, 1.05f, 1.00f, 0.98f, 0.95f, 0.98f}; // Vector con los valores de zoom para el alto del globo
|
||||
|
||||
// Constructor por defecto
|
||||
Bouncing() {}
|
||||
bool enabled; // Si el efecto está activo
|
||||
Uint8 counter; // Countador para el efecto
|
||||
Uint8 speed; // Velocidad a la que transcurre el efecto
|
||||
float zoomW; // Zoom aplicado a la anchura
|
||||
float zoomH; // Zoom aplicado a la altura
|
||||
float despX; // Desplazamiento de pixeles en el eje X antes de pintar el objeto con zoom
|
||||
float despY; // Desplazamiento de pixeles en el eje Y antes de pintar el objeto con zoom
|
||||
std::vector<float> w; // Vector con los valores de zoom para el ancho del globo
|
||||
std::vector<float> h; // Vector con los valores de zoom para el alto del globo
|
||||
};
|
||||
|
||||
// Objetos y punteros
|
||||
@@ -103,24 +99,24 @@ private:
|
||||
float default_vel_y_; // Velocidad inicial que tienen al rebotar contra el suelo
|
||||
float max_vel_y_; // Máxima velocidad que puede alcanzar el objeto en el eje Y
|
||||
bool being_created_; // Indica si el globo se está creando
|
||||
bool blinking_ = false; // Indica si el globo está intermitente
|
||||
bool enabled_ = true; // Indica si el globo esta activo
|
||||
bool blinking_; // Indica si el globo está intermitente
|
||||
bool enabled_; // Indica si el globo esta activo
|
||||
bool invulnerable_; // Indica si el globo es invulnerable
|
||||
bool stopped_ = true; // Indica si el globo está parado
|
||||
bool visible_ = true; // Indica si el globo es visible
|
||||
Circle collider_ = Circle(0, 0, width_ / 2); // Circulo de colisión del objeto
|
||||
bool stopped_; // Indica si el globo está parado
|
||||
bool visible_; // Indica si el globo es visible
|
||||
Circle collider_; // Circulo de colisión del objeto
|
||||
Uint16 creation_counter_; // Temporizador para controlar el estado "creandose"
|
||||
Uint16 creation_counter_ini_; // Valor inicial para el temporizador para controlar el estado "creandose"
|
||||
Uint16 score_; // Puntos que da el globo al ser destruido
|
||||
Uint16 stopped_counter_ = 0; // Contador para controlar el estado "parado"
|
||||
Uint16 stopped_counter_; // Contador para controlar el estado "parado"
|
||||
Uint8 kind_; // Tipo de globo
|
||||
Uint8 menace_; // Cantidad de amenaza que genera el globo
|
||||
Uint32 counter_ = 0; // Contador interno
|
||||
float travel_y_ = 1.0f; // Distancia que ha de recorrer el globo en el eje Y antes de que se le aplique la gravedad
|
||||
Uint32 counter_; // Contador interno
|
||||
float travel_y_; // Distancia que ha de recorrer el globo en el eje Y antes de que se le aplique la gravedad
|
||||
float speed_; // Velocidad a la que se mueven los globos
|
||||
Uint8 size_; // Tamaño del globo
|
||||
Uint8 power_; // Cantidad de poder que alberga el globo
|
||||
Bouncing bouncing_ = Bouncing(); // Contiene las variables para el efecto de rebote
|
||||
Bouncing bouncing_; // Contiene las variables para el efecto de rebote
|
||||
|
||||
// Alinea el circulo de colisión con la posición del objeto globo
|
||||
void updateColliders();
|
||||
|
||||
Reference in New Issue
Block a user