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),
|
pos_y_(y),
|
||||||
vel_x_(vel_x),
|
vel_x_(vel_x),
|
||||||
being_created_(creation_timer > 0),
|
being_created_(creation_timer > 0),
|
||||||
|
blinking_(false),
|
||||||
|
enabled_(true),
|
||||||
invulnerable_(creation_timer > 0),
|
invulnerable_(creation_timer > 0),
|
||||||
|
stopped_(true),
|
||||||
|
visible_(true),
|
||||||
creation_counter_(creation_timer),
|
creation_counter_(creation_timer),
|
||||||
creation_counter_ini_(creation_timer),
|
creation_counter_ini_(creation_timer),
|
||||||
|
stopped_counter_(0),
|
||||||
kind_(kind),
|
kind_(kind),
|
||||||
|
counter_(0),
|
||||||
|
travel_y_(1.0f),
|
||||||
speed_(speed)
|
speed_(speed)
|
||||||
{
|
{
|
||||||
|
|
||||||
@@ -220,9 +227,23 @@ Balloon::Balloon(float x, float y, Uint8 kind, float vel_x, float speed, Uint16
|
|||||||
break;
|
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
|
// Configura el sprite
|
||||||
sprite_->setPos({static_cast<int>(pos_x_), static_cast<int>(pos_y_), width_, height_});
|
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
|
// Alinea el circulo de colisión con el objeto
|
||||||
updateColliders();
|
updateColliders();
|
||||||
}
|
}
|
||||||
@@ -705,8 +726,8 @@ Circle &Balloon::getCollider()
|
|||||||
// Alinea el circulo de colisión con la posición del objeto globo
|
// Alinea el circulo de colisión con la posición del objeto globo
|
||||||
void Balloon::updateColliders()
|
void Balloon::updateColliders()
|
||||||
{
|
{
|
||||||
collider_.x = static_cast<int>(pos_x_ + collider_.r);
|
collider_.x = Uint16(pos_x_ + collider_.r);
|
||||||
collider_.y = static_cast<int>(pos_y_ + collider_.r);
|
collider_.y = pos_y_ + collider_.r;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Obtiene le valor de la variable
|
// Obtiene le valor de la variable
|
||||||
|
|||||||
@@ -74,53 +74,49 @@ private:
|
|||||||
// Estructura para las variables para el efecto de los rebotes
|
// Estructura para las variables para el efecto de los rebotes
|
||||||
struct Bouncing
|
struct Bouncing
|
||||||
{
|
{
|
||||||
bool enabled = false; // Si el efecto está activo
|
bool enabled; // Si el efecto está activo
|
||||||
Uint8 counter = 0; // Countador para el efecto
|
Uint8 counter; // Countador para el efecto
|
||||||
Uint8 speed = 2; // Velocidad a la que transcurre el efecto
|
Uint8 speed; // Velocidad a la que transcurre el efecto
|
||||||
float zoomW = 1.0f; // Zoom aplicado a la anchura
|
float zoomW; // Zoom aplicado a la anchura
|
||||||
float zoomH = 1.0f; // Zoom aplicado a la altura
|
float zoomH; // Zoom aplicado a la altura
|
||||||
float despX = 0.0f; // Desplazamiento de pixeles en el eje X antes de pintar el objeto con zoom
|
float despX; // 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
|
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> 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; // Vector con los valores de zoom para el alto 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() {}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// Objetos y punteros
|
// Objetos y punteros
|
||||||
std::unique_ptr<AnimatedSprite> sprite_; // Sprite del objeto globo
|
std::unique_ptr<AnimatedSprite> sprite_; // Sprite del objeto globo
|
||||||
|
|
||||||
// Variables
|
// Variables
|
||||||
float pos_x_; // Posición en el eje X
|
float pos_x_; // Posición en el eje X
|
||||||
float pos_y_; // Posición en el eje Y
|
float pos_y_; // Posición en el eje Y
|
||||||
Uint8 width_; // Ancho
|
Uint8 width_; // Ancho
|
||||||
Uint8 height_; // Alto
|
Uint8 height_; // Alto
|
||||||
float vel_x_; // Velocidad en el eje X. Cantidad de pixeles a desplazarse
|
float vel_x_; // Velocidad en el eje X. Cantidad de pixeles a desplazarse
|
||||||
float vel_y_; // Velocidad en el eje Y. Cantidad de pixeles a desplazarse
|
float vel_y_; // Velocidad en el eje Y. Cantidad de pixeles a desplazarse
|
||||||
float gravity_; // Aceleración en el eje Y. Modifica la velocidad
|
float gravity_; // Aceleración en el eje Y. Modifica la velocidad
|
||||||
float default_vel_y_; // Velocidad inicial que tienen al rebotar contra el suelo
|
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
|
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 being_created_; // Indica si el globo se está creando
|
||||||
bool blinking_ = false; // Indica si el globo está intermitente
|
bool blinking_; // Indica si el globo está intermitente
|
||||||
bool enabled_ = true; // Indica si el globo esta activo
|
bool enabled_; // Indica si el globo esta activo
|
||||||
bool invulnerable_; // Indica si el globo es invulnerable
|
bool invulnerable_; // Indica si el globo es invulnerable
|
||||||
bool stopped_ = true; // Indica si el globo está parado
|
bool stopped_; // Indica si el globo está parado
|
||||||
bool visible_ = true; // Indica si el globo es visible
|
bool visible_; // Indica si el globo es visible
|
||||||
Circle collider_ = Circle(0, 0, width_ / 2); // Circulo de colisión del objeto
|
Circle collider_; // Circulo de colisión del objeto
|
||||||
Uint16 creation_counter_; // Temporizador para controlar el estado "creandose"
|
Uint16 creation_counter_; // Temporizador para controlar el estado "creandose"
|
||||||
Uint16 creation_counter_ini_; // Valor inicial para el 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 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 kind_; // Tipo de globo
|
||||||
Uint8 menace_; // Cantidad de amenaza que genera el globo
|
Uint8 menace_; // Cantidad de amenaza que genera el globo
|
||||||
Uint32 counter_ = 0; // Contador interno
|
Uint32 counter_; // 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
|
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
|
float speed_; // Velocidad a la que se mueven los globos
|
||||||
Uint8 size_; // Tamaño del globo
|
Uint8 size_; // Tamaño del globo
|
||||||
Uint8 power_; // Cantidad de poder que alberga el 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
|
// Alinea el circulo de colisión con la posición del objeto globo
|
||||||
void updateColliders();
|
void updateColliders();
|
||||||
|
|||||||
Reference in New Issue
Block a user