diff --git a/.gitignore b/.gitignore index 43438c5..4a635c3 100644 --- a/.gitignore +++ b/.gitignore @@ -8,4 +8,5 @@ thumbs.db *.dmg *.tar.gz *.zip -*.app \ No newline at end of file +*.app +*_debug \ No newline at end of file diff --git a/data/room/15.tmx b/data/room/15.tmx index 9fdfd6f..c4ca5e0 100644 --- a/data/room/15.tmx +++ b/data/room/15.tmx @@ -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, diff --git a/source/game.cpp b/source/game.cpp index 467b3b7..89b79d5 100644 --- a/source/game.cpp +++ b/source/game.cpp @@ -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}; diff --git a/source/player.cpp b/source/player.cpp index 3f8ca36..af91104 100644 --- a/source/player.cpp +++ b/source/player.cpp @@ -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) {