FIx: Al saltar sin parar contra el techo al el jugador moria por caer de muy alto

This commit is contained in:
2022-11-14 22:28:14 +01:00
parent a97449adc5
commit 6cac55a54f
4 changed files with 17 additions and 8 deletions

View File

@@ -21,7 +21,7 @@ Game::Game(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *as
this->options = options;
#ifndef RELEASE
currentRoom = "33.room";
currentRoom = "14.room";
const int x1 = 1;
const int y1 = 13;
spawnPoint = {x1 * 8, y1 * 8, 0, 0, 0, s_standing, SDL_FLIP_HORIZONTAL};

View File

@@ -196,10 +196,18 @@ void Player::checkInput()
if (input->checkInput(INPUT_UP, REPEAT_TRUE))
{
setState(s_jumping);
vy = -maxVY;
jumpIni = y;
jumpCounter = 0;
// Solo puede saltar si ademas de estar (state == s_standing)
// Esta sobre el suelo, rampa o suelo que se mueve
// Esto es para evitar el salto desde el vacio al cambiar de pantalla verticalmente
// Ya que se coloca el estado s_standing al cambiar de pantalla
if (isOnFloor() || isOnAutoSurface())
{
setState(s_jumping);
vy = -maxVY;
jumpIni = y;
jumpCounter = 0;
}
}
}
@@ -269,6 +277,7 @@ void Player::checkState()
else if (state == s_jumping)
{
fallCounter = 0;
jumpCounter++;
playJumpSound();
}
@@ -281,7 +290,6 @@ void Player::switchBorders()
{
y = PLAY_AREA_BOTTOM - h - 0 - BLOCK;
setState(s_standing);
// jumpIni += 128;
}
else if (border == BORDER_BOTTOM)
{