diff --git a/mario/main.cpp b/mario/main.cpp index 709d11d..67d41f6 100644 --- a/mario/main.cpp +++ b/mario/main.cpp @@ -92,7 +92,6 @@ void pollEvents( SDLPP::Scene &scene ) { if ( event.window.event == SDL_WINDOWEVENT_RESIZED ) { scene.updateSizeAndPosition(); if ( leftStop ) { - auto rendDimsInt = renderer->getDimensions(); auto rendDims = renderer->getDoubleDimensions(); auto left = rendDims.getX() < 2.0 ? -( rendDims.getX() - 1 ) / 2.0 - 0.1 @@ -141,16 +140,14 @@ void doInput( std::shared_ptr< SDLPP::Scene > scene ) { } else { mario->resetMovementY(); } - if ( mv.isStopped() ) { + if ( mv.isStopped() || ( !mv.canGoLeft() && prevPos.getX() > mario->getPos().getX() ) || ( !mv.canGoRight() && prevPos.getX() < mario->getPos().getX() ) ) { mario->setPos( prevPos.getX(), mario->getPos().getY() ); } auto playerX = mario->getRect().x; auto width = scene->getWidth(); auto rightBarrier = width * 0.7; - auto leftBarrier = width * 0.3; auto rightmostX = scene->rightmost()->getRect().x + scene->rightmost()->getRect().w; - auto leftmostX = scene->leftmost()->getRect().x; scene->moveEverything( ( playerX > rightBarrier && rightmostX > width ) * ( rightBarrier - playerX ) / width, @@ -196,9 +193,9 @@ int main() { mario->addCollision( SDLPP::RectColider( 0.21, 0.85, 0.65, 0.16, MARIO_FLOOR_DETECT ) ); mario->addCollision( - SDLPP::RectColider( 0, 0, 0.1, 0.9, MARIO_SIDE_DETECT ) ); + SDLPP::RectColider( 0, 0, 0.1, 0.9, MARIO_LEFT_SIDE_DETECT ) ); mario->addCollision( - SDLPP::RectColider( 0.9, 0, 0.1, 0.9, MARIO_SIDE_DETECT ) ); + SDLPP::RectColider( 0.9, 0, 0.1, 0.9, MARIO_RIGHT_SIDE_DETECT ) ); mario->setStatic( false ); scene->addObject( mario ); diff --git a/mario/maploader.cpp b/mario/maploader.cpp index c260780..37c61b3 100644 --- a/mario/maploader.cpp +++ b/mario/maploader.cpp @@ -56,10 +56,10 @@ void loadMap(std::shared_ptr &scene, std::shared_ptr