X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=examples%2Fbassteroids%2Fsource%2Fplayercontroller.cpp;h=54f7520a1a4f7bf93a1056addfa20c6df1f51fa8;hb=e5be2d50f4785317f9f42b64d58831ccf907795a;hp=46f9c1f85e30dfe710c96411a041c73455b22029;hpb=cb4e8bbe06dc64aff932784541a29493723fc03e;p=libs%2Fgame.git diff --git a/examples/bassteroids/source/playercontroller.cpp b/examples/bassteroids/source/playercontroller.cpp index 46f9c1f..54f7520 100644 --- a/examples/bassteroids/source/playercontroller.cpp +++ b/examples/bassteroids/source/playercontroller.cpp @@ -8,13 +8,12 @@ using namespace Msp; PlayerController::PlayerController(Game::Stage &s): System(s), - player_setup{ .physical={ .body={ .mass=1, .moment_of_inertia=0.8f }, .collider={ .type=ColliderType::CIRCLE, .radius=0.8f }}, - .mesh={ .object_name="Bass guitar.object" }, - .speed=12.0f, .turn_rate=4.71f }, - bullet_setup{ .physical={ .body={ .mass=0.05f, .moment_of_inertia=0.04f }, .collider={ .type=ColliderType::CIRCLE, .radius=0.2f }}, - .hittable={ .damaging=true, .hits={ .max_hits=1 }, .damage={ .amount=1, .type=0 }}, - .mesh={ .object_name="Quaver.object" }} -{ } + player_setup(stage.get_resources().get("player.ship.setup")), + bullet_setup(stage.get_resources().get("quaver.bullet.setup")) +{ + declare_dependency(READ_OLD); + declare_dependency(UPDATE); +} void PlayerController::set_controls(Controls *c) { @@ -51,7 +50,7 @@ void PlayerController::tick(Time::TimeDelta dt) body->add_torque(angular_vel.radians()*-min(angular_speed.radians()+setup.turn_rate/angular_speed.radians(), 1.0f/dt_secs)); if(controls->fire.was_pressed()) - fire(); + defer([this]{ fire(); }); controls->reset_edges(); }