aboutsummaryrefslogtreecommitdiffstats
path: root/src/rigidbody.cpp
diff options
context:
space:
mode:
authorYann Herklotz <ymherklotz@gmail.com>2017-05-12 12:54:20 +0100
committerYann Herklotz <ymherklotz@gmail.com>2017-05-12 12:54:20 +0100
commitf7fc06b5066018451b6b456be0dbc46bafe2fd88 (patch)
treedbb167c37d6b2a877c093e38b20b47174b38380d /src/rigidbody.cpp
parenta8bf22bf263762c56546751fcfcae181d574582a (diff)
downloadYAGE-f7fc06b5066018451b6b456be0dbc46bafe2fd88.tar.gz
YAGE-f7fc06b5066018451b6b456be0dbc46bafe2fd88.zip
Removed force
Diffstat (limited to 'src/rigidbody.cpp')
-rw-r--r--src/rigidbody.cpp13
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 &center_of_mass, double mass, const glm::vec2 &velocity, bool gravity) :
- Body(center_of_mass, mass, velocity, gravity)
+RigidBody::RigidBody(const glm::vec2 &center_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