Skip to content

Commit 290ef21

Browse files
committed
Doh, sqrt returns positive. Math.abs our velocities
1 parent 022ce80 commit 290ef21

1 file changed

Lines changed: 20 additions & 10 deletions

File tree

src/physics/arcade/SeparateY.js

Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -82,8 +82,8 @@ var SeparateY = function (body1, body2, overlapOnly, bias)
8282
// We don't need costly sqrts if both masses are the same
8383
if (mass1 === mass2)
8484
{
85-
var bnv1 = (v2 > 0) ? v2 : v2 * -1;
86-
var bnv2 = (v1 > 0) ? v1 : v1 * -1;
85+
var bnv1 = Math.abs(v2) * ((v2 > 0) ? 1 : -1);
86+
var bnv2 = Math.abs(v1) * ((v1 > 0) ? 1 : -1);
8787

8888
var avg = (bnv1 + bnv2) * 0.5;
8989

@@ -92,6 +92,14 @@ var SeparateY = function (body1, body2, overlapOnly, bias)
9292

9393
ny1 = avg + nv1 * bounce1.y;
9494
ny2 = avg + nv2 * bounce2.y;
95+
96+
console.log('resolution 1');
97+
console.log('pre-impact v = body1', v1, 'body2', v2);
98+
console.log('post-impact v = body1', ny1, 'body2', ny2);
99+
console.log('avg', avg);
100+
console.log('nv', nv1, nv2);
101+
console.log('sqrt mult', bnv1, bnv2);
102+
console.log('delta', body1.deltaY(), body2.deltaY());
95103
}
96104
else
97105
{
@@ -108,21 +116,21 @@ var SeparateY = function (body1, body2, overlapOnly, bias)
108116

109117
ny1 = avg + nv1 * bounce1.y;
110118
ny2 = avg + nv2 * bounce2.y;
119+
120+
console.log('resolution 2');
121+
console.log('pre-impact v = body1', v1, 'body2', v2);
122+
console.log('post-impact v = body1', ny1, 'body2', ny2);
123+
console.log('avg', avg);
124+
console.log('nv', nv1, nv2);
125+
console.log('sqrt', bnv1, bnv2);
126+
console.log('delta', body1.deltaY(), body2.deltaY());
111127
}
112128

113129
// var total = v1 - v2;
114130
// ny1 = (((mass1 - mass2) * v1 + 2 * mass1 * v1) / (mass1 + mass2)) * bounce1.y;
115131
// ny2 = (total + ny1) * bounce2.y;
116132
// console.log('*1', ny1, ny2, 'vs', v1, v2, 'delta', body1.deltaY(), body2.deltaY());
117133

118-
console.log('resolution');
119-
console.log('body1', ny1, 'body2', ny2);
120-
console.log('speed', body1.speed, body2.speed);
121-
console.log('v1', v1, 'v2', v2);
122-
console.log('avg', avg);
123-
console.log('nv', nv1, nv2);
124-
console.log('sqrt', bnv1, bnv2);
125-
console.log('delta', body1.deltaY(), body2.deltaY());
126134

127135
// console.log('*1', ny1, ny2, 'vs', v1, v2, 'avg', avg, 'nv', nv1, nv2, 'bounce', body1.bounce.y, body2.bounce.y, 'delta', body1.deltaY(), body2.deltaY());
128136
// console.log('*1', ny1, ny2, 'vs', v1, v2, 'avg', avg, 'nv', nv1, nv2, 'bounce', body1.bounce.y, body2.bounce.y, 'delta', body1.deltaY(), body2.deltaY());
@@ -414,6 +422,8 @@ var SeparateY = function (body1, body2, overlapOnly, bias)
414422

415423
// Rebound check
416424

425+
console.log('SepY End', ny1, ny2);
426+
417427
velocity1.y = ny1;
418428
velocity2.y = ny2;
419429

0 commit comments

Comments
 (0)