diff options
author | Yann Herklotz <ymherklotz@gmail.com> | 2017-05-12 12:54:20 +0100 |
---|---|---|
committer | Yann Herklotz <ymherklotz@gmail.com> | 2017-05-12 12:54:20 +0100 |
commit | f7fc06b5066018451b6b456be0dbc46bafe2fd88 (patch) | |
tree | dbb167c37d6b2a877c093e38b20b47174b38380d /src/rigidbody.cpp | |
parent | a8bf22bf263762c56546751fcfcae181d574582a (diff) | |
download | YAGE-f7fc06b5066018451b6b456be0dbc46bafe2fd88.tar.gz YAGE-f7fc06b5066018451b6b456be0dbc46bafe2fd88.zip |
Removed force
Diffstat (limited to 'src/rigidbody.cpp')
-rw-r--r-- | src/rigidbody.cpp | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/src/rigidbody.cpp b/src/rigidbody.cpp index 3f719784..4d774937 100644 --- a/src/rigidbody.cpp +++ b/src/rigidbody.cpp @@ -3,14 +3,21 @@ namespace yage { -RigidBody::RigidBody(const glm::vec2 ¢er_of_mass, double mass, const glm::vec2 &velocity, bool gravity) : - Body(center_of_mass, mass, velocity, gravity) +RigidBody::RigidBody(const glm::vec2 ¢er_of_mass, double mass, const glm::vec2 &force, const glm::vec2 &velocity, bool gravity) : + Body(center_of_mass, mass, force, velocity, gravity) {} void RigidBody::applyForce(const glm::vec2 &force) { + // set the time_step for 60fps + double time_step=1.0/60.0; + // a=F/m - glm::vec2 acceleration(force.x/mass_, force.y/mass_); + glm::vec2 acceleration((force_.x+force.x)/mass_, (force_.y+force.y)/mass_); // = a(t0) + + glm::vec2 intermediate_velocity=acceleration+glm::vec2(acceleration.x*time_step/2, acceleration.y*time_step/2); + + velocity_=acceleration+glm::vec2(intermediate_velocity.x*time_step, intermediate_velocity.y*time_step); } } // yage |