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

3
.gitignore vendored
View File

@@ -8,4 +8,5 @@ thumbs.db
*.dmg
*.tar.gz
*.zip
*.app
*.app
*_debug

View File

@@ -6,7 +6,7 @@
16,16,16,16,16,0,16,16,16,16,349,349,349,349,349,349,349,349,349,349,302,0,0,302,302,16,16,16,16,16,16,16,
16,16,0,0,0,0,0,349,16,349,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,16,
16,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,
16,0,0,0,0,349,0,0,16,0,0,0,0,0,0,0,0,0,0,0,423,423,423,423,423,0,0,0,0,0,0,16,
16,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,423,423,423,423,423,0,0,0,0,0,0,16,
16,0,0,0,16,16,16,16,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,
16,0,0,0,0,0,0,16,16,16,16,0,0,0,423,0,0,0,423,547,0,0,0,0,0,0,0,0,0,0,0,16,
16,0,0,0,0,0,0,0,16,16,0,0,0,0,0,0,0,0,0,0,547,0,0,0,0,424,422,424,422,0,0,16,

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)
{