Skip to content

Commit 0ba9d5b

Browse files
committed
World is now using a process queue for the colliders
1 parent 733ef1c commit 0ba9d5b

2 files changed

Lines changed: 10 additions & 6 deletions

File tree

v3/src/physics/arcade/Collider.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,8 @@ var Collider = new Class({
3838
{
3939
this.world.removeCollider(this);
4040

41+
this.active = false;
42+
4143
this.world = null;
4244

4345
this.object1 = null;

v3/src/physics/arcade/World.js

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ var GetValue = require('../../utils/object/GetValue');
88
var Rectangle = require('../../geom/rectangle/Rectangle');
99
var RTree = require('../../structs/RTree');
1010
var Set = require('../../structs/Set');
11+
var ProcessQueue = require('../../structs/ProcessQueue');
1112
var StaticBody = require('./StaticBody');
1213
var Vector2 = require('../../math/Vector2');
1314

@@ -27,7 +28,7 @@ var World = new Class({
2728
// Static Bodies
2829
this.staticBodies = new Set();
2930

30-
this.colliders = [];
31+
this.colliders = new ProcessQueue();
3132

3233
this.gravity = new Vector2(GetValue(config, 'gravity.x', 0), GetValue(config, 'gravity.y', 0));
3334

@@ -231,7 +232,7 @@ var World = new Class({
231232

232233
var collider = new Collider(this, false, object1, object2, collideCallback, processCallback, callbackContext);
233234

234-
this.colliders.push(collider);
235+
this.colliders.add(collider);
235236

236237
return collider;
237238
},
@@ -244,14 +245,14 @@ var World = new Class({
244245

245246
var collider = new Collider(this, true, object1, object2, collideCallback, processCallback, callbackContext);
246247

247-
this.colliders.push(collider);
248+
this.colliders.add(collider);
248249

249250
return collider;
250251
},
251252

252253
removeCollider: function (collider)
253254
{
254-
// TODO
255+
this.colliders.remove(collider);
255256
},
256257

257258
update: function (time, delta)
@@ -288,10 +289,11 @@ var World = new Class({
288289
this.tree.load(bodies);
289290

290291
// Process any colliders
292+
var colliders = this.colliders.update();
291293

292-
for (i = 0; i < this.colliders.length; i++)
294+
for (i = 0; i < colliders.length; i++)
293295
{
294-
var collider = this.colliders[i];
296+
var collider = colliders[i];
295297

296298
if (collider.active)
297299
{

0 commit comments

Comments
 (0)