Mario: enable death from bounce for Goomba
This commit is contained in:
parent
b175e58714
commit
d41c77ab96
@ -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();
|
||||
}
|
||||
|
@ -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:
|
||||
|
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user