afegida progresió
This commit is contained in:
@@ -24,7 +24,8 @@ Enemic::Enemic(SDL_Renderer* renderer)
|
||||
brightness_(Defaults::Brightness::ENEMIC),
|
||||
tipus_(TipusEnemic::PENTAGON),
|
||||
tracking_timer_(0.0f),
|
||||
ship_position_(nullptr) {
|
||||
ship_position_(nullptr),
|
||||
tracking_strength_(0.5f) { // Default tracking strength
|
||||
// [NUEVO] Forma es carrega a inicialitzar() segons el tipus
|
||||
// Constructor no carrega forma per permetre tipus diferents
|
||||
}
|
||||
@@ -201,8 +202,8 @@ void Enemic::comportament_quadrat(float delta_time) {
|
||||
while (angle_diff > Constants::PI) angle_diff -= 2.0f * Constants::PI;
|
||||
while (angle_diff < -Constants::PI) angle_diff += 2.0f * Constants::PI;
|
||||
|
||||
// Apply tracking strength
|
||||
angle_ += angle_diff * Defaults::Enemies::Quadrat::TRACKING_STRENGTH;
|
||||
// Apply tracking strength (uses member variable, defaults to 0.5)
|
||||
angle_ += angle_diff * tracking_strength_;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -394,3 +395,29 @@ float Enemic::calcular_escala_actual() const {
|
||||
|
||||
return escala;
|
||||
}
|
||||
|
||||
// [NEW] Stage system API implementations
|
||||
|
||||
float Enemic::get_base_velocity() const {
|
||||
switch (tipus_) {
|
||||
case TipusEnemic::PENTAGON:
|
||||
return Defaults::Enemies::Pentagon::VELOCITAT;
|
||||
case TipusEnemic::QUADRAT:
|
||||
return Defaults::Enemies::Quadrat::VELOCITAT;
|
||||
case TipusEnemic::MOLINILLO:
|
||||
return Defaults::Enemies::Molinillo::VELOCITAT;
|
||||
}
|
||||
return 0.0f;
|
||||
}
|
||||
|
||||
float Enemic::get_base_rotation() const {
|
||||
// Return the base rotation speed (drotacio_base if available, otherwise current drotacio_)
|
||||
return animacio_.drotacio_base != 0.0f ? animacio_.drotacio_base : drotacio_;
|
||||
}
|
||||
|
||||
void Enemic::set_tracking_strength(float strength) {
|
||||
// Only applies to QUADRAT type
|
||||
if (tipus_ == TipusEnemic::QUADRAT) {
|
||||
tracking_strength_ = strength;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user