diff options
author | Matthew Kosarek <mattkae@protonmail.com> | 2021-07-25 20:20:10 -0400 |
---|---|---|
committer | Matthew Kosarek <mattkae@protonmail.com> | 2021-07-25 20:20:10 -0400 |
commit | 05c4522e5ff424c65aab7cd36c7a15313630ac61 (patch) | |
tree | 4b1f5310029728d46fe3464a500400a2e89fbf13 /2d/rigidbody | |
parent | 26d073d768c1a0560fa4358246acd1e308eff7b6 (diff) |
(mkosarek) Fix for wrong timestep
Diffstat (limited to '2d/rigidbody')
-rw-r--r-- | 2d/rigidbody/rigidbody_1.html | 2 | ||||
-rwxr-xr-x | 2d/rigidbody/rigidbody_1/dist/output.wasm | bin | 48801 -> 49033 bytes | |||
-rw-r--r-- | 2d/rigidbody/rigidbody_1/main.cpp | 7 | ||||
-rw-r--r-- | 2d/rigidbody/rigidbody_1/snippet3.cpp | 2 | ||||
-rwxr-xr-x | 2d/rigidbody/rigidbody_2/dist/output.wasm | bin | 50226 -> 50452 bytes | |||
-rw-r--r-- | 2d/rigidbody/rigidbody_2/main.cpp | 2 | ||||
-rwxr-xr-x | 2d/rigidbody/rigidbody_3/dist/output.wasm | bin | 49458 -> 49653 bytes | |||
-rw-r--r-- | 2d/rigidbody/rigidbody_3/main.cpp | 2 |
8 files changed, 7 insertions, 8 deletions
diff --git a/2d/rigidbody/rigidbody_1.html b/2d/rigidbody/rigidbody_1.html index b98d292..0d50904 100644 --- a/2d/rigidbody/rigidbody_1.html +++ b/2d/rigidbody/rigidbody_1.html @@ -200,7 +200,7 @@ <span class="code_comment">// to calculate the fractional amount of force that was applied in this frame.</span> <span class="code_keyword">float32</span> impulseDtSeconds = nextTimeAppliedSeconds - i.timeAppliedSeconds; <span class="code_keyword">Vector2</span> forceToApply = i.force * (impulseDtSeconds / i.timeOfApplicationSeconds); - force += forceToApply * impulseDtSeconds; + force += forceToApply; i.timeAppliedSeconds = nextTimeAppliedSeconds; } diff --git a/2d/rigidbody/rigidbody_1/dist/output.wasm b/2d/rigidbody/rigidbody_1/dist/output.wasm Binary files differindex f6625a9..b9f4c37 100755 --- a/2d/rigidbody/rigidbody_1/dist/output.wasm +++ b/2d/rigidbody/rigidbody_1/dist/output.wasm diff --git a/2d/rigidbody/rigidbody_1/main.cpp b/2d/rigidbody/rigidbody_1/main.cpp index 88c322c..a327fee 100644 --- a/2d/rigidbody/rigidbody_1/main.cpp +++ b/2d/rigidbody/rigidbody_1/main.cpp @@ -61,8 +61,7 @@ struct Rigidbody { float32 impulseDtSeconds = nextTimeAppliedSeconds - i.timeAppliedSeconds; Vector2 forceToApply = i.force * (impulseDtSeconds / i.timeOfApplicationSeconds); - force += forceToApply * impulseDtSeconds; - + force += forceToApply; i.timeAppliedSeconds = nextTimeAppliedSeconds; } @@ -301,8 +300,8 @@ EM_BOOL onMouseMove(int eventType, const EmscriptenMouseEvent *mouseEvent, void return true; } - pointer.force.x = static_cast<float32>(mouseEvent->movementX) * 100000.f; - pointer.force.y = static_cast<float32>(-mouseEvent->movementY) * 100000.f; + pointer.force.x = static_cast<float32>(mouseEvent->movementX) * 1000.f; + pointer.force.y = static_cast<float32>(-mouseEvent->movementY) * 1000.f; pointer.body.position.x = static_cast<float32>(mouseEvent->targetX); pointer.body.position.y = static_cast<float32>(600.f - mouseEvent->targetY); diff --git a/2d/rigidbody/rigidbody_1/snippet3.cpp b/2d/rigidbody/rigidbody_1/snippet3.cpp index 4727a9a..d3ecc4f 100644 --- a/2d/rigidbody/rigidbody_1/snippet3.cpp +++ b/2d/rigidbody/rigidbody_1/snippet3.cpp @@ -31,7 +31,7 @@ struct Rigidbody { // to calculate the fractional amount of force that was applied in this frame. float32 impulseDtSeconds = nextTimeAppliedSeconds - i.timeAppliedSeconds; Vector2 forceToApply = i.force * (impulseDtSeconds / i.timeOfApplicationSeconds); - force += forceToApply * impulseDtSeconds; + force += forceToApply; i.timeAppliedSeconds = nextTimeAppliedSeconds; } diff --git a/2d/rigidbody/rigidbody_2/dist/output.wasm b/2d/rigidbody/rigidbody_2/dist/output.wasm Binary files differindex 29c319a..fb79e45 100755 --- a/2d/rigidbody/rigidbody_2/dist/output.wasm +++ b/2d/rigidbody/rigidbody_2/dist/output.wasm diff --git a/2d/rigidbody/rigidbody_2/main.cpp b/2d/rigidbody/rigidbody_2/main.cpp index 123cf7e..44a3c53 100644 --- a/2d/rigidbody/rigidbody_2/main.cpp +++ b/2d/rigidbody/rigidbody_2/main.cpp @@ -69,7 +69,7 @@ struct Rigidbody { float32 impulseDtSeconds = nextTimeAppliedSeconds - i.timeAppliedSeconds; Vector2 forceToApply = i.force * (impulseDtSeconds / i.timeOfApplicationSeconds); - force += forceToApply * impulseDtSeconds; + force += forceToApply; // New! Increment the torque for each force torque += i.pointOfApplication.getPerp().dot(forceToApply); diff --git a/2d/rigidbody/rigidbody_3/dist/output.wasm b/2d/rigidbody/rigidbody_3/dist/output.wasm Binary files differindex b89435a..0a8a974 100755 --- a/2d/rigidbody/rigidbody_3/dist/output.wasm +++ b/2d/rigidbody/rigidbody_3/dist/output.wasm diff --git a/2d/rigidbody/rigidbody_3/main.cpp b/2d/rigidbody/rigidbody_3/main.cpp index e34f444..2a0af24 100644 --- a/2d/rigidbody/rigidbody_3/main.cpp +++ b/2d/rigidbody/rigidbody_3/main.cpp @@ -72,7 +72,7 @@ struct Rigidbody { float32 impulseDtSeconds = nextTimeAppliedSeconds - i.timeAppliedSeconds; Vector2 forceToApply = i.force * (impulseDtSeconds / i.timeOfApplicationSeconds); - force += forceToApply * impulseDtSeconds; + force += forceToApply; torque += i.pointOfApplication.getPerp().dot(forceToApply); i.timeAppliedSeconds = nextTimeAppliedSeconds; |