excalibur 0.26.0-alpha.311 → 0.26.0-alpha.312
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +1 -0
- package/build/dist/Collision/Detection/DynamicTreeCollisionProcessor.d.ts +2 -2
- package/build/dist/Collision/Detection/DynamicTreeCollisionProcessor.js +9 -26
- package/build/dist/Collision/Detection/DynamicTreeCollisionProcessor.js.map +1 -1
- package/build/dist/Collision/Detection/Pair.d.ts +5 -0
- package/build/dist/Collision/Detection/Pair.js +19 -0
- package/build/dist/Collision/Detection/Pair.js.map +1 -1
- package/build/dist/Loader.js +16 -14
- package/build/dist/Loader.js.map +1 -1
- package/build/dist/excalibur.js +46 -42
- package/build/dist/excalibur.js.map +1 -1
- package/build/dist/excalibur.min.js +1 -1
- package/build/dist/excalibur.min.js.LICENSE.txt +1 -1
- package/build/dist/excalibur.min.js.map +1 -1
- package/build/dist/index.js +2 -2
- package/build/esm/Collision/Detection/DynamicTreeCollisionProcessor.d.ts +2 -2
- package/build/esm/Collision/Detection/Pair.d.ts +5 -0
- package/build/esm/excalibur.js +46 -42
- package/build/esm/excalibur.js.map +1 -1
- package/build/esm/excalibur.min.js +1 -1
- package/build/esm/excalibur.min.js.LICENSE.txt +1 -1
- package/build/esm/excalibur.min.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -28,6 +28,7 @@ This project adheres to [Semantic Versioning](http://semver.org/).
|
|
|
28
28
|
|
|
29
29
|
### Fixed
|
|
30
30
|
|
|
31
|
+
- Fixed issue where fast moving `CompositeCollider`s were erroneously generating pairs for their constituent parts
|
|
31
32
|
- Fixed Safari 13.1 crash when booting Excalibur because of they odd MediaQuery API in older Safari
|
|
32
33
|
- Fixed issue where pointers did not work because of missing types
|
|
33
34
|
- Fixed issue with `ArcadeSolver` where stacked/overlapped tiles would double solve the position of the collider for the same overlap
|
|
@@ -10,7 +10,7 @@ import { ExcaliburGraphicsContext } from '../..';
|
|
|
10
10
|
*/
|
|
11
11
|
export declare class DynamicTreeCollisionProcessor implements CollisionProcessor {
|
|
12
12
|
private _dynamicCollisionTree;
|
|
13
|
-
private
|
|
13
|
+
private _pairs;
|
|
14
14
|
private _collisionPairCache;
|
|
15
15
|
private _colliders;
|
|
16
16
|
getColliders(): readonly Collider[];
|
|
@@ -22,7 +22,7 @@ export declare class DynamicTreeCollisionProcessor implements CollisionProcessor
|
|
|
22
22
|
* Untracks a physics body
|
|
23
23
|
*/
|
|
24
24
|
untrack(target: Collider): void;
|
|
25
|
-
private
|
|
25
|
+
private _pairExists;
|
|
26
26
|
/**
|
|
27
27
|
* Detects potential collision pairs in a broadphase approach with the dynamic aabb tree strategy
|
|
28
28
|
*/
|
|
@@ -14,7 +14,7 @@ import { CompositeCollider } from '../Colliders/CompositeCollider';
|
|
|
14
14
|
export class DynamicTreeCollisionProcessor {
|
|
15
15
|
constructor() {
|
|
16
16
|
this._dynamicCollisionTree = new DynamicTree();
|
|
17
|
-
this.
|
|
17
|
+
this._pairs = new Set();
|
|
18
18
|
this._collisionPairCache = [];
|
|
19
19
|
this._colliders = [];
|
|
20
20
|
}
|
|
@@ -68,27 +68,10 @@ export class DynamicTreeCollisionProcessor {
|
|
|
68
68
|
this._dynamicCollisionTree.untrackCollider(target);
|
|
69
69
|
}
|
|
70
70
|
}
|
|
71
|
-
|
|
72
|
-
// if the collision pair must be 2 separate colliders
|
|
73
|
-
// Also separate owners for composite colliders
|
|
74
|
-
if ((colliderA.id !== null &&
|
|
75
|
-
colliderB.id !== null &&
|
|
76
|
-
colliderA.id === colliderB.id) ||
|
|
77
|
-
(colliderA.owner !== null &&
|
|
78
|
-
colliderB.owner !== null &&
|
|
79
|
-
colliderA.owner === colliderB.owner)) {
|
|
80
|
-
return false;
|
|
81
|
-
}
|
|
71
|
+
_pairExists(colliderA, colliderB) {
|
|
82
72
|
// if the collision pair has been calculated already short circuit
|
|
83
73
|
const hash = Pair.calculatePairHash(colliderA.id, colliderB.id);
|
|
84
|
-
|
|
85
|
-
return false; // pair exists easy exit return false
|
|
86
|
-
}
|
|
87
|
-
// if the pair has a member with zero dimension
|
|
88
|
-
if (colliderA.localBounds.hasZeroDimensions() || colliderB.localBounds.hasZeroDimensions()) {
|
|
89
|
-
return false;
|
|
90
|
-
}
|
|
91
|
-
return Pair.canCollide(colliderA, colliderB);
|
|
74
|
+
return this._pairs.has(hash);
|
|
92
75
|
}
|
|
93
76
|
/**
|
|
94
77
|
* Detects potential collision pairs in a broadphase approach with the dynamic aabb tree strategy
|
|
@@ -103,16 +86,16 @@ export class DynamicTreeCollisionProcessor {
|
|
|
103
86
|
});
|
|
104
87
|
// clear old list of collision pairs
|
|
105
88
|
this._collisionPairCache = [];
|
|
106
|
-
this.
|
|
89
|
+
this._pairs.clear();
|
|
107
90
|
// check for normal collision pairs
|
|
108
91
|
let collider;
|
|
109
92
|
for (let j = 0, l = potentialColliders.length; j < l; j++) {
|
|
110
93
|
collider = potentialColliders[j];
|
|
111
94
|
// Query the collision tree for potential colliders
|
|
112
95
|
this._dynamicCollisionTree.query(collider, (other) => {
|
|
113
|
-
if (this.
|
|
96
|
+
if (!this._pairExists(collider, other) && Pair.canCollide(collider, other)) {
|
|
114
97
|
const pair = new Pair(collider, other);
|
|
115
|
-
this.
|
|
98
|
+
this._pairs.add(pair.id);
|
|
116
99
|
this._collisionPairCache.push(pair);
|
|
117
100
|
}
|
|
118
101
|
// Always return false, to query whole tree. Returning true in the query method stops searching
|
|
@@ -152,7 +135,7 @@ export class DynamicTreeCollisionProcessor {
|
|
|
152
135
|
let minCollider;
|
|
153
136
|
let minTranslate = new Vector(Infinity, Infinity);
|
|
154
137
|
this._dynamicCollisionTree.rayCastQuery(ray, updateDistance + Physics.surfaceEpsilon * 2, (other) => {
|
|
155
|
-
if (collider
|
|
138
|
+
if (!this._pairExists(collider, other) && Pair.canCollide(collider, other)) {
|
|
156
139
|
const hitPoint = other.rayCast(ray, updateDistance + Physics.surfaceEpsilon * 10);
|
|
157
140
|
if (hitPoint) {
|
|
158
141
|
const translate = hitPoint.sub(origin);
|
|
@@ -166,8 +149,8 @@ export class DynamicTreeCollisionProcessor {
|
|
|
166
149
|
});
|
|
167
150
|
if (minCollider && Vector.isValid(minTranslate)) {
|
|
168
151
|
const pair = new Pair(collider, minCollider);
|
|
169
|
-
if (!this.
|
|
170
|
-
this.
|
|
152
|
+
if (!this._pairs.has(pair.id)) {
|
|
153
|
+
this._pairs.add(pair.id);
|
|
171
154
|
this._collisionPairCache.push(pair);
|
|
172
155
|
}
|
|
173
156
|
// move the fast moving object to the other body
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DynamicTreeCollisionProcessor.js","sourceRoot":"","sources":["../../../../src/engine/Collision/Detection/DynamicTreeCollisionProcessor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAErC,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGjD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAGnE;;;GAGG;AACH,MAAM,OAAO,6BAA6B;IAA1C;QACU,0BAAqB,GAAG,IAAI,WAAW,EAAY,CAAC;QACpD,
|
|
1
|
+
{"version":3,"file":"DynamicTreeCollisionProcessor.js","sourceRoot":"","sources":["../../../../src/engine/Collision/Detection/DynamicTreeCollisionProcessor.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,11 @@ export declare class Pair {
|
|
|
9
9
|
colliderB: Collider;
|
|
10
10
|
id: string;
|
|
11
11
|
constructor(colliderA: Collider, colliderB: Collider);
|
|
12
|
+
/**
|
|
13
|
+
* Returns whether a it is allowed for 2 colliders in a Pair to collide
|
|
14
|
+
* @param colliderA
|
|
15
|
+
* @param colliderB
|
|
16
|
+
*/
|
|
12
17
|
static canCollide(colliderA: Collider, colliderB: Collider): boolean;
|
|
13
18
|
/**
|
|
14
19
|
* Returns whether or not it is possible for the pairs to collide
|
|
@@ -10,10 +10,29 @@ export class Pair {
|
|
|
10
10
|
this.id = null;
|
|
11
11
|
this.id = Pair.calculatePairHash(colliderA.id, colliderB.id);
|
|
12
12
|
}
|
|
13
|
+
/**
|
|
14
|
+
* Returns whether a it is allowed for 2 colliders in a Pair to collide
|
|
15
|
+
* @param colliderA
|
|
16
|
+
* @param colliderB
|
|
17
|
+
*/
|
|
13
18
|
static canCollide(colliderA, colliderB) {
|
|
14
19
|
var _a, _b;
|
|
15
20
|
const bodyA = (_a = colliderA === null || colliderA === void 0 ? void 0 : colliderA.owner) === null || _a === void 0 ? void 0 : _a.get(BodyComponent);
|
|
16
21
|
const bodyB = (_b = colliderB === null || colliderB === void 0 ? void 0 : colliderB.owner) === null || _b === void 0 ? void 0 : _b.get(BodyComponent);
|
|
22
|
+
// Prevent self collision
|
|
23
|
+
if (colliderA.id === colliderB.id) {
|
|
24
|
+
return false;
|
|
25
|
+
}
|
|
26
|
+
// Colliders with the same owner do not collide (composite colliders)
|
|
27
|
+
if (colliderA.owner &&
|
|
28
|
+
colliderB.owner &&
|
|
29
|
+
colliderA.owner.id === colliderB.owner.id) {
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
// if the pair has a member with zero dimension don't collide
|
|
33
|
+
if (colliderA.localBounds.hasZeroDimensions() || colliderB.localBounds.hasZeroDimensions()) {
|
|
34
|
+
return false;
|
|
35
|
+
}
|
|
17
36
|
// Body's needed for collision in the current state
|
|
18
37
|
// TODO can we collide without a body?
|
|
19
38
|
if (!bodyA || !bodyB) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Pair.js","sourceRoot":"","sources":["../../../../src/engine/Collision/Detection/Pair.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAIjD;;GAEG;AACH,MAAM,OAAO,IAAI;IAEf,YAAmB,SAAmB,EAAS,SAAmB;QAA/C,cAAS,GAAT,SAAS,CAAU;QAAS,cAAS,GAAT,SAAS,CAAU;QAD3D,OAAE,GAAW,IAAI,CAAC;QAEvB,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAAE,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC;IAC/D,CAAC;
|
|
1
|
+
{"version":3,"file":"Pair.js","sourceRoot":"","sources":["../../../../src/engine/Collision/Detection/Pair.ts"],"names":[],"mappings":"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"}
|
package/build/dist/Loader.js
CHANGED
|
@@ -294,20 +294,22 @@ export class Loader extends Class {
|
|
|
294
294
|
return this._resourceCount > 0 ? clamp(this._numLoaded, 0, this._resourceCount) / this._resourceCount : 1;
|
|
295
295
|
}
|
|
296
296
|
_positionPlayButton() {
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
this.
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
297
|
+
if (this._engine) {
|
|
298
|
+
const screenHeight = this._engine.screen.viewport.height;
|
|
299
|
+
const screenWidth = this._engine.screen.viewport.width;
|
|
300
|
+
if (this._playButtonRootElement) {
|
|
301
|
+
const left = this._engine.canvas.offsetLeft;
|
|
302
|
+
const top = this._engine.canvas.offsetTop;
|
|
303
|
+
const buttonWidth = this._playButton.clientWidth;
|
|
304
|
+
const buttonHeight = this._playButton.clientHeight;
|
|
305
|
+
if (this.playButtonPosition) {
|
|
306
|
+
this._playButtonRootElement.style.left = `${this.playButtonPosition.x}px`;
|
|
307
|
+
this._playButtonRootElement.style.top = `${this.playButtonPosition.y}px`;
|
|
308
|
+
}
|
|
309
|
+
else {
|
|
310
|
+
this._playButtonRootElement.style.left = `${left + screenWidth / 2 - buttonWidth / 2}px`;
|
|
311
|
+
this._playButtonRootElement.style.top = `${top + screenHeight / 2 - buttonHeight / 2 + 100}px`;
|
|
312
|
+
}
|
|
311
313
|
}
|
|
312
314
|
}
|
|
313
315
|
}
|
package/build/dist/Loader.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Loader.js","sourceRoot":"","sources":["../../src/engine/Loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAG3C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAE5C,OAAO,OAAO,MAAM,mBAAmB,CAAC;AACxC,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAE3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgEG;AACH,MAAM,OAAO,MAAO,SAAQ,KAAK;IAgH/B;;OAEG;IACH,YAAY,SAA2B;QACrC,KAAK,EAAE,CAAC;QAnHH,WAAM,GAAW,IAAI,MAAM,CAAC;YACjC,SAAS,EAAE,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;SAC3B,CAAC,CAAC;QACK,kBAAa,GAAoB,EAAE,CAAC;QACpC,WAAM,GAAG,CAAC,CAAC;QAEX,qBAAgB,GAAY,KAAK,CAAC;QAClC,mBAAc,GAAW,CAAC,CAAC;QAC3B,eAAU,GAAW,CAAC,CAAC;QACvB,oBAAe,GAA8B,EAAE,CAAC;QAChD,iBAAY,GAA8B,EAAE,CAAC;QAGrD,qBAAqB;QAErB,gEAAgE;QACzD,SAAI,GAAG,OAAO,CAAC;QACf,cAAS,GAAG,GAAG,CAAC;QAChB,eAAU,GAAG,GAAG,CAAC;QAiBxB;;WAEG;QACI,oBAAe,GAAU,KAAK,CAAC,KAAK,CAAC;QAE5C;;WAEG;QACI,oBAAe,GAAW,SAAS,CAAC;QAYpC,uBAAkB,GAAY,KAAK,CAAC;QAU3C,oCAAoC;QAC1B,sBAAiB,GAAW,SAAS,CAAC,QAAQ,EAAE,CAAC;QAwB3D;;WAEG;QACI,mBAAc,GAAW,WAAW,CAAC;QAE5C;;WAEG;QACI,uBAAkB,GAAG,GAAG,EAAE;YAC/B,IAAI,aAAa,GAAsB,QAAQ,CAAC,cAAc,CAAC,gBAAgB,CAAsB,CAAC;YACtG,IAAI,CAAC,aAAa,EAAE;gBAClB,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;aAClD;YAED,aAAa,CAAC,EAAE,GAAG,gBAAgB,CAAC;YACpC,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC;YAChD,aAAa,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;YACrC,OAAO,aAAa,CAAC;QACvB,CAAC,CAAC;QAwHM,qBAAgB,GAAG,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE;YACrD,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC;QAClC,CAAC,CAAC,CAAC;QAlHD,IAAI,SAAS,EAAE;YACb,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;SAC9B;IACH,CAAC;IAzED,IAAc,MAAM;QAClB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACvB,IAAI,CAAC,aAAa,GAAG,IAAI,KAAK,EAAE,CAAC;YACjC,IAAI,CAAC,aAAa,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC;SACpC;QAED,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAGD,IAAW,qBAAqB;QAC9B,OAAO,IAAI,CAAC,sBAAsB,CAAC;IACrC,CAAC;IACD,IAAW,iBAAiB;QAC1B,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACjC,CAAC;IAMD,IAAc,WAAW;QACvB,MAAM,YAAY,GAAG,QAAQ,CAAC,cAAc,CAAC,qBAAqB,CAAC,CAAC;QACpE,IAAI,YAAY,EAAE;YAChB,IAAI,CAAC,sBAAsB,GAAG,YAAY,CAAC;SAC5C;QACD,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE;YAChC,IAAI,CAAC,sBAAsB,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAC5D,IAAI,CAAC,sBAAsB,CAAC,EAAE,GAAG,qBAAqB,CAAC;YACvD,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC;YACxD,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;SACxD;QACD,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACrB,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YACnD,IAAI,CAAC,WAAW,CAAC,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC;YACtD,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;SAC7C;QACD,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;YAC5B,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACpD,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;SAClE;QACD,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACjC,CAAC;IAiCM,UAAU,CAAC,MAAc;QAC9B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;QAC9C,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;IAClD,CAAC;IAED;;;OAGG;IACI,WAAW,CAAC,QAAuB;QACxC,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAC1B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAClC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC3B,IAAI,CAAC,cAAc,EAAE,CAAC;IACxB,CAAC;IAED;;;OAGG;IACI,YAAY,CAAC,SAA0B;QAC5C,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC;QAE7B,KAAK,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;YACpB,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;SAChC;IACH,CAAC;IAED;;OAEG;IACI,QAAQ;QACb,OAAO,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,cAAc,CAAC;IACjD,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,cAAc;;QACzB,IAAI,IAAI,CAAC,kBAAkB,EAAE;YAC3B,IAAI,CAAC,cAAc,EAAE,CAAC;YACtB,oEAAoE;YACpE,MAAM,KAAK,CAAC,GAAG,EAAE,MAAA,IAAI,CAAC,OAAO,0CAAE,KAAK,CAAC,CAAC;SACvC;aAAM;YACL,MAAM,aAAa,GAAG,GAAG,EAAE;gBACzB,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC7B,CAAC,CAAC;YACF,IAAI,MAAA,IAAI,CAAC,OAAO,0CAAE,OAAO,EAAE;gBACzB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;aACzD;YACD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;YAC7B,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;YACzC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,GAAkB,EAAE,EAAE;gBAC7D,IAAI,GAAG,CAAC,GAAG,KAAK,OAAO,EAAE;oBACvB,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;iBAC1B;YACH,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC3B,MAAM,iBAAiB,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;gBACtD,MAAM,kBAAkB,GAAG,CAAC,CAAQ,EAAE,EAAE;;oBACtC,8EAA8E;oBAC9E,CAAC,CAAC,eAAe,EAAE,CAAC;oBACpB,0BAA0B;oBAC1B,IAAI,CAAC,cAAc,EAAE,CAAC;oBACtB,IAAI,MAAA,IAAI,CAAC,OAAO,0CAAE,OAAO,EAAE;wBACzB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;qBAC1D;oBACD,OAAO,EAAE,CAAC;gBACZ,CAAC,CAAC;gBACF,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;gBAC/D,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,UAAU,EAAE,kBAAkB,CAAC,CAAC;gBAClE,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;YACrE,CAAC,CAAC,CAAC;YAEH,OAAO,MAAM,iBAAiB,CAAC;SAChC;IACH,CAAC;IAEM,cAAc;QACnB,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;QAC9B,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;IAC1C,CAAC;IAED;;OAEG;IACI,OAAO;QACZ,IAAI,IAAI,CAAC,sBAAsB,CAAC,aAAa,EAAE;YAC7C,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YACjE,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;YACvD,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC5C,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;YACnC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;YAC/B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;SACzB;IACH,CAAC;IAED,MAAM,CAAC,OAAe,EAAE,MAAc;QACpC,cAAc;IAChB,CAAC;IAQM,kBAAkB;QACvB,OAAO,IAAI,CAAC,gBAAgB,CAAC;IAC/B,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,IAAI;;QACf,MAAM,CAAA,MAAA,IAAI,CAAC,MAAM,0CAAE,MAAM,EAAE,CAAA,CAAC,CAAC,2BAA2B;QAExD,MAAM,OAAO,CAAC,GAAG,CACf,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAC3B,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE;YACpB,mBAAmB;YACnB,IAAI,CAAC,UAAU,EAAE,CAAC;QACpB,CAAC,CAAC,CACH,CACF,CAAC;QACF,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAExB,mDAAmD;QACnD,MAAM,KAAK,CAAC,GAAG,EAAE,MAAA,IAAI,CAAC,OAAO,0CAAE,KAAK,CAAC,CAAC;QAEtC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAC5B,oDAAoD;QACpD,2DAA2D;QAC3D,4DAA4D;QAC5D,MAAM,QAAQ,CAAC,MAAM,EAAE,CAAC;QAExB,OAAO,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;IAC1C,CAAC;IAEM,oBAAoB;QACzB,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAED;;OAEG;IACH,IAAW,QAAQ;QACjB,OAAO,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5G,CAAC;IAEO,mBAAmB;QACzB,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"Loader.js","sourceRoot":"","sources":["../../src/engine/Loader.ts"],"names":[],"mappings":"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"}
|
package/build/dist/excalibur.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* excalibur - 0.26.0-alpha.
|
|
2
|
+
* excalibur - 0.26.0-alpha.312+df1acb3 - 2021-11-28
|
|
3
3
|
* https://github.com/excaliburjs/Excalibur
|
|
4
4
|
* Copyright (c) 2021 Excalibur.js <https://github.com/excaliburjs/Excalibur/graphs/contributors>
|
|
5
5
|
* Licensed BSD-2-Clause
|
|
@@ -10678,20 +10678,22 @@ class Loader extends Class {
|
|
|
10678
10678
|
return this._resourceCount > 0 ? clamp(this._numLoaded, 0, this._resourceCount) / this._resourceCount : 1;
|
|
10679
10679
|
}
|
|
10680
10680
|
_positionPlayButton() {
|
|
10681
|
-
|
|
10682
|
-
|
|
10683
|
-
|
|
10684
|
-
|
|
10685
|
-
|
|
10686
|
-
|
|
10687
|
-
|
|
10688
|
-
|
|
10689
|
-
this.
|
|
10690
|
-
|
|
10691
|
-
|
|
10692
|
-
|
|
10693
|
-
|
|
10694
|
-
|
|
10681
|
+
if (this._engine) {
|
|
10682
|
+
const screenHeight = this._engine.screen.viewport.height;
|
|
10683
|
+
const screenWidth = this._engine.screen.viewport.width;
|
|
10684
|
+
if (this._playButtonRootElement) {
|
|
10685
|
+
const left = this._engine.canvas.offsetLeft;
|
|
10686
|
+
const top = this._engine.canvas.offsetTop;
|
|
10687
|
+
const buttonWidth = this._playButton.clientWidth;
|
|
10688
|
+
const buttonHeight = this._playButton.clientHeight;
|
|
10689
|
+
if (this.playButtonPosition) {
|
|
10690
|
+
this._playButtonRootElement.style.left = `${this.playButtonPosition.x}px`;
|
|
10691
|
+
this._playButtonRootElement.style.top = `${this.playButtonPosition.y}px`;
|
|
10692
|
+
}
|
|
10693
|
+
else {
|
|
10694
|
+
this._playButtonRootElement.style.left = `${left + screenWidth / 2 - buttonWidth / 2}px`;
|
|
10695
|
+
this._playButtonRootElement.style.top = `${top + screenHeight / 2 - buttonHeight / 2 + 100}px`;
|
|
10696
|
+
}
|
|
10695
10697
|
}
|
|
10696
10698
|
}
|
|
10697
10699
|
}
|
|
@@ -11676,10 +11678,29 @@ class Pair {
|
|
|
11676
11678
|
this.id = null;
|
|
11677
11679
|
this.id = Pair.calculatePairHash(colliderA.id, colliderB.id);
|
|
11678
11680
|
}
|
|
11681
|
+
/**
|
|
11682
|
+
* Returns whether a it is allowed for 2 colliders in a Pair to collide
|
|
11683
|
+
* @param colliderA
|
|
11684
|
+
* @param colliderB
|
|
11685
|
+
*/
|
|
11679
11686
|
static canCollide(colliderA, colliderB) {
|
|
11680
11687
|
var _a, _b;
|
|
11681
11688
|
const bodyA = (_a = colliderA === null || colliderA === void 0 ? void 0 : colliderA.owner) === null || _a === void 0 ? void 0 : _a.get(BodyComponent);
|
|
11682
11689
|
const bodyB = (_b = colliderB === null || colliderB === void 0 ? void 0 : colliderB.owner) === null || _b === void 0 ? void 0 : _b.get(BodyComponent);
|
|
11690
|
+
// Prevent self collision
|
|
11691
|
+
if (colliderA.id === colliderB.id) {
|
|
11692
|
+
return false;
|
|
11693
|
+
}
|
|
11694
|
+
// Colliders with the same owner do not collide (composite colliders)
|
|
11695
|
+
if (colliderA.owner &&
|
|
11696
|
+
colliderB.owner &&
|
|
11697
|
+
colliderA.owner.id === colliderB.owner.id) {
|
|
11698
|
+
return false;
|
|
11699
|
+
}
|
|
11700
|
+
// if the pair has a member with zero dimension don't collide
|
|
11701
|
+
if (colliderA.localBounds.hasZeroDimensions() || colliderB.localBounds.hasZeroDimensions()) {
|
|
11702
|
+
return false;
|
|
11703
|
+
}
|
|
11683
11704
|
// Body's needed for collision in the current state
|
|
11684
11705
|
// TODO can we collide without a body?
|
|
11685
11706
|
if (!bodyA || !bodyB) {
|
|
@@ -12276,7 +12297,7 @@ class Ray {
|
|
|
12276
12297
|
class DynamicTreeCollisionProcessor {
|
|
12277
12298
|
constructor() {
|
|
12278
12299
|
this._dynamicCollisionTree = new DynamicTree();
|
|
12279
|
-
this.
|
|
12300
|
+
this._pairs = new Set();
|
|
12280
12301
|
this._collisionPairCache = [];
|
|
12281
12302
|
this._colliders = [];
|
|
12282
12303
|
}
|
|
@@ -12330,27 +12351,10 @@ class DynamicTreeCollisionProcessor {
|
|
|
12330
12351
|
this._dynamicCollisionTree.untrackCollider(target);
|
|
12331
12352
|
}
|
|
12332
12353
|
}
|
|
12333
|
-
|
|
12334
|
-
// if the collision pair must be 2 separate colliders
|
|
12335
|
-
// Also separate owners for composite colliders
|
|
12336
|
-
if ((colliderA.id !== null &&
|
|
12337
|
-
colliderB.id !== null &&
|
|
12338
|
-
colliderA.id === colliderB.id) ||
|
|
12339
|
-
(colliderA.owner !== null &&
|
|
12340
|
-
colliderB.owner !== null &&
|
|
12341
|
-
colliderA.owner === colliderB.owner)) {
|
|
12342
|
-
return false;
|
|
12343
|
-
}
|
|
12354
|
+
_pairExists(colliderA, colliderB) {
|
|
12344
12355
|
// if the collision pair has been calculated already short circuit
|
|
12345
12356
|
const hash = Pair.calculatePairHash(colliderA.id, colliderB.id);
|
|
12346
|
-
|
|
12347
|
-
return false; // pair exists easy exit return false
|
|
12348
|
-
}
|
|
12349
|
-
// if the pair has a member with zero dimension
|
|
12350
|
-
if (colliderA.localBounds.hasZeroDimensions() || colliderB.localBounds.hasZeroDimensions()) {
|
|
12351
|
-
return false;
|
|
12352
|
-
}
|
|
12353
|
-
return Pair.canCollide(colliderA, colliderB);
|
|
12357
|
+
return this._pairs.has(hash);
|
|
12354
12358
|
}
|
|
12355
12359
|
/**
|
|
12356
12360
|
* Detects potential collision pairs in a broadphase approach with the dynamic aabb tree strategy
|
|
@@ -12365,16 +12369,16 @@ class DynamicTreeCollisionProcessor {
|
|
|
12365
12369
|
});
|
|
12366
12370
|
// clear old list of collision pairs
|
|
12367
12371
|
this._collisionPairCache = [];
|
|
12368
|
-
this.
|
|
12372
|
+
this._pairs.clear();
|
|
12369
12373
|
// check for normal collision pairs
|
|
12370
12374
|
let collider;
|
|
12371
12375
|
for (let j = 0, l = potentialColliders.length; j < l; j++) {
|
|
12372
12376
|
collider = potentialColliders[j];
|
|
12373
12377
|
// Query the collision tree for potential colliders
|
|
12374
12378
|
this._dynamicCollisionTree.query(collider, (other) => {
|
|
12375
|
-
if (this.
|
|
12379
|
+
if (!this._pairExists(collider, other) && Pair.canCollide(collider, other)) {
|
|
12376
12380
|
const pair = new Pair(collider, other);
|
|
12377
|
-
this.
|
|
12381
|
+
this._pairs.add(pair.id);
|
|
12378
12382
|
this._collisionPairCache.push(pair);
|
|
12379
12383
|
}
|
|
12380
12384
|
// Always return false, to query whole tree. Returning true in the query method stops searching
|
|
@@ -12414,7 +12418,7 @@ class DynamicTreeCollisionProcessor {
|
|
|
12414
12418
|
let minCollider;
|
|
12415
12419
|
let minTranslate = new Vector(Infinity, Infinity);
|
|
12416
12420
|
this._dynamicCollisionTree.rayCastQuery(ray, updateDistance + Physics.surfaceEpsilon * 2, (other) => {
|
|
12417
|
-
if (collider
|
|
12421
|
+
if (!this._pairExists(collider, other) && Pair.canCollide(collider, other)) {
|
|
12418
12422
|
const hitPoint = other.rayCast(ray, updateDistance + Physics.surfaceEpsilon * 10);
|
|
12419
12423
|
if (hitPoint) {
|
|
12420
12424
|
const translate = hitPoint.sub(origin);
|
|
@@ -12428,8 +12432,8 @@ class DynamicTreeCollisionProcessor {
|
|
|
12428
12432
|
});
|
|
12429
12433
|
if (minCollider && Vector.isValid(minTranslate)) {
|
|
12430
12434
|
const pair = new Pair(collider, minCollider);
|
|
12431
|
-
if (!this.
|
|
12432
|
-
this.
|
|
12435
|
+
if (!this._pairs.has(pair.id)) {
|
|
12436
|
+
this._pairs.add(pair.id);
|
|
12433
12437
|
this._collisionPairCache.push(pair);
|
|
12434
12438
|
}
|
|
12435
12439
|
// move the fast moving object to the other body
|
|
@@ -28836,7 +28840,7 @@ Promises_Promise = Promise_1 = Promises_decorate([
|
|
|
28836
28840
|
* The current Excalibur version string
|
|
28837
28841
|
* @description `process.env.__EX_VERSION` gets replaced by Webpack on build
|
|
28838
28842
|
*/
|
|
28839
|
-
const EX_VERSION = "0.26.0-alpha.
|
|
28843
|
+
const EX_VERSION = "0.26.0-alpha.312+df1acb3";
|
|
28840
28844
|
|
|
28841
28845
|
polyfill();
|
|
28842
28846
|
// This file is used as the bundle entry point and exports everything
|