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

View File

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