Implementar impulso direccional adaptativo para tecla ESPACIO
- Renombrar pushUpBalls() → pushBallsAwayFromGravity() con lógica direccional - ESPACIO ahora impulsa en dirección opuesta a gravedad actual: * Gravedad DOWN → impulsa ARRIBA (comportamiento original) * Gravedad UP → impulsa ABAJO * Gravedad LEFT → impulsa DERECHA * Gravedad RIGHT → impulsa IZQUIERDA - Corregir modVel() para aplicar impulso horizontal a todas las pelotas - Actualizar documentación de controles en README.md 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -166,7 +166,7 @@ void Engine::handleEvents() {
|
||||
break;
|
||||
|
||||
case SDLK_SPACE:
|
||||
pushUpBalls();
|
||||
pushBallsAwayFromGravity();
|
||||
break;
|
||||
|
||||
case SDLK_G:
|
||||
@@ -426,12 +426,32 @@ void Engine::setText() {
|
||||
text_init_time_ = SDL_GetTicks();
|
||||
}
|
||||
|
||||
void Engine::pushUpBalls() {
|
||||
void Engine::pushBallsAwayFromGravity() {
|
||||
for (auto &ball : balls_) {
|
||||
const int SIGNO = ((rand() % 2) * 2) - 1;
|
||||
const float VX = (((rand() % 20) + 10) * 0.1f) * SIGNO;
|
||||
const float VY = ((rand() % 40) * 0.1f) + 5;
|
||||
ball->modVel(VX, -VY); // Modifica la velocidad de la bola
|
||||
const float LATERAL = (((rand() % 20) + 10) * 0.1f) * SIGNO;
|
||||
const float MAIN = ((rand() % 40) * 0.1f) + 5;
|
||||
|
||||
float vx = 0, vy = 0;
|
||||
switch (current_gravity_) {
|
||||
case GravityDirection::DOWN: // Impulsar ARRIBA
|
||||
vx = LATERAL;
|
||||
vy = -MAIN;
|
||||
break;
|
||||
case GravityDirection::UP: // Impulsar ABAJO
|
||||
vx = LATERAL;
|
||||
vy = MAIN;
|
||||
break;
|
||||
case GravityDirection::LEFT: // Impulsar DERECHA
|
||||
vx = MAIN;
|
||||
vy = LATERAL;
|
||||
break;
|
||||
case GravityDirection::RIGHT: // Impulsar IZQUIERDA
|
||||
vx = -MAIN;
|
||||
vy = LATERAL;
|
||||
break;
|
||||
}
|
||||
ball->modVel(vx, vy); // Modifica la velocidad según dirección de gravedad
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user