This repository has been archived by the owner on Nov 15, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
Player Move
Antek Bizon edited this page Mar 5, 2022
·
1 revision
Ruch następuje po sprawdzeniu naciskanych przez gracza przycisków. Są tu również wykorzystywane dwie zmienne pomocnicze climbing (określa czy znajdujemy się na drabinie czy nie) oraz onIce (określa czy znajdujemy się na lodzie czy nie). Po sprawdzeniu ustawiana jest odpowiednia prędkość, odgrywany jest dźwięk, a także po wciśnięciu Spacji uruchamiane jest strzelanie. Na końcu przesuwana jest pozycja gracza o wcześniej ustaloną prędkość.
void Player::Move() {
if (state == State::FINISHED) return;
if (!climbing)
speed.y++;
else {
speed.y = 0;
speed.x = 0;
}
if (climbing) {
if (IsKeyDown(KEY_UP)) {
direction = Direction::UP;
speed.y = -5;
} else if (IsKeyDown(KEY_DOWN)) {
direction = Direction::DOWN;
speed.y = 5;
} else {
direction = Direction::NONE;
}
} else {
if (!onIce) {
if (IsKeyDown(KEY_LEFT)) {
direction = Direction::LEFT;
if (speed.x > -6.0f * game->speedBoost)
speed.x -= 1;
else
speed.x = -6.0f * game->speedBoost;
if (!IsSoundPlaying(game->audio[WALK]))
PlaySound(game->audio[WALK]);
} else if (IsKeyDown(KEY_RIGHT)) {
direction = Direction::RIGHT;
if (speed.x < 6.0f * game->speedBoost)
speed.x += 1;
else
speed.x = 6.0f * game->speedBoost;
if (!IsSoundPlaying(game->audio[WALK]))
PlaySound(game->audio[WALK]);
} else {
direction = Direction::NONE;
speed.x = 0;
if (IsSoundPlaying(game->audio[WALK]))
StopSound(game->audio[WALK]);
}
} else {
if (IsKeyDown(KEY_LEFT)) {
direction = Direction::LEFT;
speed.x -= 0.25f * game->speedBoost;
if (!IsSoundPlaying(game->audio[WALK]))
PlaySound(game->audio[WALK]);
} else if (IsKeyDown(KEY_RIGHT)) {
direction = Direction::RIGHT;
speed.x += 0.25f * game->speedBoost;
if (!IsSoundPlaying(game->audio[WALK]))
PlaySound(game->audio[WALK]);
} else {
direction = Direction::NONE;
if (speed.x > 0.2)
speed.x -= 0.2f;
else if (speed.x < -0.2)
speed.x += 0.2f;
else {
speed.x = 0;
if (IsSoundPlaying(game->audio[WALK]))
StopSound(game->audio[WALK]);
}
}
}
}
if (!climbing && IsKeyPressed(KEY_SPACE)) {
Shooting();
}
position.rectangle.x += speed.x;
position.rectangle.y += speed.y;
onIce = false;
}