Skip to content

Commit 09c2a2d

Browse files
committed
Testing new separation
1 parent bed716e commit 09c2a2d

6 files changed

Lines changed: 51 additions & 20 deletions

File tree

src/physics/arcade/BlockCheckX.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ var BlockCheckX = function (body1, body2, overlap)
2828
// Body1 is moving right and Body2 is blocked from going right any further
2929
if (body1MovingRight && body1OnLeft && body2.blocked.right)
3030
{
31-
console.log('BlockX 1', body1.x, overlap);
31+
// console.log('BlockX 1', body1.x, overlap);
3232

3333
body1.x -= overlap;
3434
body1.velocity.x = body1FullImpact;
@@ -39,7 +39,7 @@ var BlockCheckX = function (body1, body2, overlap)
3939
// Body2 is moving right and Body1 is blocked from going right any further
4040
if (body2MovingRight && body2OnLeft && body1.blocked.right)
4141
{
42-
console.log('BlockX 2', body2.x, overlap);
42+
// console.log('BlockX 2', body2.x, overlap);
4343

4444
body2.x -= overlap;
4545
body2.velocity.x = body2FullImpact;
@@ -50,7 +50,7 @@ var BlockCheckX = function (body1, body2, overlap)
5050
// Body1 is moving up and Body2 is blocked from going up any further
5151
if (body1MovingLeft && body2OnLeft && body2.blocked.left)
5252
{
53-
console.log('BlockX 3', body1.x, overlap);
53+
// console.log('BlockX 3', body1.x, overlap);
5454

5555
body1.x += overlap;
5656
body1.velocity.x = body1FullImpact;
@@ -61,7 +61,7 @@ var BlockCheckX = function (body1, body2, overlap)
6161
// Body2 is moving up and Body1 is blocked from going up any further
6262
if (body2MovingLeft && body1OnLeft && body1.blocked.left)
6363
{
64-
console.log('BlockX 4', body2.x, overlap);
64+
// console.log('BlockX 4', body2.x, overlap);
6565

6666
body2.x += overlap;
6767
body2.velocity.x = body2FullImpact;

src/physics/arcade/BlockCheckY.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ var BlockCheckY = function (body1, body2, overlap)
2828
// Body1 is moving down and Body2 is blocked from going down any further
2929
if (body1MovingDown && body1OnTop && body2.blocked.down)
3030
{
31-
console.log('BlockY 1', body1.y, overlap);
31+
// console.log('BlockY 1', body1.y, overlap);
3232

3333
body1.y -= overlap;
3434
body1.velocity.y = body1FullImpact;
@@ -39,7 +39,7 @@ var BlockCheckY = function (body1, body2, overlap)
3939
// Body2 is moving down and Body1 is blocked from going down any further
4040
if (body2MovingDown && body2OnTop && body1.blocked.down)
4141
{
42-
console.log('BlockY 2', body2.y, overlap);
42+
// console.log('BlockY 2', body2.y, overlap);
4343

4444
body2.y -= overlap;
4545
body2.velocity.y = body2FullImpact;
@@ -50,7 +50,7 @@ var BlockCheckY = function (body1, body2, overlap)
5050
// Body1 is moving up and Body2 is blocked from going up any further
5151
if (body1MovingUp && body2OnTop && body2.blocked.up)
5252
{
53-
console.log('BlockY 3', body1.y, overlap);
53+
// console.log('BlockY 3', body1.y, overlap);
5454

5555
body1.y += overlap;
5656
body1.velocity.y = body1FullImpact;
@@ -61,7 +61,7 @@ var BlockCheckY = function (body1, body2, overlap)
6161
// Body2 is moving up and Body1 is blocked from going up any further
6262
if (body2MovingUp && body1OnTop && body1.blocked.up)
6363
{
64-
console.log('BlockY 4', body2.y, overlap);
64+
// console.log('BlockY 4', body2.y, overlap);
6565

6666
body2.y += overlap;
6767
body2.velocity.y = body2FullImpact;

src/physics/arcade/ProcessX.js

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,19 @@ var RunProcessX = function (body1, body2, overlap1, overlap2, bodyStationary, bo
3535
overlap1 *= 0.5;
3636
overlap2 *= 0.5;
3737

38-
body1.x += overlap1;
39-
body2.x += overlap2;
38+
if (movingBody === body1)
39+
{
40+
body1.x += overlap2;
41+
body2.x += overlap1;
42+
}
43+
else
44+
{
45+
body1.x += overlap1;
46+
body2.x += overlap2;
47+
}
48+
49+
// body1.x += overlap1;
50+
// body2.x += overlap2;
4051

4152
body1.velocity.x = body1MassImpact;
4253
body2.velocity.x = body2MassImpact;

src/physics/arcade/ProcessY.js

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ var SetProcessY = function (b1Pushable, b2Pushable, b1MassImpact, b2MassImpact,
2121
body2FullImpact = b2FullImpact;
2222
};
2323

24-
var RunProcessY = function (body1, body2, overlap1, overlap2, bodyStationary, body2Direction, debug)
24+
var RunProcessY = function (body1, body2, overlap1, overlap2, bodyStationary, body2Direction, movingBody, debug)
2525
{
2626
if (body1Pushable && body2Pushable)
2727
{
@@ -73,7 +73,19 @@ var RunProcessY = function (body1, body2, overlap1, overlap2, bodyStationary, bo
7373
// Neither pushable, so base it on movement
7474
if (bodyStationary)
7575
{
76-
body1.y += overlap1;
76+
if (debug)
77+
{
78+
console.log(debug + '-3a :: body1', body1.y, 'body2', body2.y, 'overlap', overlap1, overlap2);
79+
}
80+
81+
if (movingBody === body1)
82+
{
83+
movingBody.y += overlap1;
84+
}
85+
else
86+
{
87+
movingBody.y += overlap2;
88+
}
7789
}
7890
else
7991
{

src/physics/arcade/SeparateX.js

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -98,31 +98,35 @@ var SeparateX = function (body1, body2, overlapOnly, bias)
9898
if (body1MovingLeft && body2OnLeft)
9999
{
100100
return ProcessX.RunProcessX(body1, body2, overlap, -overlap, body2Stationary, body2MovingRight, body1, 'PushX1');
101+
// return ProcessX.RunProcessX(body1, body2, overlap, -overlap, body2Stationary, body2MovingRight, body1);
101102
}
102103

103104
// Body2 hits Body1 on the right hand side
104105
if (body2MovingLeft && body1OnLeft)
105106
{
106107
return ProcessX.RunProcessX(body1, body2, -overlap, overlap, body1Stationary, body1MovingRight, body2, 'PushX2');
108+
// return ProcessX.RunProcessX(body1, body2, -overlap, overlap, body1Stationary, body1MovingRight, body2);
107109
}
108110

109111
// Body1 hits Body2 on the left hand side
110112
if (body1MovingRight && body1OnLeft)
111113
{
112114
return ProcessX.RunProcessX(body1, body2, overlap, -overlap, body2Stationary, body2MovingLeft, body1, 'PushX3');
115+
// return ProcessX.RunProcessX(body1, body2, overlap, -overlap, body2Stationary, body2MovingLeft, body1);
113116
}
114117

115118
// Body2 hits Body1 on the left hand side
116119
if (body2MovingRight && body2OnLeft)
117120
{
118121
return ProcessX.RunProcessX(body1, body2, -overlap, overlap, body1Stationary, body1MovingLeft, body2, 'PushX4');
122+
// return ProcessX.RunProcessX(body1, body2, -overlap, overlap, body1Stationary, body1MovingLeft, body2);
119123
}
120124

121125
console.log('uh oh');
122126
}
123127
else if (body1Immovable)
124128
{
125-
console.log('SepX 1');
129+
// console.log('SepX 1');
126130

127131
// Body1 is immovable
128132
if (blockedState === 1 || blockedState === 3)
@@ -145,7 +149,7 @@ var SeparateX = function (body1, body2, overlapOnly, bias)
145149
}
146150
else if (body2Immovable)
147151
{
148-
console.log('SepX 2');
152+
// console.log('SepX 2');
149153

150154
// Body2 is immovable
151155
if (blockedState === 2 || blockedState === 4)

src/physics/arcade/SeparateY.js

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -97,32 +97,36 @@ var SeparateY = function (body1, body2, overlapOnly, bias)
9797
// Body1 hits Body2 from below
9898
if (body1MovingUp && body2OnTop)
9999
{
100-
return ProcessY.RunProcessY(body1, body2, overlap, -overlap, body2Stationary, body2MovingDown, 'PushY1');
100+
// return ProcessY.RunProcessY(body1, body2, overlap, -overlap, body2Stationary, body2MovingDown, body1, 'PushY1');
101+
return ProcessY.RunProcessY(body1, body2, overlap, -overlap, body2Stationary, body2MovingDown, body1);
101102
}
102103

103104
// Body2 hits Body1 from below
104105
if (body2MovingUp && body1OnTop)
105106
{
106-
return ProcessY.RunProcessY(body1, body2, -overlap, overlap, body1Stationary, body1MovingDown, 'PushY2');
107+
// return ProcessY.RunProcessY(body1, body2, -overlap, overlap, body1Stationary, body1MovingDown, body2, 'PushY2');
108+
return ProcessY.RunProcessY(body1, body2, -overlap, overlap, body1Stationary, body1MovingDown, body2);
107109
}
108110

109111
// Body1 hits Body2 from above
110112
if (body1MovingDown && body1OnTop)
111113
{
112-
return ProcessY.RunProcessY(body1, body2, overlap, -overlap, body2Stationary, body2MovingUp, 'PushY3');
114+
// return ProcessY.RunProcessY(body1, body2, overlap, -overlap, body2Stationary, body2MovingUp, body1, 'PushY3');
115+
return ProcessY.RunProcessY(body1, body2, overlap, -overlap, body2Stationary, body2MovingUp, body1);
113116
}
114117

115118
// Body2 hits Body1 from above
116119
if (body2MovingDown && body2OnTop)
117120
{
118-
return ProcessY.RunProcessY(body1, body2, -overlap, overlap, body1Stationary, body1MovingUp, 'PushY4');
121+
// return ProcessY.RunProcessY(body1, body2, -overlap, overlap, body1Stationary, body1MovingUp, body2, 'PushY4');
122+
return ProcessY.RunProcessY(body1, body2, -overlap, overlap, body1Stationary, body1MovingUp, body2);
119123
}
120124

121125
console.log('uh oh');
122126
}
123127
else if (body1Immovable)
124128
{
125-
console.log('SepY 1');
129+
// console.log('SepY 1');
126130

127131
// Body1 is immovable
128132
if (blockedState === 1 || blockedState === 3)
@@ -145,7 +149,7 @@ var SeparateY = function (body1, body2, overlapOnly, bias)
145149
}
146150
else if (body2Immovable)
147151
{
148-
console.log('SepY 2');
152+
// console.log('SepY 2');
149153

150154
// Body2 is immovable
151155
if (blockedState === 2 || blockedState === 4)

0 commit comments

Comments
 (0)