Compare commits

...

2 Commits

Author SHA1 Message Date
aa5043a811 Mario: disable bouncing on some blocks
All checks were successful
continuous-integration/drone/push Build is passing
2022-09-24 20:45:21 +02:00
f9a32bdb72 Mario: add arrow key controls 2022-09-24 20:44:52 +02:00
2 changed files with 25 additions and 0 deletions

View File

@ -189,6 +189,7 @@ VineTopBlock::VineTopBlock(int x, int y,
: MarioBlock(x, y, renderer, g_terrain_texture, VINE_TOP_SRC, false) {
ensureCollision();
setId(VINE_TOP_ID);
setBouncable(false);
}
VineBottomBlock::VineBottomBlock(int x, int y,
@ -197,6 +198,7 @@ VineBottomBlock::VineBottomBlock(int x, int y,
false) {
ensureCollision();
setId(VINE_BOTTOM_ID);
setBouncable(false);
}
PoleTopBlock::PoleTopBlock(int x, int y,
@ -295,6 +297,7 @@ TreePlatformTopLeftBlock::TreePlatformTopLeftBlock(
TREE_PLATFORM_TOP_LEFT_SRC, false) {
ensureCollision();
setId(TREE_PLATFORM_TOP_LEFT_ID);
setBouncable(false);
}
TreePlatformTopMiddleBlock::TreePlatformTopMiddleBlock(
@ -303,6 +306,7 @@ TreePlatformTopMiddleBlock::TreePlatformTopMiddleBlock(
TREE_PLATFORM_TOP_MIDDLE_SRC, false) {
ensureCollision();
setId(TREE_PLATFORM_TOP_MIDDLE_ID);
setBouncable(false);
}
TreePlatformTopRightBlock::TreePlatformTopRightBlock(
@ -311,6 +315,7 @@ TreePlatformTopRightBlock::TreePlatformTopRightBlock(
TREE_PLATFORM_TOP_RIGHT_SRC, false) {
ensureCollision();
setId(TREE_PLATFORM_TOP_RIGHT_ID);
setBouncable(false);
}
TreePlatformBarkBlock::TreePlatformBarkBlock(
@ -319,6 +324,7 @@ TreePlatformBarkBlock::TreePlatformBarkBlock(
false) {
ensureCollision();
setId(TREE_PLATFORM_BARK_ID);
setBouncable(false);
}
WaterTopBlock::WaterTopBlock(int x, int y,
@ -326,6 +332,7 @@ WaterTopBlock::WaterTopBlock(int x, int y,
: MarioBlock(x, y, renderer, g_terrain_texture, WATER_TOP_SRC, false) {
ensureCollision();
setId(WATER_TOP_ID);
setBouncable(false);
}
WaterFillBlock::WaterFillBlock(int x, int y,
@ -333,6 +340,7 @@ WaterFillBlock::WaterFillBlock(int x, int y,
: MarioBlock(x, y, renderer, g_terrain_texture, WATER_FILL_SRC, false) {
ensureCollision();
setId(WATER_FILL_ID);
setBouncable(false);
}
MushroomPlatformTopLeftBlock::MushroomPlatformTopLeftBlock(
@ -341,6 +349,7 @@ MushroomPlatformTopLeftBlock::MushroomPlatformTopLeftBlock(
MUSHROOM_PLATFORM_TOP_LEFT_SRC, false) {
ensureCollision();
setId(MUSHROOM_PLATFORM_TOP_LEFT_ID);
setBouncable(false);
}
MushroomPlatformTopMiddleBlock::MushroomPlatformTopMiddleBlock(
@ -349,6 +358,7 @@ MushroomPlatformTopMiddleBlock::MushroomPlatformTopMiddleBlock(
MUSHROOM_PLATFORM_TOP_MIDDLE_SRC, false) {
ensureCollision();
setId(MUSHROOM_PLATFORM_TOP_MIDDLE_ID);
setBouncable(false);
}
MushroomPlatformTopRightBlock::MushroomPlatformTopRightBlock(
@ -357,6 +367,7 @@ MushroomPlatformTopRightBlock::MushroomPlatformTopRightBlock(
MUSHROOM_PLATFORM_TOP_RIGHT_SRC, false) {
ensureCollision();
setId(MUSHROOM_PLATFORM_TOP_RIGHT_ID);
setBouncable(false);
}
MushroomPlatformBarkTopBlock::MushroomPlatformBarkTopBlock(
@ -365,6 +376,7 @@ MushroomPlatformBarkTopBlock::MushroomPlatformBarkTopBlock(
MUSHROOM_PLATFORM_BARK_TOP_SRC, false) {
ensureCollision();
setId(MUSHROOM_PLATFORM_BARK_TOP_ID);
setBouncable(false);
}
MushroomPlatformBarkBottomBlock::MushroomPlatformBarkBottomBlock(
@ -373,6 +385,7 @@ MushroomPlatformBarkBottomBlock::MushroomPlatformBarkBottomBlock(
MUSHROOM_PLATFORM_BARK_BOTTOM_SRC, false) {
ensureCollision();
setId(MUSHROOM_PLATFORM_BARK_BOTTOM_ID);
setBouncable(false);
}
TreeBarkBlock::TreeBarkBlock(int x, int y,
@ -380,6 +393,7 @@ TreeBarkBlock::TreeBarkBlock(int x, int y,
: MarioBlock(x, y, renderer, g_terrain_texture, TREE_BARK_SRC, false) {
ensureCollision();
setId(TREE_BARK_ID);
setBouncable(false);
}
TreeLeavesSmallBlock::TreeLeavesSmallBlock(
@ -388,6 +402,7 @@ TreeLeavesSmallBlock::TreeLeavesSmallBlock(
false) {
ensureCollision();
setId(TREE_LEAVES_SMALL_ID);
setBouncable(false);
}
TreeLeavesTopBlock::TreeLeavesTopBlock(
@ -396,6 +411,7 @@ TreeLeavesTopBlock::TreeLeavesTopBlock(
false) {
ensureCollision();
setId(TREE_LEAVES_TOP_ID);
setBouncable(false);
}
TreeLeavesBottomBlock::TreeLeavesBottomBlock(
@ -404,6 +420,7 @@ TreeLeavesBottomBlock::TreeLeavesBottomBlock(
false) {
ensureCollision();
setId(TREE_LEAVES_BOTTOM_ID);
setBouncable(false);
}
CannonTowerBlock::CannonTowerBlock(int x, int y,

View File

@ -1,4 +1,5 @@
#include "../sdlpp/sdlpp.hpp"
#include "SDL2/SDL_keycode.h"
#include "sprites.hpp"
#include <memory>
#ifdef _WIN32
@ -44,16 +45,20 @@ std::mutex gamescene_mutex;
void handleKeyDown(SDL_Keycode key, SDLPP::Scene &scene) {
switch (key) {
case SDLK_a:
case SDLK_LEFT:
mario->walkLeft();
break;
case SDLK_d:
case SDLK_RIGHT:
mario->walkRight();
break;
case SDLK_SPACE:
case SDLK_w:
case SDLK_UP:
mario->jump();
break;
case SDLK_s:
case SDLK_DOWN:
break;
case SDLK_r:
scene.getRenderer().setRenderColiders(
@ -76,13 +81,16 @@ void handleKeyUp(SDL_Keycode key) {
createGameMainMenuScene(renderer, false, true, true));
} break;
case SDLK_a:
case SDLK_LEFT:
mario->walkRight();
break;
case SDLK_d:
case SDLK_RIGHT:
mario->walkLeft();
break;
case SDLK_SPACE:
case SDLK_w:
case SDLK_UP:
mario->stopJump();
default:
break;