X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=examples%2Fbassteroids%2Fsource%2Frigidbody.cpp;h=d677fb7ab778c0964cd777d593d58e179ce5987f;hb=bfbcfa2678c70d661cb9104b2ef677d7d7b5a637;hp=391707a574ee40b2e8b36f8fd098961aab95ab4f;hpb=a99b57a74252fd3de649d544d070b747f91fcf4d;p=libs%2Fgame.git diff --git a/examples/bassteroids/source/rigidbody.cpp b/examples/bassteroids/source/rigidbody.cpp index 391707a..d677fb7 100644 --- a/examples/bassteroids/source/rigidbody.cpp +++ b/examples/bassteroids/source/rigidbody.cpp @@ -5,39 +5,41 @@ using namespace Msp; RigidBody::RigidBody(Game::Handle e, const Setup &s): - Component(e), + BufferedComponent(e), setup(s) { } void RigidBody::set_velocity(const LinAl::Vector &v) { - velocity = v; + write().velocity = v; } void RigidBody::set_angular_velocity(Geometry::Angle as) { - angular_velocity = as; + write().angular_velocity = as; } void RigidBody::add_force(const LinAl::Vector &f) { - force += f; + write().force += f; } void RigidBody::add_force(const LinAl::Vector &f, const LinAl::Vector &p) { - force += f; + Data &d = write(); + d.force += f; LinAl::Vector r = p-entity->get_transform()->get_position().slice<2>(0); - torque += r.x*f.y-r.y*f.x; + d.torque += r.x*f.y-r.y*f.x; } void RigidBody::add_torque(float t) { - torque += t; + write().torque += t; } void RigidBody::clear_forces() { - force = LinAl::Vector(); - torque = 0.0f; + Data &d = write(); + d.force = LinAl::Vector(); + d.torque = 0.0f; }