X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=examples%2Fbassteroids%2Fsource%2Fgamecontroller.cpp;h=97701e379fa603d9bc6ad265351bc0ffa48f845f;hb=cb4e8bbe06dc64aff932784541a29493723fc03e;hp=b5640330310ad111f01f70d4b7aafba260a305fe;hpb=338031de484ee117762d80449d9ca472a6918c92;p=libs%2Fgame.git diff --git a/examples/bassteroids/source/gamecontroller.cpp b/examples/bassteroids/source/gamecontroller.cpp index b564033..97701e3 100644 --- a/examples/bassteroids/source/gamecontroller.cpp +++ b/examples/bassteroids/source/gamecontroller.cpp @@ -9,6 +9,7 @@ using namespace Msp; GameController::GameController(Game::Stage &s): System(s), asteroid_setup{ .physical={ .body={ .mass=200, .moment_of_inertia=2160 }, .collider={ .type=ColliderType::CIRCLE, .radius=3.0f } }, + .hittable={ .damaging=true, .hits={ .max_hits=3, .vulnerable_to=1 }, .damage={ .amount=10, .type=1 }}, .mesh={ .object_name="Asteroid 1.object" }} { } @@ -37,3 +38,9 @@ void GameController::tick(Time::TimeDelta) throw logic_error("Unimplemented state"); } } + +void GameController::deferred_tick() +{ + System::deferred_tick(); + erase_if(asteroids, [](Game::Handle a){ return !a->get_hitpoints()->is_alive(); }); +}