melonjs 10.3.0 → 10.5.1
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 +6 -6
- package/dist/melonjs.js +3147 -3293
- package/dist/melonjs.min.js +4 -4
- package/dist/melonjs.module.d.ts +3411 -3852
- package/dist/melonjs.module.js +3448 -3210
- package/package.json +18 -17
- package/src/audio/audio.js +29 -30
- package/src/camera/camera2d.js +46 -56
- package/src/entity/entity.js +30 -36
- package/src/game.js +21 -22
- package/src/geometries/ellipse.js +40 -46
- package/src/geometries/line.js +9 -11
- package/src/geometries/poly.js +53 -53
- package/src/geometries/rectangle.js +42 -44
- package/src/index.js +9 -26
- package/src/input/gamepad.js +11 -10
- package/src/input/input.js +2 -3
- package/src/input/keyboard.js +113 -113
- package/src/input/pointer.js +30 -31
- package/src/input/pointerevent.js +26 -26
- package/src/lang/deprecated.js +65 -6
- package/src/level/level.js +23 -24
- package/src/level/tiled/TMXGroup.js +7 -8
- package/src/level/tiled/TMXLayer.js +30 -32
- package/src/level/tiled/TMXObject.js +21 -21
- package/src/level/tiled/TMXTile.js +18 -18
- package/src/level/tiled/TMXTileMap.js +39 -44
- package/src/level/tiled/TMXTileset.js +12 -15
- package/src/level/tiled/TMXTilesetGroup.js +9 -9
- package/src/level/tiled/renderer/TMXHexagonalRenderer.js +7 -8
- package/src/level/tiled/renderer/TMXIsometricRenderer.js +7 -8
- package/src/level/tiled/renderer/TMXOrthogonalRenderer.js +4 -5
- package/src/level/tiled/renderer/TMXRenderer.js +24 -25
- package/src/level/tiled/renderer/TMXStaggeredRenderer.js +1 -4
- package/src/loader/loader.js +14 -15
- package/src/loader/loadingscreen.js +2 -4
- package/src/math/color.js +47 -66
- package/src/math/math.js +15 -16
- package/src/math/matrix2.js +53 -58
- package/src/math/matrix3.js +56 -62
- package/src/math/observable_vector2.js +75 -76
- package/src/math/observable_vector3.js +79 -80
- package/src/math/vector2.js +91 -92
- package/src/math/vector3.js +94 -96
- package/src/particles/emitter.js +38 -40
- package/src/particles/particle.js +4 -5
- package/src/particles/particlecontainer.js +2 -3
- package/src/physics/body.js +46 -143
- package/src/physics/bounds.js +47 -47
- package/src/physics/collision.js +13 -14
- package/src/physics/detector.js +18 -17
- package/src/physics/quadtree.js +17 -19
- package/src/physics/sat.js +26 -26
- package/src/physics/world.js +24 -28
- package/src/plugin/plugin.js +11 -14
- package/src/renderable/GUI.js +41 -46
- package/src/renderable/collectable.js +4 -8
- package/src/renderable/colorlayer.js +6 -10
- package/src/renderable/container.js +87 -72
- package/src/renderable/dragndrop.js +224 -0
- package/src/renderable/imagelayer.js +25 -31
- package/src/renderable/nineslicesprite.js +41 -41
- package/src/renderable/renderable.js +114 -125
- package/src/renderable/sprite.js +62 -68
- package/src/renderable/trigger.js +25 -30
- package/src/state/stage.js +13 -17
- package/src/state/state.js +26 -27
- package/src/system/device.js +74 -75
- package/src/system/event.js +71 -72
- package/src/system/pooling.js +11 -12
- package/src/system/save.js +3 -4
- package/src/system/timer.js +19 -20
- package/src/text/bitmaptext.js +57 -54
- package/src/text/bitmaptextdata.js +10 -10
- package/src/text/glyph.js +3 -0
- package/src/text/text.js +44 -49
- package/src/tweens/easing.js +1 -1
- package/src/tweens/interpolation.js +1 -1
- package/src/tweens/tween.js +43 -44
- package/src/utils/agent.js +3 -4
- package/src/utils/array.js +4 -5
- package/src/utils/file.js +3 -4
- package/src/utils/function.js +4 -5
- package/src/utils/string.js +7 -9
- package/src/utils/utils.js +4 -5
- package/src/video/canvas/canvas_renderer.js +58 -59
- package/src/video/renderer.js +49 -53
- package/src/video/texture.js +98 -111
- package/src/video/texture_cache.js +24 -6
- package/src/video/video.js +16 -17
- package/src/video/webgl/glshader.js +37 -38
- package/src/video/webgl/webgl_compositor.js +31 -32
- package/src/video/webgl/webgl_renderer.js +79 -80
- package/src/entity/draggable.js +0 -130
- package/src/entity/droptarget.js +0 -101
|
@@ -9,18 +9,14 @@ import { clamp } from "./../math/math.js";
|
|
|
9
9
|
/**
|
|
10
10
|
* @classdesc
|
|
11
11
|
* A base class for renderable objects.
|
|
12
|
-
* @
|
|
13
|
-
* @augments me.Rect
|
|
14
|
-
* @memberof me
|
|
15
|
-
* @param {number} x position of the renderable object (accessible through inherited pos.x property)
|
|
16
|
-
* @param {number} y position of the renderable object (accessible through inherited pos.y property)
|
|
17
|
-
* @param {number} width object width
|
|
18
|
-
* @param {number} height object height
|
|
12
|
+
* @augments Rect
|
|
19
13
|
*/
|
|
20
14
|
class Renderable extends Rect {
|
|
21
|
-
|
|
22
15
|
/**
|
|
23
|
-
* @
|
|
16
|
+
* @param {number} x position of the renderable object (accessible through inherited pos.x property)
|
|
17
|
+
* @param {number} y position of the renderable object (accessible through inherited pos.y property)
|
|
18
|
+
* @param {number} width object width
|
|
19
|
+
* @param {number} height object height
|
|
24
20
|
*/
|
|
25
21
|
constructor(x, y, width, height) {
|
|
26
22
|
|
|
@@ -39,17 +35,17 @@ class Renderable extends Rect {
|
|
|
39
35
|
* @type {boolean}
|
|
40
36
|
* @default true
|
|
41
37
|
* @name isKinematic
|
|
42
|
-
* @memberof
|
|
38
|
+
* @memberof Renderable
|
|
43
39
|
*/
|
|
44
40
|
this.isKinematic = true;
|
|
45
41
|
|
|
46
42
|
/**
|
|
47
43
|
* the renderable physic body
|
|
48
44
|
* @public
|
|
49
|
-
* @type {
|
|
50
|
-
* @see
|
|
45
|
+
* @type {Body}
|
|
46
|
+
* @see Body
|
|
51
47
|
* @name body
|
|
52
|
-
* @memberof
|
|
48
|
+
* @memberof Renderable#
|
|
53
49
|
* @example
|
|
54
50
|
* // define a new Player Class
|
|
55
51
|
* class PlayerEntity extends me.Sprite {
|
|
@@ -84,14 +80,14 @@ class Renderable extends Rect {
|
|
|
84
80
|
*/
|
|
85
81
|
this.body = undefined;
|
|
86
82
|
|
|
87
|
-
/**
|
|
88
|
-
* the renderable default transformation matrix
|
|
89
|
-
* @public
|
|
90
|
-
* @type {me.Matrix2d}
|
|
91
|
-
* @name currentTransform
|
|
92
|
-
* @memberof me.Renderable#
|
|
93
|
-
*/
|
|
94
83
|
if (typeof this.currentTransform === "undefined") {
|
|
84
|
+
/**
|
|
85
|
+
* the renderable default transformation matrix
|
|
86
|
+
* @public
|
|
87
|
+
* @type {Matrix2d}
|
|
88
|
+
* @name currentTransform
|
|
89
|
+
* @memberof Renderable#
|
|
90
|
+
*/
|
|
95
91
|
this.currentTransform = pool.pull("Matrix2d");
|
|
96
92
|
}
|
|
97
93
|
this.currentTransform.identity();
|
|
@@ -103,7 +99,7 @@ class Renderable extends Rect {
|
|
|
103
99
|
* @public
|
|
104
100
|
* @type {string}
|
|
105
101
|
* @name GUID
|
|
106
|
-
* @memberof
|
|
102
|
+
* @memberof Renderable
|
|
107
103
|
*/
|
|
108
104
|
this.GUID = undefined;
|
|
109
105
|
|
|
@@ -113,7 +109,7 @@ class Renderable extends Rect {
|
|
|
113
109
|
* @type {Function}
|
|
114
110
|
* @default undefined
|
|
115
111
|
* @name onVisibilityChange
|
|
116
|
-
* @memberof
|
|
112
|
+
* @memberof Renderable#
|
|
117
113
|
* @example
|
|
118
114
|
* this.onVisibilityChange = function(inViewport) {
|
|
119
115
|
* if (inViewport === true) {
|
|
@@ -129,7 +125,7 @@ class Renderable extends Rect {
|
|
|
129
125
|
* @type {boolean}
|
|
130
126
|
* @default false
|
|
131
127
|
* @name alwaysUpdate
|
|
132
|
-
* @memberof
|
|
128
|
+
* @memberof Renderable
|
|
133
129
|
*/
|
|
134
130
|
this.alwaysUpdate = false;
|
|
135
131
|
|
|
@@ -139,7 +135,7 @@ class Renderable extends Rect {
|
|
|
139
135
|
* @type {boolean}
|
|
140
136
|
* @default false
|
|
141
137
|
* @name updateWhenPaused
|
|
142
|
-
* @memberof
|
|
138
|
+
* @memberof Renderable
|
|
143
139
|
*/
|
|
144
140
|
this.updateWhenPaused = false;
|
|
145
141
|
|
|
@@ -149,7 +145,7 @@ class Renderable extends Rect {
|
|
|
149
145
|
* @type {boolean}
|
|
150
146
|
* @default false
|
|
151
147
|
* @name isPersistent
|
|
152
|
-
* @memberof
|
|
148
|
+
* @memberof Renderable
|
|
153
149
|
*/
|
|
154
150
|
this.isPersistent = false;
|
|
155
151
|
|
|
@@ -160,27 +156,27 @@ class Renderable extends Rect {
|
|
|
160
156
|
* @type {boolean}
|
|
161
157
|
* @default false
|
|
162
158
|
* @name floating
|
|
163
|
-
* @memberof
|
|
159
|
+
* @memberof Renderable
|
|
164
160
|
*/
|
|
165
161
|
this.floating = false;
|
|
166
162
|
|
|
167
|
-
/**
|
|
168
|
-
* The anchor point is used for attachment behavior, and/or when applying transformations.<br>
|
|
169
|
-
* The coordinate system places the origin at the top left corner of the frame (0, 0) and (1, 1) means the bottom-right corner<br>
|
|
170
|
-
* <img src="images/anchor_point.png"/><br>
|
|
171
|
-
* a Renderable's anchor point defaults to (0.5,0.5), which corresponds to the center position.<br>
|
|
172
|
-
* <br>
|
|
173
|
-
* <i><b>Note:</b> Object created through Tiled will have their anchorPoint set to (0, 0) to match Tiled Level editor implementation.
|
|
174
|
-
* To specify a value through Tiled, use a json expression like `json:{"x":0.5,"y":0.5}`. </i>
|
|
175
|
-
* @public
|
|
176
|
-
* @type {me.ObservableVector2d}
|
|
177
|
-
* @default <0.5,0.5>
|
|
178
|
-
* @name anchorPoint
|
|
179
|
-
* @memberof me.Renderable#
|
|
180
|
-
*/
|
|
181
163
|
if (this.anchorPoint instanceof ObservableVector2d) {
|
|
182
164
|
this.anchorPoint.setMuted(0.5, 0.5).setCallback(this.onAnchorUpdate, this);
|
|
183
165
|
} else {
|
|
166
|
+
/**
|
|
167
|
+
* The anchor point is used for attachment behavior, and/or when applying transformations.<br>
|
|
168
|
+
* The coordinate system places the origin at the top left corner of the frame (0, 0) and (1, 1) means the bottom-right corner<br>
|
|
169
|
+
* <img src="images/anchor_point.png"/><br>
|
|
170
|
+
* a Renderable's anchor point defaults to (0.5,0.5), which corresponds to the center position.<br>
|
|
171
|
+
* <br>
|
|
172
|
+
* <i><b>Note:</b> Object created through Tiled will have their anchorPoint set to (0, 0) to match Tiled Level editor implementation.
|
|
173
|
+
* To specify a value through Tiled, use a json expression like `json:{"x":0.5,"y":0.5}`. </i>
|
|
174
|
+
* @public
|
|
175
|
+
* @type {ObservableVector2d}
|
|
176
|
+
* @default <0.5,0.5>
|
|
177
|
+
* @name anchorPoint
|
|
178
|
+
* @memberof Renderable#
|
|
179
|
+
*/
|
|
184
180
|
this.anchorPoint = pool.pull("ObservableVector2d", 0.5, 0.5, { onUpdate: this.onAnchorUpdate, scope: this });
|
|
185
181
|
}
|
|
186
182
|
|
|
@@ -191,7 +187,7 @@ class Renderable extends Rect {
|
|
|
191
187
|
* @type {boolean}
|
|
192
188
|
* @default true
|
|
193
189
|
* @name autoTransform
|
|
194
|
-
* @memberof
|
|
190
|
+
* @memberof Renderable
|
|
195
191
|
* @example
|
|
196
192
|
* // enable "automatic" transformation when the object is activated
|
|
197
193
|
* onActivateEvent: function () {
|
|
@@ -209,21 +205,21 @@ class Renderable extends Rect {
|
|
|
209
205
|
/**
|
|
210
206
|
* Define the renderable opacity<br>
|
|
211
207
|
* Set to zero if you do not wish an object to be drawn
|
|
212
|
-
* @see
|
|
213
|
-
* @see
|
|
208
|
+
* @see Renderable#setOpacity
|
|
209
|
+
* @see Renderable#getOpacity
|
|
214
210
|
* @public
|
|
215
211
|
* @type {number}
|
|
216
212
|
* @default 1.0
|
|
217
|
-
* @name
|
|
213
|
+
* @name Renderable#alpha
|
|
218
214
|
*/
|
|
219
215
|
this.alpha = 1.0;
|
|
220
216
|
|
|
221
217
|
/**
|
|
222
218
|
* a reference to the parent object that contains this renderable
|
|
223
219
|
* @public
|
|
224
|
-
* @type {
|
|
220
|
+
* @type {Container|Entity}
|
|
225
221
|
* @default undefined
|
|
226
|
-
* @name
|
|
222
|
+
* @name Renderable#ancestor
|
|
227
223
|
*/
|
|
228
224
|
this.ancestor = undefined;
|
|
229
225
|
|
|
@@ -231,10 +227,10 @@ class Renderable extends Rect {
|
|
|
231
227
|
* A mask limits rendering elements to the shape and position of the given mask object.
|
|
232
228
|
* So, if the renderable is larger than the mask, only the intersecting part of the renderable will be visible.
|
|
233
229
|
* @public
|
|
234
|
-
* @type {
|
|
230
|
+
* @type {Rect|Polygon|Line|Ellipse}
|
|
235
231
|
* @name mask
|
|
236
232
|
* @default undefined
|
|
237
|
-
* @memberof
|
|
233
|
+
* @memberof Renderable#
|
|
238
234
|
* @example
|
|
239
235
|
* // apply a mask in the shape of a Star
|
|
240
236
|
* myNPCSprite.mask = new me.Polygon(myNPCSprite.width / 2, 0, [
|
|
@@ -256,10 +252,10 @@ class Renderable extends Rect {
|
|
|
256
252
|
/**
|
|
257
253
|
* define a tint for this renderable. a (255, 255, 255) r, g, b value will remove the tint effect.
|
|
258
254
|
* @public
|
|
259
|
-
* @type {
|
|
255
|
+
* @type {Color}
|
|
260
256
|
* @name tint
|
|
261
257
|
* @default (255, 255, 255)
|
|
262
|
-
* @memberof
|
|
258
|
+
* @memberof Renderable#
|
|
263
259
|
* @example
|
|
264
260
|
* // add a red tint to this renderable
|
|
265
261
|
* this.tint.setColor(255, 128, 128);
|
|
@@ -274,20 +270,20 @@ class Renderable extends Rect {
|
|
|
274
270
|
* @type {string}
|
|
275
271
|
* @name name
|
|
276
272
|
* @default ""
|
|
277
|
-
* @memberof
|
|
273
|
+
* @memberof Renderable
|
|
278
274
|
*/
|
|
279
275
|
this.name = "";
|
|
280
276
|
|
|
281
|
-
/**
|
|
282
|
-
* Position of the Renderable relative to its parent container
|
|
283
|
-
* @public
|
|
284
|
-
* @type {me.ObservableVector3d}
|
|
285
|
-
* @name pos
|
|
286
|
-
* @memberof me.Renderable#
|
|
287
|
-
*/
|
|
288
277
|
if (this.pos instanceof ObservableVector3d) {
|
|
289
278
|
this.pos.setMuted(x, y, 0).setCallback(this.updateBoundsPos, this);
|
|
290
279
|
} else {
|
|
280
|
+
/**
|
|
281
|
+
* Position of the Renderable relative to its parent container
|
|
282
|
+
* @public
|
|
283
|
+
* @type {ObservableVector3d}
|
|
284
|
+
* @name pos
|
|
285
|
+
* @memberof Renderable#
|
|
286
|
+
*/
|
|
291
287
|
this.pos = pool.pull("ObservableVector3d", x, y, 0, { onUpdate: this.updateBoundsPos, scope: this});
|
|
292
288
|
}
|
|
293
289
|
|
|
@@ -296,7 +292,7 @@ class Renderable extends Rect {
|
|
|
296
292
|
* @type {boolean}
|
|
297
293
|
* @name isDirty
|
|
298
294
|
* @default false
|
|
299
|
-
* @memberof
|
|
295
|
+
* @memberof Renderable#
|
|
300
296
|
*/
|
|
301
297
|
this.isDirty = false;
|
|
302
298
|
|
|
@@ -316,11 +312,10 @@ class Renderable extends Rect {
|
|
|
316
312
|
/**
|
|
317
313
|
* Whether the renderable object is floating, or contained in a floating container
|
|
318
314
|
* @public
|
|
319
|
-
* @see
|
|
320
|
-
* @readonly
|
|
315
|
+
* @see Renderable#floating
|
|
321
316
|
* @type {boolean}
|
|
322
317
|
* @name isFloating
|
|
323
|
-
* @memberof
|
|
318
|
+
* @memberof Renderable
|
|
324
319
|
*/
|
|
325
320
|
get isFloating() {
|
|
326
321
|
return this.floating === true || (typeof this.ancestor !== "undefined" && this.ancestor.floating === true);
|
|
@@ -329,17 +324,14 @@ class Renderable extends Rect {
|
|
|
329
324
|
/**
|
|
330
325
|
* Whether the renderable object is visible and within the viewport
|
|
331
326
|
* @public
|
|
332
|
-
* @readonly
|
|
333
327
|
* @type {boolean}
|
|
334
328
|
* @default false
|
|
335
329
|
* @name inViewport
|
|
336
|
-
* @memberof
|
|
330
|
+
* @memberof Renderable
|
|
337
331
|
*/
|
|
338
|
-
|
|
339
332
|
get inViewport() {
|
|
340
333
|
return this._inViewport;
|
|
341
334
|
}
|
|
342
|
-
|
|
343
335
|
set inViewport(value) {
|
|
344
336
|
if (this._inViewport !== value) {
|
|
345
337
|
this._inViewport = value;
|
|
@@ -352,12 +344,11 @@ class Renderable extends Rect {
|
|
|
352
344
|
/**
|
|
353
345
|
* returns true if this renderable is flipped on the horizontal axis
|
|
354
346
|
* @public
|
|
355
|
-
* @see
|
|
347
|
+
* @see Renderable#flipX
|
|
356
348
|
* @type {boolean}
|
|
357
349
|
* @name isFlippedX
|
|
358
|
-
* @memberof
|
|
350
|
+
* @memberof Renderable
|
|
359
351
|
*/
|
|
360
|
-
|
|
361
352
|
get isFlippedX() {
|
|
362
353
|
return this._flip.x === true;
|
|
363
354
|
}
|
|
@@ -365,12 +356,11 @@ class Renderable extends Rect {
|
|
|
365
356
|
/**
|
|
366
357
|
* returns true if this renderable is flipped on the vertical axis
|
|
367
358
|
* @public
|
|
368
|
-
* @see
|
|
359
|
+
* @see Renderable#flipY
|
|
369
360
|
* @type {boolean}
|
|
370
361
|
* @name isFlippedY
|
|
371
|
-
* @memberof
|
|
362
|
+
* @memberof Renderable
|
|
372
363
|
*/
|
|
373
|
-
|
|
374
364
|
get isFlippedY() {
|
|
375
365
|
return this._flip.y === true;
|
|
376
366
|
}
|
|
@@ -378,9 +368,9 @@ class Renderable extends Rect {
|
|
|
378
368
|
/**
|
|
379
369
|
* returns the bounding box for this renderable
|
|
380
370
|
* @name getBounds
|
|
381
|
-
* @memberof
|
|
371
|
+
* @memberof Renderable.prototype
|
|
382
372
|
* @function
|
|
383
|
-
* @returns {
|
|
373
|
+
* @returns {Bounds} bounding box Rectangle object
|
|
384
374
|
*/
|
|
385
375
|
getBounds() {
|
|
386
376
|
if (typeof this._bounds === "undefined") {
|
|
@@ -399,7 +389,7 @@ class Renderable extends Rect {
|
|
|
399
389
|
/**
|
|
400
390
|
* get the renderable alpha channel value<br>
|
|
401
391
|
* @name getOpacity
|
|
402
|
-
* @memberof
|
|
392
|
+
* @memberof Renderable.prototype
|
|
403
393
|
* @function
|
|
404
394
|
* @returns {number} current opacity value between 0 and 1
|
|
405
395
|
*/
|
|
@@ -410,7 +400,7 @@ class Renderable extends Rect {
|
|
|
410
400
|
/**
|
|
411
401
|
* set the renderable alpha channel value<br>
|
|
412
402
|
* @name setOpacity
|
|
413
|
-
* @memberof
|
|
403
|
+
* @memberof Renderable.prototype
|
|
414
404
|
* @function
|
|
415
405
|
* @param {number} alpha opacity value between 0.0 and 1.0
|
|
416
406
|
*/
|
|
@@ -427,12 +417,12 @@ class Renderable extends Rect {
|
|
|
427
417
|
|
|
428
418
|
/**
|
|
429
419
|
* flip the renderable on the horizontal axis (around the center of the renderable)
|
|
430
|
-
* @see
|
|
420
|
+
* @see Matrix2d#scaleX
|
|
431
421
|
* @name flipX
|
|
432
|
-
* @memberof
|
|
422
|
+
* @memberof Renderable.prototype
|
|
433
423
|
* @function
|
|
434
424
|
* @param {boolean} [flip=true] `true` to flip this renderable.
|
|
435
|
-
* @returns {
|
|
425
|
+
* @returns {Renderable} Reference to this object for method chaining
|
|
436
426
|
*/
|
|
437
427
|
flipX(flip = true) {
|
|
438
428
|
this._flip.x = !!flip;
|
|
@@ -442,12 +432,12 @@ class Renderable extends Rect {
|
|
|
442
432
|
|
|
443
433
|
/**
|
|
444
434
|
* flip the renderable on the vertical axis (around the center of the renderable)
|
|
445
|
-
* @see
|
|
435
|
+
* @see Matrix2d#scaleY
|
|
446
436
|
* @name flipY
|
|
447
|
-
* @memberof
|
|
437
|
+
* @memberof Renderable.prototype
|
|
448
438
|
* @function
|
|
449
439
|
* @param {boolean} [flip=true] `true` to flip this renderable.
|
|
450
|
-
* @returns {
|
|
440
|
+
* @returns {Renderable} Reference to this object for method chaining
|
|
451
441
|
*/
|
|
452
442
|
flipY(flip = true) {
|
|
453
443
|
this._flip.y = !!flip;
|
|
@@ -458,11 +448,11 @@ class Renderable extends Rect {
|
|
|
458
448
|
/**
|
|
459
449
|
* multiply the renderable currentTransform with the given matrix
|
|
460
450
|
* @name transform
|
|
461
|
-
* @memberof
|
|
462
|
-
* @see
|
|
451
|
+
* @memberof Renderable.prototype
|
|
452
|
+
* @see Renderable#currentTransform
|
|
463
453
|
* @function
|
|
464
|
-
* @param {
|
|
465
|
-
* @returns {
|
|
454
|
+
* @param {Matrix2d} m the transformation matrix
|
|
455
|
+
* @returns {Renderable} Reference to this object for method chaining
|
|
466
456
|
*/
|
|
467
457
|
transform(m) {
|
|
468
458
|
this.currentTransform.multiply(m);
|
|
@@ -475,9 +465,9 @@ class Renderable extends Rect {
|
|
|
475
465
|
/**
|
|
476
466
|
* return the angle to the specified target
|
|
477
467
|
* @name angleTo
|
|
478
|
-
* @memberof
|
|
468
|
+
* @memberof Renderable
|
|
479
469
|
* @function
|
|
480
|
-
* @param {
|
|
470
|
+
* @param {Renderable|Vector2d|Vector3d} target
|
|
481
471
|
* @returns {number} angle in radians
|
|
482
472
|
*/
|
|
483
473
|
angleTo(target) {
|
|
@@ -499,9 +489,9 @@ class Renderable extends Rect {
|
|
|
499
489
|
/**
|
|
500
490
|
* return the distance to the specified target
|
|
501
491
|
* @name distanceTo
|
|
502
|
-
* @memberof
|
|
492
|
+
* @memberof Renderable
|
|
503
493
|
* @function
|
|
504
|
-
* @param {
|
|
494
|
+
* @param {Renderable|Vector2d|Vector3d} target
|
|
505
495
|
* @returns {number} distance
|
|
506
496
|
*/
|
|
507
497
|
distanceTo(target) {
|
|
@@ -523,10 +513,10 @@ class Renderable extends Rect {
|
|
|
523
513
|
/**
|
|
524
514
|
* Rotate this renderable towards the given target.
|
|
525
515
|
* @name lookAt
|
|
526
|
-
* @memberof
|
|
516
|
+
* @memberof Renderable.prototype
|
|
527
517
|
* @function
|
|
528
|
-
* @param {
|
|
529
|
-
* @returns {
|
|
518
|
+
* @param {Renderable|Vector2d|Vector3d} target the renderable or position to look at
|
|
519
|
+
* @returns {Renderable} Reference to this object for method chaining
|
|
530
520
|
*/
|
|
531
521
|
lookAt(target) {
|
|
532
522
|
var position;
|
|
@@ -547,11 +537,11 @@ class Renderable extends Rect {
|
|
|
547
537
|
/**
|
|
548
538
|
* Rotate this renderable by the specified angle (in radians).
|
|
549
539
|
* @name rotate
|
|
550
|
-
* @memberof
|
|
540
|
+
* @memberof Renderable.prototype
|
|
551
541
|
* @function
|
|
552
542
|
* @param {number} angle The angle to rotate (in radians)
|
|
553
|
-
* @param {
|
|
554
|
-
* @returns {
|
|
543
|
+
* @param {Vector2d|ObservableVector2d} [v] an optional point to rotate around
|
|
544
|
+
* @returns {Renderable} Reference to this object for method chaining
|
|
555
545
|
*/
|
|
556
546
|
rotate(angle, v) {
|
|
557
547
|
if (!isNaN(angle)) {
|
|
@@ -569,11 +559,11 @@ class Renderable extends Rect {
|
|
|
569
559
|
* is an image, the image.width and image.height properties are unaltered but the currentTransform
|
|
570
560
|
* member will be changed.
|
|
571
561
|
* @name scale
|
|
572
|
-
* @memberof
|
|
562
|
+
* @memberof Renderable.prototype
|
|
573
563
|
* @function
|
|
574
564
|
* @param {number} x a number representing the abscissa of the scaling vector.
|
|
575
565
|
* @param {number} [y=x] a number representing the ordinate of the scaling vector.
|
|
576
|
-
* @returns {
|
|
566
|
+
* @returns {Renderable} Reference to this object for method chaining
|
|
577
567
|
*/
|
|
578
568
|
scale(x, y) {
|
|
579
569
|
this.currentTransform.scale(x, y);
|
|
@@ -585,10 +575,10 @@ class Renderable extends Rect {
|
|
|
585
575
|
/**
|
|
586
576
|
* scale the renderable around his anchor point
|
|
587
577
|
* @name scaleV
|
|
588
|
-
* @memberof
|
|
578
|
+
* @memberof Renderable.prototype
|
|
589
579
|
* @function
|
|
590
|
-
* @param {
|
|
591
|
-
* @returns {
|
|
580
|
+
* @param {Vector2d} v scaling vector
|
|
581
|
+
* @returns {Renderable} Reference to this object for method chaining
|
|
592
582
|
*/
|
|
593
583
|
scaleV(v) {
|
|
594
584
|
this.scale(v.x, v.y);
|
|
@@ -597,15 +587,15 @@ class Renderable extends Rect {
|
|
|
597
587
|
|
|
598
588
|
/**
|
|
599
589
|
* update function. <br>
|
|
600
|
-
* automatically called by the game manager {@link
|
|
590
|
+
* automatically called by the game manager {@link game}
|
|
601
591
|
* @name update
|
|
602
|
-
* @memberof
|
|
592
|
+
* @memberof Renderable.prototype
|
|
603
593
|
* @function
|
|
604
594
|
* @protected
|
|
605
595
|
* @param {number} dt time since the last update in milliseconds.
|
|
606
596
|
* @returns {boolean} true if the renderable is dirty
|
|
607
597
|
*/
|
|
608
|
-
update(
|
|
598
|
+
update(dt) { // eslint-disable-line no-unused-vars
|
|
609
599
|
return this.isDirty;
|
|
610
600
|
}
|
|
611
601
|
|
|
@@ -613,9 +603,9 @@ class Renderable extends Rect {
|
|
|
613
603
|
* update the bounding box for this shape.
|
|
614
604
|
* @ignore
|
|
615
605
|
* @name updateBounds
|
|
616
|
-
* @memberof
|
|
606
|
+
* @memberof Renderable.prototype
|
|
617
607
|
* @function
|
|
618
|
-
* @returns {
|
|
608
|
+
* @returns {Bounds} this shape bounding box Rectangle object
|
|
619
609
|
*/
|
|
620
610
|
updateBounds() {
|
|
621
611
|
super.updateBounds();
|
|
@@ -627,7 +617,7 @@ class Renderable extends Rect {
|
|
|
627
617
|
* update the renderable's bounding rect (private)
|
|
628
618
|
* @ignore
|
|
629
619
|
* @name updateBoundsPos
|
|
630
|
-
* @memberof
|
|
620
|
+
* @memberof Renderable.prototype
|
|
631
621
|
* @function
|
|
632
622
|
*/
|
|
633
623
|
updateBoundsPos(newX, newY) {
|
|
@@ -659,9 +649,9 @@ class Renderable extends Rect {
|
|
|
659
649
|
/**
|
|
660
650
|
* return the renderable absolute position in the game world
|
|
661
651
|
* @name getAbsolutePosition
|
|
662
|
-
* @memberof
|
|
652
|
+
* @memberof Renderable.prototype
|
|
663
653
|
* @function
|
|
664
|
-
* @returns {
|
|
654
|
+
* @returns {Vector2d}
|
|
665
655
|
*/
|
|
666
656
|
getAbsolutePosition() {
|
|
667
657
|
if (typeof this._absPos === "undefined") {
|
|
@@ -679,7 +669,7 @@ class Renderable extends Rect {
|
|
|
679
669
|
* called when the anchor point value is changed
|
|
680
670
|
* @private
|
|
681
671
|
* @name onAnchorUpdate
|
|
682
|
-
* @memberof
|
|
672
|
+
* @memberof Renderable.prototype
|
|
683
673
|
* @function
|
|
684
674
|
* @param {number} x the new X value to be set for the anchor
|
|
685
675
|
* @param {number} y the new Y value to be set for the anchor
|
|
@@ -695,12 +685,12 @@ class Renderable extends Rect {
|
|
|
695
685
|
/**
|
|
696
686
|
* prepare the rendering context before drawing
|
|
697
687
|
* (apply defined transforms, anchor point). <br>
|
|
698
|
-
* automatically called by the game manager {@link
|
|
688
|
+
* automatically called by the game manager {@link game}
|
|
699
689
|
* @name preDraw
|
|
700
|
-
* @memberof
|
|
690
|
+
* @memberof Renderable.prototype
|
|
701
691
|
* @function
|
|
702
692
|
* @protected
|
|
703
|
-
* @param {
|
|
693
|
+
* @param {CanvasRenderer|WebGLRenderer} renderer a renderer object
|
|
704
694
|
*/
|
|
705
695
|
preDraw(renderer) {
|
|
706
696
|
var bounds = this.getBounds();
|
|
@@ -746,28 +736,27 @@ class Renderable extends Rect {
|
|
|
746
736
|
|
|
747
737
|
/**
|
|
748
738
|
* object draw. <br>
|
|
749
|
-
* automatically called by the game manager {@link
|
|
739
|
+
* automatically called by the game manager {@link game}
|
|
750
740
|
* @name draw
|
|
751
|
-
* @memberof
|
|
741
|
+
* @memberof Renderable.prototype
|
|
752
742
|
* @function
|
|
753
743
|
* @protected
|
|
754
|
-
* @param {
|
|
744
|
+
* @param {CanvasRenderer|WebGLRenderer} renderer a renderer object
|
|
755
745
|
*/
|
|
756
|
-
draw(
|
|
746
|
+
draw(renderer) { // eslint-disable-line no-unused-vars
|
|
757
747
|
// empty one !
|
|
758
748
|
}
|
|
759
749
|
|
|
760
750
|
/**
|
|
761
751
|
* restore the rendering context after drawing. <br>
|
|
762
|
-
* automatically called by the game manager {@link
|
|
752
|
+
* automatically called by the game manager {@link game}
|
|
763
753
|
* @name postDraw
|
|
764
|
-
* @memberof
|
|
754
|
+
* @memberof Renderable.prototype
|
|
765
755
|
* @function
|
|
766
756
|
* @protected
|
|
767
|
-
* @param {
|
|
757
|
+
* @param {CanvasRenderer|WebGLRenderer} renderer a renderer object
|
|
768
758
|
*/
|
|
769
759
|
postDraw(renderer) {
|
|
770
|
-
|
|
771
760
|
// remove the previously applied tint
|
|
772
761
|
renderer.clearTint();
|
|
773
762
|
|
|
@@ -787,10 +776,10 @@ class Renderable extends Rect {
|
|
|
787
776
|
* onCollision callback, triggered in case of collision,
|
|
788
777
|
* when this renderable body is colliding with another one
|
|
789
778
|
* @name onCollision
|
|
790
|
-
* @memberof
|
|
779
|
+
* @memberof Renderable.prototype
|
|
791
780
|
* @function
|
|
792
|
-
* @param {
|
|
793
|
-
* @param {
|
|
781
|
+
* @param {collision.ResponseObject} response the collision response object
|
|
782
|
+
* @param {Renderable} other the other renderable touching this one (a reference to response.a or response.b)
|
|
794
783
|
* @returns {boolean} true if the object should respond to the collision (its position and velocity will be corrected)
|
|
795
784
|
* @example
|
|
796
785
|
* // colision handler
|
|
@@ -864,7 +853,7 @@ class Renderable extends Rect {
|
|
|
864
853
|
* OnDestroy Notification function<br>
|
|
865
854
|
* Called by engine before deleting the object
|
|
866
855
|
* @name onDestroyEvent
|
|
867
|
-
* @memberof
|
|
856
|
+
* @memberof Renderable
|
|
868
857
|
* @function
|
|
869
858
|
*/
|
|
870
859
|
onDestroyEvent() {
|