Mario: enable death from bounce for Goomba

This commit is contained in:
2023-04-08 19:43:36 +02:00
parent b175e58714
commit d41c77ab96
3 changed files with 14 additions and 1 deletions
+4 -1
View File
@@ -64,11 +64,14 @@ void GoombaBlock::handleVisitor(SDLPP::Visitor &visitor) {
setPos(g_visitor.getValidXPos(), getPos().getY());
setMovement(-getMovement().getX(), getMovement().getY());
}
if (g_visitor.shouldBounce()) {
setMovement(getMovement().getX(), -0.5);
}
if (g_visitor.isDead()) {
removeCollisions();
pauseAnimation();
setBaseRect(GOOMBA_DEATH_SRC);
setMovement(0, 0);
setMovement(0, getMovement().getY());
startDeath();
// destroy();
}
+6
View File
@@ -7,10 +7,16 @@
void GoombaVisitor::visit(const SDLPP::RenderObject &obj) {
auto id = obj.getId();
auto marioBlock = reinterpret_cast<const MarioBlock&>(obj);
switch (id) {
case FLOOR_ID:
case BRICK_ID:
case BRICK_TOP_ID:
if(marioBlock.isBouncing()) {
bounce = true;
death = true;
return;
}
case PIPE_LEFT_BOTTOM_ID:
case PIPE_RIGHT_BOTTOM_ID:
case PIPE_LEFT_TOP_ID:
+4
View File
@@ -51,6 +51,9 @@ public:
double getValidXPos() const {
return validXPos;
}
bool shouldBounce() {
return bounce;
}
private:
bool onGround = false;
@@ -58,6 +61,7 @@ private:
uint64_t _type{};
bool death = false;
bool instant_death = false;
bool bounce = false;
uint64_t from = -1;
bool left = false;
bool right = false;