添加检查圆重叠的盒子

This commit is contained in:
yhh
2021-05-28 16:13:10 +08:00
parent 8b7baf7f86
commit 4db8734a34
4 changed files with 12 additions and 8 deletions

View File

@@ -5536,13 +5536,13 @@ var es;
renderable.render(es.Graphics.instance.batcher, cam); renderable.render(es.Graphics.instance.batcher, cam);
}; };
Renderer.prototype.debugRender = function (scene) { Renderer.prototype.debugRender = function (scene) {
es.Physics.debugDraw(2);
for (var i = 0; i < scene.entities.count; i++) { for (var i = 0; i < scene.entities.count; i++) {
var entity = scene.entities.buffer[i]; var entity = scene.entities.buffer[i];
if (entity.enabled) { if (entity.enabled) {
entity.debugRender(es.Graphics.instance.batcher); entity.debugRender(es.Graphics.instance.batcher);
} }
} }
es.Physics.debugDraw(2);
}; };
return Renderer; return Renderer;
}()); }());
@@ -8192,9 +8192,11 @@ var es;
for (var potentials_1 = __values(potentials), potentials_1_1 = potentials_1.next(); !potentials_1_1.done; potentials_1_1 = potentials_1.next()) { for (var potentials_1 = __values(potentials), potentials_1_1 = potentials_1.next(); !potentials_1_1.done; potentials_1_1 = potentials_1.next()) {
var collider = potentials_1_1.value; var collider = potentials_1_1.value;
if (collider instanceof es.BoxCollider) { if (collider instanceof es.BoxCollider) {
if (collider.shape.overlaps(this._overlapTestCircle)) {
results[resultCounter] = collider; results[resultCounter] = collider;
resultCounter++; resultCounter++;
} }
}
else if (collider instanceof es.CircleCollider) { else if (collider instanceof es.CircleCollider) {
if (es.Collisions.rectToCircle(rect, collider.bounds.center, collider.bounds.width * 0.5)) { if (es.Collisions.rectToCircle(rect, collider.bounds.center, collider.bounds.width * 0.5)) {
results[resultCounter] = collider; results[resultCounter] = collider;

File diff suppressed because one or more lines are too long

View File

@@ -28,14 +28,14 @@ module es {
} }
protected debugRender(scene: Scene) { protected debugRender(scene: Scene) {
es.Physics.debugDraw(2);
for (let i = 0; i < scene.entities.count; i ++) { for (let i = 0; i < scene.entities.count; i ++) {
let entity = scene.entities.buffer[i]; let entity = scene.entities.buffer[i];
if (entity.enabled) { if (entity.enabled) {
entity.debugRender(Graphics.instance.batcher); entity.debugRender(Graphics.instance.batcher);
} }
} }
es.Physics.debugDraw(2);
} }
} }
} }

View File

@@ -231,8 +231,10 @@ module es {
let potentials = this.aabbBroadphase(rect, null, layerMask); let potentials = this.aabbBroadphase(rect, null, layerMask);
for (let collider of potentials) { for (let collider of potentials) {
if (collider instanceof BoxCollider) { if (collider instanceof BoxCollider) {
if (collider.shape.overlaps(this._overlapTestCircle)) {
results[resultCounter] = collider; results[resultCounter] = collider;
resultCounter ++; resultCounter ++;
}
} else if(collider instanceof CircleCollider) { } else if(collider instanceof CircleCollider) {
if (Collisions.rectToCircle(rect, collider.bounds.center, collider.bounds.width * 0.5)) { if (Collisions.rectToCircle(rect, collider.bounds.center, collider.bounds.width * 0.5)) {
results[resultCounter] = collider; results[resultCounter] = collider;