dino-ge 1.8.11 → 1.9.0
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/README.md +17 -28
- package/dist/Circle.d.ts +3 -1
- package/dist/Circle.js +7 -2
- package/dist/Circle.js.map +1 -1
- package/dist/Input.js +49 -34
- package/dist/Input.js.map +1 -1
- package/dist/Physics.d.ts +1 -1
- package/dist/Physics.js +29 -22
- package/dist/Physics.js.map +1 -1
- package/dist/RenderingSystem.js +3 -3
- package/dist/RenderingSystem.js.map +1 -1
- package/dist/ShapeComponent.d.ts +4 -3
- package/dist/ShapeComponent.js +52 -21
- package/dist/ShapeComponent.js.map +1 -1
- package/dist/Sprite.d.ts +2 -1
- package/dist/Sprite.js +8 -8
- package/dist/Sprite.js.map +1 -1
- package/dist/TextComponent.d.ts +4 -3
- package/dist/TextComponent.js +40 -15
- package/dist/TextComponent.js.map +1 -1
- package/dist/TilemapComponent.d.ts +2 -1
- package/dist/TilemapComponent.js +2 -1
- package/dist/TilemapComponent.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -6,13 +6,12 @@ A lightweight, performant 2D game engine built from the ground up in TypeScript.
|
|
|
6
6
|
|
|
7
7
|
## Features
|
|
8
8
|
|
|
9
|
-
- **Composition-based
|
|
10
|
-
- **
|
|
11
|
-
- **
|
|
12
|
-
- **
|
|
13
|
-
- **
|
|
14
|
-
- **
|
|
15
|
-
- **TypeScript Native:** Full type safety and modern ES module support.
|
|
9
|
+
- **Composition-based ECS:** Built around a flexible Entity Component System for modular game design.
|
|
10
|
+
- **Hierarchical Transform System:** Supports complex parent-child relationships with nested position, rotation, and scaling.
|
|
11
|
+
- **Pixel-Perfect Sprite Animation:** Efficiently handles spritesheets with automatic frame calculation and smooth playback.
|
|
12
|
+
- **Robust 2D Physics:** Impulse-based resolution with support for AABB and Circle collision primitives.
|
|
13
|
+
- **Customisable Camera:** Built-in support for following targets, world-to-viewport coordinate mapping, and smooth zooming.
|
|
14
|
+
- **Playground Integration:** Seamlessly compatible with the Dino GE Playground for rapid prototyping and live editing.
|
|
16
15
|
|
|
17
16
|
## Installation
|
|
18
17
|
|
|
@@ -23,30 +22,16 @@ npm install dino-ge
|
|
|
23
22
|
## Quick Start
|
|
24
23
|
|
|
25
24
|
```typescript
|
|
26
|
-
import { Engine,
|
|
25
|
+
import { Engine, Sprite, Vector2 } from 'dino-ge';
|
|
27
26
|
|
|
28
|
-
|
|
29
|
-
{
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
// Create and set scene
|
|
36
|
-
const scene = new MyGameScene();
|
|
37
|
-
Engine.currentScene = scene;
|
|
38
|
-
},
|
|
39
|
-
update: () => {
|
|
40
|
-
// Global update logic
|
|
41
|
-
}
|
|
42
|
-
},
|
|
43
|
-
{
|
|
44
|
-
title: 'My Dino Game',
|
|
45
|
-
backgroundColour: '#264653'
|
|
27
|
+
class MyGame {
|
|
28
|
+
constructor() {
|
|
29
|
+
new Engine({
|
|
30
|
+
onLoad: () => this.onLoad(),
|
|
31
|
+
update: (dt) => this.onUpdate(dt)
|
|
32
|
+
});
|
|
46
33
|
}
|
|
47
|
-
);
|
|
48
34
|
|
|
49
|
-
class MyGameScene extends Scene {
|
|
50
35
|
onLoad() {
|
|
51
36
|
const player = new Sprite({
|
|
52
37
|
tag: 'player',
|
|
@@ -59,6 +44,10 @@ class MyGameScene extends Scene {
|
|
|
59
44
|
});
|
|
60
45
|
player.play();
|
|
61
46
|
}
|
|
47
|
+
|
|
48
|
+
onUpdate(dt: number) {
|
|
49
|
+
// Game logic here
|
|
50
|
+
}
|
|
62
51
|
}
|
|
63
52
|
```
|
|
64
53
|
|
package/dist/Circle.d.ts
CHANGED
|
@@ -23,7 +23,9 @@ export default class Circle extends GameObject {
|
|
|
23
23
|
radius: number;
|
|
24
24
|
/** Fill colour. */
|
|
25
25
|
colour: string;
|
|
26
|
-
/** Center point of the circle. */
|
|
26
|
+
/** Center point of the circle in world space. */
|
|
27
27
|
get center(): Vector2;
|
|
28
|
+
/** Radius of the circle in world space. */
|
|
29
|
+
get worldRadius(): number;
|
|
28
30
|
constructor(props: CircleProps);
|
|
29
31
|
}
|
package/dist/Circle.js
CHANGED
|
@@ -10,9 +10,14 @@ const defaultProps = {
|
|
|
10
10
|
* A basic circle shape that can be drawn to the screen.
|
|
11
11
|
*/
|
|
12
12
|
export default class Circle extends GameObject {
|
|
13
|
-
/** Center point of the circle. */
|
|
13
|
+
/** Center point of the circle in world space. */
|
|
14
14
|
get center() {
|
|
15
|
-
|
|
15
|
+
const r = this.radius * this.transform.worldScale.x;
|
|
16
|
+
return this.transform.worldPosition.add(new Vector2(r, r));
|
|
17
|
+
}
|
|
18
|
+
/** Radius of the circle in world space. */
|
|
19
|
+
get worldRadius() {
|
|
20
|
+
return this.radius * this.transform.worldScale.x;
|
|
16
21
|
}
|
|
17
22
|
constructor(props) {
|
|
18
23
|
super(props.tag || defaultProps.tag, props.zIndex || defaultProps.zIndex);
|
package/dist/Circle.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Circle.js","sourceRoot":"","sources":["../src/Circle.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,UAAU,MAAM,iBAAiB,CAAC;AACzC,OAAO,cAAc,MAAM,qBAAqB,CAAC;AAkBjD,MAAM,YAAY,GAAG;IACnB,GAAG,EAAE,QAAQ;IACb,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,CAAC;CACV,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,UAAU;IAM5C,
|
|
1
|
+
{"version":3,"file":"Circle.js","sourceRoot":"","sources":["../src/Circle.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,UAAU,MAAM,iBAAiB,CAAC;AACzC,OAAO,cAAc,MAAM,qBAAqB,CAAC;AAkBjD,MAAM,YAAY,GAAG;IACnB,GAAG,EAAE,QAAQ;IACb,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,CAAC;CACV,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,UAAU;IAM5C,iDAAiD;IACjD,IAAI,MAAM;QACR,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;QACpD,OAAO,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC7D,CAAC;IAED,2CAA2C;IAC3C,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;IACnD,CAAC;IAED,YAAY,KAAkB;QAC5B,KAAK,CAAC,KAAK,CAAC,GAAG,IAAI,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;QAE1E,MAAM,cAAc,mCACf,YAAY,GACZ,KAAK,CACT,CAAC;QAEF,IAAI,CAAC,CAAC,cAAc,CAAC,QAAQ,YAAY,OAAO,CAAC,EAAE,CAAC;YAClD,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;QACnD,CAAC;QAED,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAC1D,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,GAAG,GAAG,cAAc,CAAC,GAAG,CAAC;QACvC,IAAI,CAAC,SAAS,CAAC,QAAQ,GAAG,cAAc,CAAC,QAAQ,CAAC;QAClD,IAAI,CAAC,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC;QACpC,IAAI,CAAC,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC;QACpC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC;QAE7C,yFAAyF;QACzF,IAAI,CAAC,YAAY,CAAC,IAAI,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QAEvF,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;CACF"}
|
package/dist/Input.js
CHANGED
|
@@ -16,40 +16,46 @@ class Input {
|
|
|
16
16
|
this.isInitialized = true;
|
|
17
17
|
document.addEventListener('mousemove', (event) => {
|
|
18
18
|
var _a, _b, _c, _d;
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
19
|
+
const canvas = document.getElementById('canvas');
|
|
20
|
+
if (canvas && typeof canvas.getBoundingClientRect === 'function') {
|
|
21
|
+
const rect = canvas.getBoundingClientRect();
|
|
22
|
+
this.mousePosition.x = event.clientX - rect.left;
|
|
23
|
+
this.mousePosition.y = event.clientY - rect.top;
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
this.mousePosition.x = event.clientX;
|
|
27
|
+
this.mousePosition.y = event.clientY;
|
|
28
|
+
}
|
|
29
|
+
if (this.isResizing && Engine.selectedObject && Engine.debug) {
|
|
22
30
|
const obj = Engine.selectedObject;
|
|
23
31
|
const { worldPosition } = obj.transform;
|
|
24
|
-
const
|
|
25
|
-
const
|
|
32
|
+
const scale = obj.transform.scale || new Vector2(1, 1);
|
|
33
|
+
const worldWidth = Math.max(5, this.mouseX - worldPosition.x);
|
|
34
|
+
const worldHeight = Math.max(5, this.mouseY - worldPosition.y);
|
|
26
35
|
const sprite = obj.getComponent(SpriteComponent);
|
|
27
36
|
if (sprite && sprite.frameWidth > 0 && sprite.frameHeight > 0) {
|
|
28
|
-
//
|
|
29
|
-
obj.transform.scale.x =
|
|
30
|
-
obj.transform.scale.y =
|
|
31
|
-
// Sync bounds immediately
|
|
32
|
-
if (obj.bounds) {
|
|
33
|
-
obj.bounds.width = newWidth;
|
|
34
|
-
obj.bounds.height = newHeight;
|
|
35
|
-
}
|
|
37
|
+
// Resizing sprites changes their transform scale
|
|
38
|
+
obj.transform.scale.x = worldWidth / sprite.frameWidth;
|
|
39
|
+
obj.transform.scale.y = worldHeight / sprite.frameHeight;
|
|
36
40
|
}
|
|
37
41
|
else {
|
|
38
|
-
//
|
|
42
|
+
// Resizing other components changes their local dimensions
|
|
43
|
+
// We must compensate for current scale so that: localDim * scale = worldWidth
|
|
44
|
+
const localWidth = worldWidth / scale.x;
|
|
45
|
+
const localHeight = worldHeight / scale.y;
|
|
39
46
|
const shape = obj.getComponent(ShapeComponent);
|
|
40
47
|
const text = obj.getComponent(TextComponent);
|
|
41
48
|
if (shape) {
|
|
42
|
-
shape.width =
|
|
43
|
-
shape.height =
|
|
49
|
+
shape.width = localWidth;
|
|
50
|
+
shape.height = localHeight;
|
|
44
51
|
}
|
|
45
52
|
else if (text) {
|
|
46
|
-
text.width =
|
|
47
|
-
text.height =
|
|
53
|
+
text.width = localWidth;
|
|
54
|
+
text.height = localHeight;
|
|
48
55
|
}
|
|
49
56
|
else if (obj.bounds) {
|
|
50
|
-
|
|
51
|
-
obj.bounds.
|
|
52
|
-
obj.bounds.height = newHeight;
|
|
57
|
+
obj.bounds.width = localWidth;
|
|
58
|
+
obj.bounds.height = localHeight;
|
|
53
59
|
}
|
|
54
60
|
}
|
|
55
61
|
return;
|
|
@@ -70,9 +76,10 @@ class Input {
|
|
|
70
76
|
// Cursor feedback for resize handle
|
|
71
77
|
if (Engine.debug && Engine.selectedObject && !this.isDragging && !this.isResizing) {
|
|
72
78
|
const obj = Engine.selectedObject;
|
|
73
|
-
const width = (_b = (_a = obj.bounds) === null || _a === void 0 ? void 0 : _a.width) !== null && _b !== void 0 ? _b : 0;
|
|
74
|
-
const height = (_d = (_c = obj.bounds) === null || _c === void 0 ? void 0 : _c.height) !== null && _d !== void 0 ? _d : 0;
|
|
75
79
|
const { worldPosition } = obj.transform;
|
|
80
|
+
const worldScale = obj.transform.worldScale || new Vector2(1, 1);
|
|
81
|
+
const width = ((_b = (_a = obj.bounds) === null || _a === void 0 ? void 0 : _a.width) !== null && _b !== void 0 ? _b : 0) * worldScale.x;
|
|
82
|
+
const height = ((_d = (_c = obj.bounds) === null || _c === void 0 ? void 0 : _c.height) !== null && _d !== void 0 ? _d : 0) * worldScale.y;
|
|
76
83
|
const handleSize = 8 / Engine.camera.zoom;
|
|
77
84
|
const worldPos = new Vector2(this.mouseX, this.mouseY);
|
|
78
85
|
if (worldPos.x > worldPosition.x + width - handleSize / 2 &&
|
|
@@ -93,7 +100,7 @@ class Input {
|
|
|
93
100
|
}
|
|
94
101
|
});
|
|
95
102
|
document.addEventListener('mousedown', (event) => {
|
|
96
|
-
var _a, _b, _c, _d
|
|
103
|
+
var _a, _b, _c, _d;
|
|
97
104
|
if (event.target.tagName !== 'CANVAS')
|
|
98
105
|
return;
|
|
99
106
|
this.keys.add(`mouse${event.button}`);
|
|
@@ -103,9 +110,10 @@ class Input {
|
|
|
103
110
|
// First check if we're clicking the resize handle of the ALREADY selected object
|
|
104
111
|
if (Engine.selectedObject) {
|
|
105
112
|
const obj = Engine.selectedObject;
|
|
106
|
-
const width = (_b = (_a = obj.bounds) === null || _a === void 0 ? void 0 : _a.width) !== null && _b !== void 0 ? _b : 0;
|
|
107
|
-
const height = (_d = (_c = obj.bounds) === null || _c === void 0 ? void 0 : _c.height) !== null && _d !== void 0 ? _d : 0;
|
|
108
113
|
const { worldPosition } = obj.transform;
|
|
114
|
+
const worldScale = obj.transform.worldScale || new Vector2(1, 1);
|
|
115
|
+
const width = ((_b = (_a = obj.bounds) === null || _a === void 0 ? void 0 : _a.width) !== null && _b !== void 0 ? _b : 0) * worldScale.x;
|
|
116
|
+
const height = ((_d = (_c = obj.bounds) === null || _c === void 0 ? void 0 : _c.height) !== null && _d !== void 0 ? _d : 0) * worldScale.y;
|
|
109
117
|
const handleSize = 8 / Engine.camera.zoom;
|
|
110
118
|
if (worldPos.x > worldPosition.x + width - handleSize / 2 &&
|
|
111
119
|
worldPos.x < worldPosition.x + width + handleSize / 2 &&
|
|
@@ -118,11 +126,15 @@ class Input {
|
|
|
118
126
|
const objects = Engine.currentScene ? Engine.currentScene.objects : Engine.objects;
|
|
119
127
|
let found = false;
|
|
120
128
|
// Check objects from top to bottom (zIndex)
|
|
121
|
-
const sorted = Array.from(objects).sort((a, b) =>
|
|
122
|
-
for (
|
|
123
|
-
const
|
|
124
|
-
|
|
129
|
+
const sorted = Array.from(objects).sort((a, b) => b.metadata.zIndex - a.metadata.zIndex);
|
|
130
|
+
for (let i = 0; i < sorted.length; i++) {
|
|
131
|
+
const obj = sorted[i];
|
|
132
|
+
if (!obj.bounds)
|
|
133
|
+
continue;
|
|
125
134
|
const { worldPosition } = obj.transform;
|
|
135
|
+
const worldScale = obj.transform.worldScale || new Vector2(1, 1);
|
|
136
|
+
const width = obj.bounds.width * worldScale.x;
|
|
137
|
+
const height = obj.bounds.height * worldScale.y;
|
|
126
138
|
if (worldPos.x > worldPosition.x &&
|
|
127
139
|
worldPos.x < worldPosition.x + width &&
|
|
128
140
|
worldPos.y > worldPosition.y &&
|
|
@@ -151,17 +163,20 @@ class Input {
|
|
|
151
163
|
}
|
|
152
164
|
});
|
|
153
165
|
document.addEventListener('keydown', (event) => {
|
|
154
|
-
|
|
166
|
+
const key = String(event.key).toLowerCase();
|
|
167
|
+
this.keys.add(key);
|
|
155
168
|
// Toggle Pause with P
|
|
156
|
-
if (
|
|
169
|
+
if (key === 'p') {
|
|
157
170
|
Engine.paused = !Engine.paused;
|
|
158
171
|
if (Engine.paused) {
|
|
159
|
-
document.getElementById('canvas')
|
|
172
|
+
const canvas = document.getElementById('canvas');
|
|
173
|
+
if (canvas)
|
|
174
|
+
canvas.style.cursor = 'default';
|
|
160
175
|
}
|
|
161
176
|
}
|
|
162
177
|
});
|
|
163
178
|
document.addEventListener('keyup', (event) => {
|
|
164
|
-
this.keys.delete(event.key.toLowerCase());
|
|
179
|
+
this.keys.delete(String(event.key).toLowerCase());
|
|
165
180
|
});
|
|
166
181
|
window.addEventListener('blur', () => {
|
|
167
182
|
this.keys.clear();
|
package/dist/Input.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Input.js","sourceRoot":"","sources":["../src/Input.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,eAAe,MAAM,sBAAsB,CAAC;AACnD,OAAO,cAAc,MAAM,qBAAqB,CAAC;AACjD,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAE/C;;GAEG;AACH,MAAqB,KAAK;IAUxB;;OAEG;IACH,MAAM,CAAC,IAAI;QACT,IAAI,IAAI,CAAC,aAAa;YAAE,OAAO;QAC/B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAE1B,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,KAAiB,EAAE,EAAE;;YAC3D,IAAI,CAAC,aAAa,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"Input.js","sourceRoot":"","sources":["../src/Input.ts"],"names":[],"mappings":"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"}
|
package/dist/Physics.d.ts
CHANGED
package/dist/Physics.js
CHANGED
|
@@ -33,7 +33,9 @@ export default class Physics {
|
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
35
|
static circleVsCircle(c1, c2) {
|
|
36
|
-
const
|
|
36
|
+
const r1 = c1.worldRadius;
|
|
37
|
+
const r2 = c2.worldRadius;
|
|
38
|
+
const combinedRadius = r1 + r2;
|
|
37
39
|
const diff = c2.center.clone().subtract(c1.center);
|
|
38
40
|
const distSq = diff.x * diff.x + diff.y * diff.y;
|
|
39
41
|
if (distSq > combinedRadius * combinedRadius)
|
|
@@ -49,13 +51,15 @@ export default class Physics {
|
|
|
49
51
|
}
|
|
50
52
|
static aabbVsAabb(obj1, obj2) {
|
|
51
53
|
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
52
|
-
const
|
|
53
|
-
const
|
|
54
|
-
const
|
|
55
|
-
const
|
|
56
|
-
const
|
|
57
|
-
const
|
|
58
|
-
|
|
54
|
+
const scale1 = obj1.transform.worldScale;
|
|
55
|
+
const scale2 = obj2.transform.worldScale;
|
|
56
|
+
const w1 = ((_b = (_a = obj1.bounds) === null || _a === void 0 ? void 0 : _a.width) !== null && _b !== void 0 ? _b : 0) * scale1.x;
|
|
57
|
+
const h1 = ((_d = (_c = obj1.bounds) === null || _c === void 0 ? void 0 : _c.height) !== null && _d !== void 0 ? _d : 0) * scale1.y;
|
|
58
|
+
const w2 = ((_f = (_e = obj2.bounds) === null || _e === void 0 ? void 0 : _e.width) !== null && _f !== void 0 ? _f : 0) * scale2.x;
|
|
59
|
+
const h2 = ((_h = (_g = obj2.bounds) === null || _g === void 0 ? void 0 : _g.height) !== null && _h !== void 0 ? _h : 0) * scale2.y;
|
|
60
|
+
const pos1 = obj1.transform.worldPosition;
|
|
61
|
+
const pos2 = obj2.transform.worldPosition;
|
|
62
|
+
// Center to center distance in world space
|
|
59
63
|
const center1 = new Vector2(pos1.x + w1 / 2, pos1.y + h1 / 2);
|
|
60
64
|
const center2 = new Vector2(pos2.x + w2 / 2, pos2.y + h2 / 2);
|
|
61
65
|
const diff = center2.clone().subtract(center1);
|
|
@@ -86,27 +90,29 @@ export default class Physics {
|
|
|
86
90
|
}
|
|
87
91
|
static circleVsRect(circle, rect) {
|
|
88
92
|
var _a, _b, _c, _d;
|
|
89
|
-
const
|
|
90
|
-
const
|
|
91
|
-
const
|
|
92
|
-
const
|
|
93
|
-
const
|
|
94
|
-
const
|
|
93
|
+
const cRadius = circle.worldRadius;
|
|
94
|
+
const cCenter = circle.center;
|
|
95
|
+
const rScale = rect.transform.worldScale;
|
|
96
|
+
const rectWidth = ((_b = (_a = rect.bounds) === null || _a === void 0 ? void 0 : _a.width) !== null && _b !== void 0 ? _b : 0) * rScale.x;
|
|
97
|
+
const rectHeight = ((_d = (_c = rect.bounds) === null || _c === void 0 ? void 0 : _c.height) !== null && _d !== void 0 ? _d : 0) * rScale.y;
|
|
98
|
+
const rectPos = rect.transform.worldPosition;
|
|
99
|
+
const closestX = Math.max(rectPos.x, Math.min(cCenter.x, rectPos.x + rectWidth));
|
|
100
|
+
const closestY = Math.max(rectPos.y, Math.min(cCenter.y, rectPos.y + rectHeight));
|
|
101
|
+
const diff = new Vector2(closestX, closestY).subtract(cCenter);
|
|
95
102
|
const distSq = diff.x * diff.x + diff.y * diff.y;
|
|
96
|
-
if (distSq >
|
|
103
|
+
if (distSq > cRadius * cRadius)
|
|
97
104
|
return null;
|
|
98
105
|
const dist = Math.sqrt(distSq);
|
|
99
106
|
let normal;
|
|
100
107
|
let depth;
|
|
101
108
|
if (dist === 0) {
|
|
102
109
|
// Circle center is inside the rectangle
|
|
103
|
-
const
|
|
104
|
-
const
|
|
105
|
-
const
|
|
106
|
-
const
|
|
107
|
-
const dBottom = rectPos.y + rectHeight - center.y;
|
|
110
|
+
const dLeft = cCenter.x - rectPos.x;
|
|
111
|
+
const dRight = rectPos.x + rectWidth - cCenter.x;
|
|
112
|
+
const dTop = cCenter.y - rectPos.y;
|
|
113
|
+
const dBottom = rectPos.y + rectHeight - cCenter.y;
|
|
108
114
|
const minDist = Math.min(dLeft, dRight, dTop, dBottom);
|
|
109
|
-
depth =
|
|
115
|
+
depth = cRadius + minDist;
|
|
110
116
|
if (minDist === dLeft)
|
|
111
117
|
normal = new Vector2(-1, 0);
|
|
112
118
|
else if (minDist === dRight)
|
|
@@ -118,7 +124,7 @@ export default class Physics {
|
|
|
118
124
|
}
|
|
119
125
|
else {
|
|
120
126
|
normal = diff.multiply(1 / dist);
|
|
121
|
-
depth =
|
|
127
|
+
depth = cRadius - dist;
|
|
122
128
|
}
|
|
123
129
|
return {
|
|
124
130
|
obj1: circle,
|
|
@@ -163,6 +169,7 @@ export default class Physics {
|
|
|
163
169
|
const slop = 0.01; // Allowable penetration
|
|
164
170
|
const correctionMagnitude = (Math.max(depth - slop, 0) / ((isStatic1 ? 0 : 1) + (isStatic2 ? 0 : 1))) * percent;
|
|
165
171
|
const correction = normal.clone().multiply(correctionMagnitude);
|
|
172
|
+
// Apply correction to LOCAL position based on world normal
|
|
166
173
|
if (!isStatic1)
|
|
167
174
|
obj1.transform.position.subtract(correction);
|
|
168
175
|
if (!isStatic2)
|
package/dist/Physics.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Physics.js","sourceRoot":"","sources":["../src/Physics.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,cAAc,CAAC;AAEnC,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,gBAAgB,MAAM,uBAAuB,CAAC;AACrD,OAAO,MAAM,MAAM,aAAa,CAAC;AAgBjC;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,OAAO;IAC1B;;;;;OAKG;IACH,MAAM,CAAC,oBAAoB,CAAC,IAAgB,EAAE,IAAgB;QAC5D,MAAM,SAAS,GAAG,IAAI,YAAY,MAAM,CAAC;QACzC,MAAM,SAAS,GAAG,IAAI,YAAY,MAAM,CAAC;QAEzC,IAAI,SAAS,IAAI,SAAS,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC,cAAc,CAAC,IAAc,EAAE,IAAc,CAAC,CAAC;QAC7D,CAAC;aAAM,IAAI,SAAS,IAAI,SAAS,EAAE,CAAC;YAClC,MAAM,MAAM,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAW,CAAC;YACnD,MAAM,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YACjD,IAAI,QAAQ,IAAI,SAAS,EAAE,CAAC;gBAC1B,mCAAmC;gBACnC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/B,CAAC;YACD,OAAO,QAAQ,CAAC;QAClB,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IAEO,MAAM,CAAC,cAAc,CAAC,EAAU,EAAE,EAAU;QAClD,MAAM,
|
|
1
|
+
{"version":3,"file":"Physics.js","sourceRoot":"","sources":["../src/Physics.ts"],"names":[],"mappings":"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"}
|
package/dist/RenderingSystem.js
CHANGED
|
@@ -68,9 +68,9 @@ export default class RenderingSystem extends System {
|
|
|
68
68
|
const sorted = Array.from(entities).sort((a, b) => (a.metadata.zIndex > b.metadata.zIndex ? 1 : -1));
|
|
69
69
|
sorted.forEach((object) => {
|
|
70
70
|
var _a, _b, _c, _d;
|
|
71
|
-
const { worldPosition } = object.transform;
|
|
72
|
-
const width = (_b = (_a = object.bounds) === null || _a === void 0 ? void 0 : _a.width) !== null && _b !== void 0 ? _b : 0;
|
|
73
|
-
const height = (_d = (_c = object.bounds) === null || _c === void 0 ? void 0 : _c.height) !== null && _d !== void 0 ? _d : 0;
|
|
71
|
+
const { worldPosition, worldScale } = object.transform;
|
|
72
|
+
const width = ((_b = (_a = object.bounds) === null || _a === void 0 ? void 0 : _a.width) !== null && _b !== void 0 ? _b : 0) * worldScale.x;
|
|
73
|
+
const height = ((_d = (_c = object.bounds) === null || _c === void 0 ? void 0 : _c.height) !== null && _d !== void 0 ? _d : 0) * worldScale.y;
|
|
74
74
|
// Frustum Culling
|
|
75
75
|
if (worldPosition.x < bounds.x + bounds.width &&
|
|
76
76
|
worldPosition.x + width > bounds.x &&
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RenderingSystem.js","sourceRoot":"","sources":["../src/RenderingSystem.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AAEjC,OAAO,eAAe,MAAM,sBAAsB,CAAC;AACnD,OAAO,mBAAmB,MAAM,0BAA0B,CAAC;AAC3D,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,gBAAgB,MAAM,uBAAuB,CAAC;AACrD,OAAO,OAAO,MAAM,cAAc,CAAC;AAEnC;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,MAAM;IAGjD,YAAY,GAA6B;QACvC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAED;;;OAGG;IACI,UAAU,CAAC,GAA6B;QAC7C,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAED;;;;;OAKG;IACa,MAAM,CAAC,QAAyB,EAAE,SAAkB,EAAE,QAAiB,KAAK;QAC1F,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAC3C,IAAI,CAAC,GAAG,CAAC,MAA4B,CAAC,KAAK,EAC3C,IAAI,CAAC,GAAG,CAAC,MAA4B,CAAC,MAAM,CAC9C,CAAC;QAEF,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QAEhB,yBAAyB;QACzB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACvD,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAEzE,kCAAkC;QAClC,IAAI,KAAK,IAAI,MAAM,CAAC,kBAAkB,EAAE,CAAC;YACvC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACvB,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,QAAQ;YAEzB,0BAA0B;YAC1B,OAAO,MAAM,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,GAAG,EAAE,CAAC;gBAC5F,MAAM,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;YACjC,CAAC;YAED,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE;gBACzD,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC;gBACxC,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,SAAS,CAAC,GAAG,GAAG,CAAC;gBAE5C,uEAAuE;gBACvE,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC;gBAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC;gBAC1C,MAAM,MAAM,GAAG,IAAI,OAAO,CACxB,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EACrB,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CACtB,CAAC;gBAEF,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;gBAChB,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,OAAO,CAAC;gBAC/B,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;gBACrB,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC,yBAAyB;gBAC3D,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;gBAE5C,cAAc;gBACd,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;gBACpC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;gBACpE,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;gBAElB,sBAAsB;gBACtB,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC;gBAC/B,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;gBACrB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;gBACzE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;gBAEhB,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YACrB,CAAC,CAAC,CAAC;QACL,CAAC;QAED,iDAAiD;QACjD,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAErG,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;;YACxB,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,CAAC,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"RenderingSystem.js","sourceRoot":"","sources":["../src/RenderingSystem.ts"],"names":[],"mappings":"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"}
|
package/dist/ShapeComponent.d.ts
CHANGED
|
@@ -11,21 +11,22 @@ export default class ShapeComponent extends RenderComponent {
|
|
|
11
11
|
type: ShapeType;
|
|
12
12
|
/** Fill colour. */
|
|
13
13
|
colour: string;
|
|
14
|
-
private _width;
|
|
15
|
-
private _height;
|
|
16
14
|
/** Width (for rect) or radius (for circle). */
|
|
17
15
|
get width(): number;
|
|
18
16
|
set width(val: number);
|
|
19
17
|
/** Height (for rect) or unused (for circle). */
|
|
20
18
|
get height(): number;
|
|
21
19
|
set height(val: number);
|
|
20
|
+
private _initialWidth;
|
|
21
|
+
private _initialHeight;
|
|
22
22
|
constructor(type: ShapeType, colour: string, width?: number, height?: number);
|
|
23
23
|
/**
|
|
24
24
|
* Ensures the parent GameObject has a BoundsComponent synced with this shape.
|
|
25
|
+
* Note: Bounds represent the BASE local size (unscaled).
|
|
25
26
|
*/
|
|
26
27
|
private _updateGameObjectBounds;
|
|
27
28
|
/**
|
|
28
|
-
* Lifecycle hook called
|
|
29
|
+
* Lifecycle hook called when the component is added to a GameObject.
|
|
29
30
|
*/
|
|
30
31
|
onAttach(): void;
|
|
31
32
|
/**
|
package/dist/ShapeComponent.js
CHANGED
|
@@ -5,47 +5,76 @@ import BoundsComponent from './BoundsComponent.js';
|
|
|
5
5
|
*/
|
|
6
6
|
export default class ShapeComponent extends RenderComponent {
|
|
7
7
|
/** Width (for rect) or radius (for circle). */
|
|
8
|
-
get width() {
|
|
8
|
+
get width() {
|
|
9
|
+
var _a;
|
|
10
|
+
if ((_a = this.gameObject) === null || _a === void 0 ? void 0 : _a.bounds) {
|
|
11
|
+
if (this.type === 'circle') {
|
|
12
|
+
return this.gameObject.bounds.width / 2;
|
|
13
|
+
}
|
|
14
|
+
return this.gameObject.bounds.width;
|
|
15
|
+
}
|
|
16
|
+
return this._initialWidth;
|
|
17
|
+
}
|
|
9
18
|
set width(val) {
|
|
10
|
-
|
|
11
|
-
this.
|
|
19
|
+
var _a;
|
|
20
|
+
this._initialWidth = val;
|
|
21
|
+
if ((_a = this.gameObject) === null || _a === void 0 ? void 0 : _a.bounds) {
|
|
22
|
+
if (this.type === 'circle') {
|
|
23
|
+
this.gameObject.bounds.width = val * 2;
|
|
24
|
+
this.gameObject.bounds.height = val * 2;
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
this.gameObject.bounds.width = val;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
12
30
|
}
|
|
13
31
|
/** Height (for rect) or unused (for circle). */
|
|
14
|
-
get height() {
|
|
32
|
+
get height() {
|
|
33
|
+
var _a;
|
|
34
|
+
if ((_a = this.gameObject) === null || _a === void 0 ? void 0 : _a.bounds) {
|
|
35
|
+
return this.gameObject.bounds.height;
|
|
36
|
+
}
|
|
37
|
+
return this._initialHeight;
|
|
38
|
+
}
|
|
15
39
|
set height(val) {
|
|
16
|
-
|
|
17
|
-
this.
|
|
40
|
+
var _a;
|
|
41
|
+
this._initialHeight = val;
|
|
42
|
+
if ((_a = this.gameObject) === null || _a === void 0 ? void 0 : _a.bounds) {
|
|
43
|
+
this.gameObject.bounds.height = val;
|
|
44
|
+
}
|
|
18
45
|
}
|
|
19
46
|
constructor(type, colour, width = 0, height = 0) {
|
|
20
47
|
super();
|
|
21
48
|
this.type = type;
|
|
22
49
|
this.colour = colour;
|
|
23
|
-
this.
|
|
24
|
-
this.
|
|
50
|
+
this._initialWidth = width;
|
|
51
|
+
this._initialHeight = height;
|
|
25
52
|
}
|
|
26
53
|
/**
|
|
27
54
|
* Ensures the parent GameObject has a BoundsComponent synced with this shape.
|
|
55
|
+
* Note: Bounds represent the BASE local size (unscaled).
|
|
28
56
|
*/
|
|
29
57
|
_updateGameObjectBounds() {
|
|
30
58
|
if (!this.gameObject)
|
|
31
59
|
return;
|
|
32
|
-
let targetWidth = this._width;
|
|
33
|
-
let targetHeight = this._height;
|
|
34
|
-
if (this.type === 'circle') {
|
|
35
|
-
targetWidth = this._width * 2;
|
|
36
|
-
targetHeight = this._width * 2;
|
|
37
|
-
}
|
|
38
60
|
if (!this.gameObject.bounds) {
|
|
61
|
+
let targetWidth = this._initialWidth;
|
|
62
|
+
let targetHeight = this._initialHeight;
|
|
63
|
+
if (this.type === 'circle') {
|
|
64
|
+
targetWidth = this._initialWidth * 2;
|
|
65
|
+
targetHeight = this._initialWidth * 2;
|
|
66
|
+
}
|
|
39
67
|
this.gameObject.bounds = new BoundsComponent(targetWidth, targetHeight);
|
|
40
68
|
this.gameObject.addComponent(this.gameObject.bounds);
|
|
41
69
|
}
|
|
42
70
|
else {
|
|
43
|
-
|
|
44
|
-
this.
|
|
71
|
+
// Sync initial values if bounds already exist
|
|
72
|
+
this.width = this._initialWidth;
|
|
73
|
+
this.height = this._initialHeight;
|
|
45
74
|
}
|
|
46
75
|
}
|
|
47
76
|
/**
|
|
48
|
-
* Lifecycle hook called
|
|
77
|
+
* Lifecycle hook called when the component is added to a GameObject.
|
|
49
78
|
*/
|
|
50
79
|
onAttach() {
|
|
51
80
|
this._updateGameObjectBounds();
|
|
@@ -55,9 +84,10 @@ export default class ShapeComponent extends RenderComponent {
|
|
|
55
84
|
* @param ctx The canvas 2D rendering context.
|
|
56
85
|
*/
|
|
57
86
|
draw(ctx) {
|
|
58
|
-
if (!this.gameObject)
|
|
87
|
+
if (!this.gameObject || !this.gameObject.bounds)
|
|
59
88
|
return;
|
|
60
89
|
const { worldPosition, worldRotation, worldScale } = this.gameObject.transform;
|
|
90
|
+
const { width, height } = this.gameObject.bounds;
|
|
61
91
|
ctx.save();
|
|
62
92
|
ctx.translate(worldPosition.x, worldPosition.y);
|
|
63
93
|
if (worldRotation !== 0)
|
|
@@ -65,12 +95,13 @@ export default class ShapeComponent extends RenderComponent {
|
|
|
65
95
|
ctx.scale(worldScale.x, worldScale.y);
|
|
66
96
|
ctx.fillStyle = this.colour;
|
|
67
97
|
if (this.type === 'rect') {
|
|
68
|
-
ctx.fillRect(0, 0,
|
|
98
|
+
ctx.fillRect(0, 0, width, height);
|
|
69
99
|
}
|
|
70
100
|
else if (this.type === 'circle') {
|
|
101
|
+
const radius = width / 2;
|
|
71
102
|
ctx.beginPath();
|
|
72
|
-
//
|
|
73
|
-
ctx.arc(
|
|
103
|
+
// In local space center is at (radius, radius)
|
|
104
|
+
ctx.arc(radius, radius, radius, 0, Math.PI * 2);
|
|
74
105
|
ctx.fill();
|
|
75
106
|
ctx.closePath();
|
|
76
107
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ShapeComponent.js","sourceRoot":"","sources":["../src/ShapeComponent.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,MAAM,sBAAsB,CAAC;AACnD,OAAO,eAAe,MAAM,sBAAsB,CAAC;AAOnD;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,eAAe;
|
|
1
|
+
{"version":3,"file":"ShapeComponent.js","sourceRoot":"","sources":["../src/ShapeComponent.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,MAAM,sBAAsB,CAAC;AACnD,OAAO,eAAe,MAAM,sBAAsB,CAAC;AAOnD;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,eAAe;IAMzD,+CAA+C;IAC/C,IAAI,KAAK;;QACP,IAAI,MAAA,IAAI,CAAC,UAAU,0CAAE,MAAM,EAAE,CAAC;YAC5B,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC3B,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC;YAC1C,CAAC;YACD,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC;QACtC,CAAC;QACD,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,IAAI,KAAK,CAAC,GAAW;;QACnB,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;QACzB,IAAI,MAAA,IAAI,CAAC,UAAU,0CAAE,MAAM,EAAE,CAAC;YAC5B,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC3B,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,GAAG,GAAG,GAAG,CAAC,CAAC;gBACvC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC;YAC1C,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC;YACrC,CAAC;QACH,CAAC;IACH,CAAC;IAED,gDAAgD;IAChD,IAAI,MAAM;;QACR,IAAI,MAAA,IAAI,CAAC,UAAU,0CAAE,MAAM,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC;QACvC,CAAC;QACD,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED,IAAI,MAAM,CAAC,GAAW;;QACpB,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC;QAC1B,IAAI,MAAA,IAAI,CAAC,UAAU,0CAAE,MAAM,EAAE,CAAC;YAC5B,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC;QACtC,CAAC;IACH,CAAC;IAKD,YAAY,IAAe,EAAE,MAAc,EAAE,QAAgB,CAAC,EAAE,SAAiB,CAAC;QAChF,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC;IAC/B,CAAC;IAED;;;OAGG;IACK,uBAAuB;QAC7B,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE,OAAO;QAE7B,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;YAC5B,IAAI,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC;YACrC,IAAI,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC;YAEvC,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC3B,WAAW,GAAG,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;gBACrC,YAAY,GAAG,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;YACxC,CAAC;YAED,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,IAAI,eAAe,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;YACxE,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACvD,CAAC;aAAM,CAAC;YACN,8CAA8C;YAC9C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC;YAChC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC;QACpC,CAAC;IACH,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,IAAI,CAAC,uBAAuB,EAAE,CAAC;IACjC,CAAC;IAED;;;OAGG;IACH,IAAI,CAAC,GAA6B;QAChC,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM;YAAE,OAAO;QAExD,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;QAC/E,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QAEjD,GAAG,CAAC,IAAI,EAAE,CAAC;QACX,GAAG,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;QAChD,IAAI,aAAa,KAAK,CAAC;YAAE,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QACnD,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;QAEtC,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC;QAE5B,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACzB,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QACpC,CAAC;aAAM,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAClC,MAAM,MAAM,GAAG,KAAK,GAAG,CAAC,CAAC;YACzB,GAAG,CAAC,SAAS,EAAE,CAAC;YAChB,+CAA+C;YAC/C,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;YAChD,GAAG,CAAC,IAAI,EAAE,CAAC;YACX,GAAG,CAAC,SAAS,EAAE,CAAC;QAClB,CAAC;QAED,GAAG,CAAC,OAAO,EAAE,CAAC;IAChB,CAAC;CACF"}
|
package/dist/Sprite.d.ts
CHANGED
|
@@ -67,7 +67,8 @@ export default class Sprite extends GameObject {
|
|
|
67
67
|
set scale(val: number | Vector2);
|
|
68
68
|
constructor(props: SpriteProps);
|
|
69
69
|
/**
|
|
70
|
-
* Updates the bounds of the sprite based on its current frame size
|
|
70
|
+
* Updates the bounds of the sprite based on its current frame size.
|
|
71
|
+
* Note: Bounds represent the BASE local size (unscaled).
|
|
71
72
|
* @private
|
|
72
73
|
*/
|
|
73
74
|
private _updateBounds;
|
package/dist/Sprite.js
CHANGED
|
@@ -48,7 +48,6 @@ export default class Sprite extends GameObject {
|
|
|
48
48
|
else {
|
|
49
49
|
this.transform.scale = val;
|
|
50
50
|
}
|
|
51
|
-
this._updateBounds();
|
|
52
51
|
}
|
|
53
52
|
constructor(props) {
|
|
54
53
|
if (!props.tag) {
|
|
@@ -66,12 +65,12 @@ export default class Sprite extends GameObject {
|
|
|
66
65
|
}
|
|
67
66
|
this._spriteComponent = new SpriteComponent(img, props.rows, props.cols, props.startCol, props.endCol);
|
|
68
67
|
this.addComponent(this._spriteComponent);
|
|
69
|
-
const
|
|
70
|
-
if (typeof
|
|
71
|
-
this.transform.scale = new Vector2(
|
|
68
|
+
const initialScale = props.scale !== undefined ? props.scale : 1;
|
|
69
|
+
if (typeof initialScale === 'number') {
|
|
70
|
+
this.transform.scale = new Vector2(initialScale, initialScale);
|
|
72
71
|
}
|
|
73
72
|
else {
|
|
74
|
-
this.transform.scale =
|
|
73
|
+
this.transform.scale = initialScale;
|
|
75
74
|
}
|
|
76
75
|
this.bounds = new BoundsComponent(0, 0);
|
|
77
76
|
this.addComponent(this.bounds);
|
|
@@ -85,13 +84,14 @@ export default class Sprite extends GameObject {
|
|
|
85
84
|
this.registered = false;
|
|
86
85
|
}
|
|
87
86
|
/**
|
|
88
|
-
* Updates the bounds of the sprite based on its current frame size
|
|
87
|
+
* Updates the bounds of the sprite based on its current frame size.
|
|
88
|
+
* Note: Bounds represent the BASE local size (unscaled).
|
|
89
89
|
* @private
|
|
90
90
|
*/
|
|
91
91
|
_updateBounds() {
|
|
92
92
|
if (this.bounds) {
|
|
93
|
-
this.bounds.width = this.frameWidth
|
|
94
|
-
this.bounds.height = this.frameHeight
|
|
93
|
+
this.bounds.width = this.frameWidth;
|
|
94
|
+
this.bounds.height = this.frameHeight;
|
|
95
95
|
}
|
|
96
96
|
}
|
|
97
97
|
/**
|
package/dist/Sprite.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Sprite.js","sourceRoot":"","sources":["../src/Sprite.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Sprite.js","sourceRoot":"","sources":["../src/Sprite.ts"],"names":[],"mappings":"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"}
|
package/dist/TextComponent.d.ts
CHANGED
|
@@ -16,21 +16,22 @@ export default class TextComponent extends RenderComponent {
|
|
|
16
16
|
horizontalAlign: HorizontalAlign;
|
|
17
17
|
/** Vertical alignment. */
|
|
18
18
|
verticalAlign: VerticalAlign;
|
|
19
|
-
private _width;
|
|
20
|
-
private _height;
|
|
21
19
|
/** Width of the background box or interaction area. */
|
|
22
20
|
get width(): number;
|
|
23
21
|
set width(val: number);
|
|
24
22
|
/** Height of the background box or interaction area. */
|
|
25
23
|
get height(): number;
|
|
26
24
|
set height(val: number);
|
|
25
|
+
private _initialWidth;
|
|
26
|
+
private _initialHeight;
|
|
27
27
|
constructor(text: string, font: string, colour: string, horizontalAlign: HorizontalAlign, verticalAlign: VerticalAlign, width: number, height: number, backgroundColour?: string);
|
|
28
28
|
/**
|
|
29
29
|
* Ensures the parent GameObject has a BoundsComponent synced with this component.
|
|
30
|
+
* Note: Bounds represent the BASE local size (unscaled).
|
|
30
31
|
*/
|
|
31
32
|
private _updateGameObjectBounds;
|
|
32
33
|
/**
|
|
33
|
-
* Lifecycle hook called
|
|
34
|
+
* Lifecycle hook called when the component is added to a GameObject.
|
|
34
35
|
*/
|
|
35
36
|
onAttach(): void;
|
|
36
37
|
/**
|
package/dist/TextComponent.js
CHANGED
|
@@ -5,16 +5,28 @@ import BoundsComponent from './BoundsComponent.js';
|
|
|
5
5
|
*/
|
|
6
6
|
export default class TextComponent extends RenderComponent {
|
|
7
7
|
/** Width of the background box or interaction area. */
|
|
8
|
-
get width() {
|
|
8
|
+
get width() {
|
|
9
|
+
var _a, _b, _c;
|
|
10
|
+
return (_c = (_b = (_a = this.gameObject) === null || _a === void 0 ? void 0 : _a.bounds) === null || _b === void 0 ? void 0 : _b.width) !== null && _c !== void 0 ? _c : this._initialWidth;
|
|
11
|
+
}
|
|
9
12
|
set width(val) {
|
|
10
|
-
|
|
11
|
-
this.
|
|
13
|
+
var _a;
|
|
14
|
+
this._initialWidth = val;
|
|
15
|
+
if ((_a = this.gameObject) === null || _a === void 0 ? void 0 : _a.bounds) {
|
|
16
|
+
this.gameObject.bounds.width = val;
|
|
17
|
+
}
|
|
12
18
|
}
|
|
13
19
|
/** Height of the background box or interaction area. */
|
|
14
|
-
get height() {
|
|
20
|
+
get height() {
|
|
21
|
+
var _a, _b, _c;
|
|
22
|
+
return (_c = (_b = (_a = this.gameObject) === null || _a === void 0 ? void 0 : _a.bounds) === null || _b === void 0 ? void 0 : _b.height) !== null && _c !== void 0 ? _c : this._initialHeight;
|
|
23
|
+
}
|
|
15
24
|
set height(val) {
|
|
16
|
-
|
|
17
|
-
this.
|
|
25
|
+
var _a;
|
|
26
|
+
this._initialHeight = val;
|
|
27
|
+
if ((_a = this.gameObject) === null || _a === void 0 ? void 0 : _a.bounds) {
|
|
28
|
+
this.gameObject.bounds.height = val;
|
|
29
|
+
}
|
|
18
30
|
}
|
|
19
31
|
constructor(text, font, colour, horizontalAlign, verticalAlign, width, height, backgroundColour = '') {
|
|
20
32
|
super();
|
|
@@ -25,27 +37,28 @@ export default class TextComponent extends RenderComponent {
|
|
|
25
37
|
this.colour = colour;
|
|
26
38
|
this.horizontalAlign = horizontalAlign;
|
|
27
39
|
this.verticalAlign = verticalAlign;
|
|
28
|
-
this.
|
|
29
|
-
this.
|
|
40
|
+
this._initialWidth = width;
|
|
41
|
+
this._initialHeight = height;
|
|
30
42
|
this.backgroundColour = backgroundColour;
|
|
31
43
|
}
|
|
32
44
|
/**
|
|
33
45
|
* Ensures the parent GameObject has a BoundsComponent synced with this component.
|
|
46
|
+
* Note: Bounds represent the BASE local size (unscaled).
|
|
34
47
|
*/
|
|
35
48
|
_updateGameObjectBounds() {
|
|
36
49
|
if (!this.gameObject)
|
|
37
50
|
return;
|
|
38
51
|
if (!this.gameObject.bounds) {
|
|
39
|
-
this.gameObject.bounds = new BoundsComponent(this.
|
|
52
|
+
this.gameObject.bounds = new BoundsComponent(this._initialWidth, this._initialHeight);
|
|
40
53
|
this.gameObject.addComponent(this.gameObject.bounds);
|
|
41
54
|
}
|
|
42
55
|
else {
|
|
43
|
-
this.gameObject.bounds.width = this.
|
|
44
|
-
this.gameObject.bounds.height = this.
|
|
56
|
+
this.gameObject.bounds.width = this._initialWidth;
|
|
57
|
+
this.gameObject.bounds.height = this._initialHeight;
|
|
45
58
|
}
|
|
46
59
|
}
|
|
47
60
|
/**
|
|
48
|
-
* Lifecycle hook called
|
|
61
|
+
* Lifecycle hook called when the component is added to a GameObject.
|
|
49
62
|
*/
|
|
50
63
|
onAttach() {
|
|
51
64
|
this._updateGameObjectBounds();
|
|
@@ -55,9 +68,10 @@ export default class TextComponent extends RenderComponent {
|
|
|
55
68
|
* @param ctx The canvas 2D rendering context.
|
|
56
69
|
*/
|
|
57
70
|
draw(ctx) {
|
|
58
|
-
if (!this.gameObject)
|
|
71
|
+
if (!this.gameObject || !this.gameObject.bounds)
|
|
59
72
|
return;
|
|
60
73
|
const { worldPosition, worldRotation, worldScale } = this.gameObject.transform;
|
|
74
|
+
const { width, height } = this.gameObject.bounds;
|
|
61
75
|
ctx.save();
|
|
62
76
|
ctx.translate(worldPosition.x, worldPosition.y);
|
|
63
77
|
if (worldRotation !== 0)
|
|
@@ -65,13 +79,24 @@ export default class TextComponent extends RenderComponent {
|
|
|
65
79
|
ctx.scale(worldScale.x, worldScale.y);
|
|
66
80
|
if (this.backgroundColour) {
|
|
67
81
|
ctx.fillStyle = this.backgroundColour;
|
|
68
|
-
ctx.fillRect(0, 0,
|
|
82
|
+
ctx.fillRect(0, 0, width, height);
|
|
69
83
|
}
|
|
70
84
|
ctx.font = this.font;
|
|
71
85
|
ctx.fillStyle = this.colour;
|
|
72
86
|
ctx.textAlign = this.horizontalAlign;
|
|
73
87
|
ctx.textBaseline = this.verticalAlign;
|
|
74
|
-
|
|
88
|
+
// Calculate draw position based on alignment
|
|
89
|
+
let x = 0;
|
|
90
|
+
let y = 0;
|
|
91
|
+
if (this.horizontalAlign === 'center')
|
|
92
|
+
x = width / 2;
|
|
93
|
+
else if (this.horizontalAlign === 'right' || this.horizontalAlign === 'end')
|
|
94
|
+
x = width;
|
|
95
|
+
if (this.verticalAlign === 'middle')
|
|
96
|
+
y = height / 2;
|
|
97
|
+
else if (this.verticalAlign === 'bottom')
|
|
98
|
+
y = height;
|
|
99
|
+
ctx.fillText(this.text, x, y);
|
|
75
100
|
ctx.restore();
|
|
76
101
|
}
|
|
77
102
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextComponent.js","sourceRoot":"","sources":["../src/TextComponent.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,MAAM,sBAAsB,CAAC;AACnD,OAAO,eAAe,MAAM,sBAAsB,CAAC;AAGnD;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,eAAe;
|
|
1
|
+
{"version":3,"file":"TextComponent.js","sourceRoot":"","sources":["../src/TextComponent.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,10 +14,11 @@ export default class TilemapComponent extends RenderComponent {
|
|
|
14
14
|
constructor(tileset: HTMLImageElement, data: number[][], tileSize: number, tilesetCols: number);
|
|
15
15
|
/**
|
|
16
16
|
* Ensures the parent GameObject has a BoundsComponent synced with this tilemap.
|
|
17
|
+
* Note: Bounds represent the BASE local size (unscaled).
|
|
17
18
|
*/
|
|
18
19
|
private _updateGameObjectBounds;
|
|
19
20
|
/**
|
|
20
|
-
* Lifecycle hook called
|
|
21
|
+
* Lifecycle hook called when the component is added to a GameObject.
|
|
21
22
|
*/
|
|
22
23
|
onAttach(): void;
|
|
23
24
|
/**
|
package/dist/TilemapComponent.js
CHANGED
|
@@ -13,6 +13,7 @@ export default class TilemapComponent extends RenderComponent {
|
|
|
13
13
|
}
|
|
14
14
|
/**
|
|
15
15
|
* Ensures the parent GameObject has a BoundsComponent synced with this tilemap.
|
|
16
|
+
* Note: Bounds represent the BASE local size (unscaled).
|
|
16
17
|
*/
|
|
17
18
|
_updateGameObjectBounds() {
|
|
18
19
|
if (!this.gameObject)
|
|
@@ -29,7 +30,7 @@ export default class TilemapComponent extends RenderComponent {
|
|
|
29
30
|
}
|
|
30
31
|
}
|
|
31
32
|
/**
|
|
32
|
-
* Lifecycle hook called
|
|
33
|
+
* Lifecycle hook called when the component is added to a GameObject.
|
|
33
34
|
*/
|
|
34
35
|
onAttach() {
|
|
35
36
|
this._updateGameObjectBounds();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TilemapComponent.js","sourceRoot":"","sources":["../src/TilemapComponent.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,MAAM,sBAAsB,CAAC;AACnD,OAAO,eAAe,MAAM,sBAAsB,CAAC;AAEnD;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,eAAe;IAU3D,YAAY,OAAyB,EAAE,IAAgB,EAAE,QAAgB,EAAE,WAAmB;QAC5F,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;IAED
|
|
1
|
+
{"version":3,"file":"TilemapComponent.js","sourceRoot":"","sources":["../src/TilemapComponent.ts"],"names":[],"mappings":"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"}
|