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