From 6cac55a54f999ddce314b61517ed2439c96472eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sergio=20Valor=20Mart=C3=ADnez?= Date: Mon, 14 Nov 2022 22:28:14 +0100 Subject: [PATCH 1/3] FIx: Al saltar sin parar contra el techo al el jugador moria por caer de muy alto --- .gitignore | 3 ++- data/room/15.tmx | 2 +- source/game.cpp | 2 +- source/player.cpp | 18 +++++++++++++----- 4 files changed, 17 insertions(+), 8 deletions(-) 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) { From e2846023da658c4191438d1098ea5f3aacb3d705 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sergio=20Valor=20Mart=C3=ADnez?= Date: Mon, 14 Nov 2022 22:35:05 +0100 Subject: [PATCH 2/3] Cambiados los ifndef RELEASE por ifdef DEBUG --- Makefile | 14 +++++++------- source/director.cpp | 2 +- source/game.cpp | 4 ++-- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/Makefile b/Makefile index 865a2cb..1f03050 100644 --- a/Makefile +++ b/Makefile @@ -14,7 +14,7 @@ windows: @echo off powershell if (Test-Path data\config) {Remove-Item data\config -Recurse -Force} powershell if (-not (Test-Path data\config)) {New-Item data\config -ItemType Directory} - g++ $(source) -std=c++11 -Wall -Os -lmingw32 -lSDL2main -lSDL2 -ffunction-sections -fdata-sections -Wl,--gc-sections -static-libstdc++ -Wl,-subsystem,windows -o $(executable).exe + g++ $(source) -D DEBUG -std=c++11 -Wall -Os -lmingw32 -lSDL2main -lSDL2 -ffunction-sections -fdata-sections -Wl,--gc-sections -static-libstdc++ -Wl,-subsystem,windows -o $(executable).exe strip -s -R .comment -R .gnu.version $(executable).exe --strip-unneeded windows_release: @@ -39,7 +39,7 @@ windows_release: powershell if (Test-Path "$(releaseFolder)\data\room\standard.tsx") {Remove-Item "$(releaseFolder)\data\room\standard.tsx" -Recurse -Force} # Build - g++ $(source) -D RELEASE -std=c++11 -Wall -Os -lmingw32 -lSDL2main -lSDL2 -ffunction-sections -fdata-sections -Wl,--gc-sections -static-libstdc++ -Wl,-subsystem,windows -o "$(releaseFolder)/$(executable).exe" + g++ $(source) -std=c++11 -Wall -Os -lmingw32 -lSDL2main -lSDL2 -ffunction-sections -fdata-sections -Wl,--gc-sections -static-libstdc++ -Wl,-subsystem,windows -o "$(releaseFolder)/$(executable).exe" strip -s -R .comment -R .gnu.version "$(releaseFolder)/$(executable).exe" --strip-unneeded # Create ZIP @@ -52,7 +52,7 @@ windows_release: macos: rm -rdf data/config mkdir -p data/config - clang++ $(source) -std=c++11 -Wall -Os -lSDL2 -ffunction-sections -fdata-sections -o $(executable)_macos + clang++ $(source) -D DEBUG -std=c++11 -Wall -Os -lSDL2 -ffunction-sections -fdata-sections -o $(executable)_macos macos_release: # Remove data @@ -80,7 +80,7 @@ macos_release: cp release/Info.plist "$(releaseFolder)/$(appName).app/Contents" # Build INTEL - clang++ $(source) -D RELEASE -D MACOS_BUNDLE -std=c++11 -Wall -Os -framework SDL2 -F ./Frameworks -ffunction-sections -fdata-sections -o "$(releaseFolder)/$(appName).app/Contents/MacOS/$(executable)" -rpath @executable_path/../Frameworks/ -target x86_64-apple-macos10.12 + clang++ $(source) -D MACOS_BUNDLE -std=c++11 -Wall -Os -framework SDL2 -F ./Frameworks -ffunction-sections -fdata-sections -o "$(releaseFolder)/$(appName).app/Contents/MacOS/$(executable)" -rpath @executable_path/../Frameworks/ -target x86_64-apple-macos10.12 # Build INTEL DMG rm -f "$(macosIntelRelease)" @@ -89,7 +89,7 @@ macos_release: rm -f tmp.dmg # Build APPLE SILICON - clang++ $(source) -D RELEASE -D MACOS_BUNDLE -std=c++11 -Wall -Os -framework SDL2 -F ./Frameworks -ffunction-sections -fdata-sections -o "$(releaseFolder)/$(appName).app/Contents/MacOS/$(executable)" -rpath @executable_path/../Frameworks/ -target arm64-apple-macos11 + clang++ $(source) -D MACOS_BUNDLE -std=c++11 -Wall -Os -framework SDL2 -F ./Frameworks -ffunction-sections -fdata-sections -o "$(releaseFolder)/$(appName).app/Contents/MacOS/$(executable)" -rpath @executable_path/../Frameworks/ -target arm64-apple-macos11 # Build APPLE SILICON DMG rm -f "$(macosAppleSiliconRelease)" @@ -104,7 +104,7 @@ macos_release: linux: rm -rdf data/config mkdir -p data/config - g++ $(source) -std=c++11 -Wall -Os -lSDL2 -ffunction-sections -fdata-sections -Wl,--gc-sections -o $(executable)_linux + g++ $(source) -D DEBUG -std=c++11 -Wall -Os -lSDL2 -ffunction-sections -fdata-sections -Wl,--gc-sections -o $(executable)_linux strip -s -R .comment -R .gnu.version $(executable)_linux --strip-unneeded linux_release: @@ -126,7 +126,7 @@ linux_release: rm -f "$(releaseFolder)/data/room/standard.tsx" # Build - g++ $(source) -D RELEASE -std=c++11 -Wall -Os -lSDL2 -ffunction-sections -fdata-sections -Wl,--gc-sections -o $(releaseFolder)/$(executable) + g++ $(source) -std=c++11 -Wall -Os -lSDL2 -ffunction-sections -fdata-sections -Wl,--gc-sections -o $(releaseFolder)/$(executable) strip -s -R .comment -R .gnu.version $(releaseFolder)/$(executable) --strip-unneeded # Pack files diff --git a/source/director.cpp b/source/director.cpp index 3ce8cef..bdd106f 100644 --- a/source/director.cpp +++ b/source/director.cpp @@ -9,7 +9,7 @@ Director::Director(int argc, char *argv[]) section.name = SECTION_PROG_LOGO; section.subsection = SUBSECTION_LOGO_TO_INTRO; -#ifndef RELEASE +#ifdef DEBUG section.name = SECTION_PROG_GAME; #endif diff --git a/source/game.cpp b/source/game.cpp index 89b79d5..64bd627 100644 --- a/source/game.cpp +++ b/source/game.cpp @@ -20,7 +20,7 @@ Game::Game(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *as this->debug = debug; this->options = options; -#ifndef RELEASE +#ifdef DEBUG currentRoom = "14.room"; const int x1 = 1; const int y1 = 13; @@ -96,7 +96,7 @@ void Game::checkEventHandler() case SDL_SCANCODE_ESCAPE: section.name = SECTION_PROG_TITLE; break; -#ifndef RELEASE +#ifdef DEBUG case SDL_SCANCODE_G: debug->switchEnabled(); options->cheat.invincible = debug->getEnabled(); From d88b42a51690be303fd9e3a9aa8aa4d7695055ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sergio=20Valor=20Mart=C3=ADnez?= Date: Mon, 14 Nov 2022 22:58:13 +0100 Subject: [PATCH 3/3] Fix: El jugador ya no puede moverse hacia un lateral nada mas subir a la pantalla superior --- source/player.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/source/player.cpp b/source/player.cpp index af91104..bec807a 100644 --- a/source/player.cpp +++ b/source/player.cpp @@ -273,6 +273,14 @@ void Player::checkState() vy = 0.0f; jumpCounter = 0; fallCounter = 0; + if (!isOnFloor() && !isOnAutoSurface()) + { + setState(s_falling); + vx = 0.0f; + vy = maxVY; + fallCounter++; + playFallSound(); + } } else if (state == s_jumping)