mirror of
https://github.com/photonstorm/phaser
synced 2025-02-16 14:08:28 +00:00
Testing sleep static fixes
This commit is contained in:
parent
bd67ed38a5
commit
f0d5280cf8
2 changed files with 44 additions and 13 deletions
|
@ -246,6 +246,10 @@ var Body = require('./Body');
|
||||||
var position = Common.indexOf(composite.bodies, body);
|
var position = Common.indexOf(composite.bodies, body);
|
||||||
if (position !== -1) {
|
if (position !== -1) {
|
||||||
Composite.removeBodyAt(composite, position);
|
Composite.removeBodyAt(composite, position);
|
||||||
|
|
||||||
|
// remove sleeping to allow pair removal
|
||||||
|
body.isSleeping = false;
|
||||||
|
body.sleepCounter = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (deep) {
|
if (deep) {
|
||||||
|
|
|
@ -53,6 +53,8 @@ var Common = require('../core/Common');
|
||||||
collisionActiveIndex = 0,
|
collisionActiveIndex = 0,
|
||||||
collision,
|
collision,
|
||||||
pair,
|
pair,
|
||||||
|
bodyA,
|
||||||
|
bodyB,
|
||||||
i;
|
i;
|
||||||
|
|
||||||
for (i = 0; i < collisionsLength; i++) {
|
for (i = 0; i < collisionsLength; i++) {
|
||||||
|
@ -90,11 +92,36 @@ var Common = require('../core/Common');
|
||||||
pair = pairsList[i];
|
pair = pairsList[i];
|
||||||
|
|
||||||
if (pair.timeUpdated < timestamp) {
|
if (pair.timeUpdated < timestamp) {
|
||||||
pairSetActive(pair, false, timestamp);
|
|
||||||
collisionEnd[collisionEndIndex++] = pair;
|
bodyA = pair.collision.bodyA;
|
||||||
|
bodyB = pair.collision.bodyB;
|
||||||
|
|
||||||
|
// if ((bodyA.isSleeping && bodyB.isSleeping) || bodyA.isStatic || bodyB.isStatic)
|
||||||
|
// {
|
||||||
|
// continue;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// keep pair if it is sleeping but not both static
|
||||||
|
// if ((bodyA.isSleeping || bodyA.isStatic) || (bodyB.isSleeping || bodyB.isStatic) && !(bodyA.isStatic && bodyB.isStatic)) {
|
||||||
|
// pairSetActive(pair, true, timestamp);
|
||||||
|
// continue;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// pairSetActive(pair, false, timestamp);
|
||||||
|
// collisionEnd[collisionEndIndex++] = pair;
|
||||||
|
|
||||||
|
// keep pair if it is sleeping but not both static
|
||||||
|
// if ((bodyA.isSleeping || bodyA.isStatic) && (bodyB.isSleeping || bodyB.isStatic)
|
||||||
|
// && !(bodyA.isStatic && bodyB.isStatic)) {
|
||||||
|
// continue;
|
||||||
|
// }
|
||||||
|
|
||||||
// remove inactive pairs
|
// remove inactive pairs
|
||||||
if (!pair.collision.bodyA.isSleeping && !pair.collision.bodyB.isSleeping) {
|
// if (!bodyA.isSleeping && !bodyB.isSleeping && !bodyA.isStatic && !bodyB.isStatic) {
|
||||||
|
if ((!bodyA.isSleeping || !bodyA.isStatic) && (!bodyB.isSleeping || !bodyB.isStatic)) {
|
||||||
|
console.log('deleted pair', bodyA, bodyB);
|
||||||
|
pairSetActive(pair, false, timestamp);
|
||||||
|
collisionEnd[collisionEndIndex++] = pair;
|
||||||
delete pairsTable[pair.id];
|
delete pairsTable[pair.id];
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|
Loading…
Add table
Reference in a new issue