diff --git a/GameLogic.cpp b/GameLogic.cpp index 5855203..9bf65fc 100644 --- a/GameLogic.cpp +++ b/GameLogic.cpp @@ -8,6 +8,7 @@ GameLogic::GameLogic() : player(100, 100, 0) GameLogic::~GameLogic() { } +int buttonLast = 0; void GameLogic::step(const Uint8 *keyboard) { player.right_btn = keyboard[SDL_SCANCODE_RIGHT]; @@ -21,6 +22,9 @@ void GameLogic::step(const Uint8 *keyboard) } SDL_UnlockMutex(write_other_players); + if (keyboard[SDL_SCANCODE_F] && !buttonLast) player.multiplier *= 1.5; + buttonLast = keyboard[SDL_SCANCODE_F]; + if (multiplayer && turns == 3) { send_packet(&player, rings.thisRing); diff --git a/Player.cpp b/Player.cpp index 24c69cc..27c70a0 100644 --- a/Player.cpp +++ b/Player.cpp @@ -20,8 +20,8 @@ void Player::step(std::vector* bumpers) if (left_btn) aspd -= .15; if (up_btn) { - xspd += xdir(angle, .05); - yspd += ydir(angle, .05); + xspd += xdir(angle, .05) * multiplier; + yspd += ydir(angle, .05) * multiplier; myExhaust.add(x, y, xdir(angle,-5)+xspd, ydir(angle, -5)+yspd); myExhaust.add(x, y, xdir(angle + fRandGFX(-20, 20), -4.8) + xspd, ydir(angle + fRandGFX(-20, 20), -4.8) + yspd); myExhaust.add(x, y, xdir(angle + fRandGFX(-20, 20), -5.2) + xspd, ydir(angle + fRandGFX(-20, 20), -5.2) + yspd); diff --git a/Player.h b/Player.h index 26f7d96..6aff536 100644 --- a/Player.h +++ b/Player.h @@ -12,10 +12,11 @@ class Player void step(std::vector* bumpers); void draw(); double x, y, xspd, yspd, angle, aspd; - Uint8 left_btn, right_btn, up_btn; + double multiplier = 1; + Uint8 left_btn, right_btn, up_btn, special_btn; Exhaust myExhaust; int colorRed; - + int special_timeout = 0; }; class ActivePlayer : public Player