melonjs 10.2.0 → 10.3.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 +1 -1
- package/dist/melonjs.js +4435 -4283
- package/dist/melonjs.min.js +4 -4
- package/dist/melonjs.module.d.ts +3348 -3833
- package/dist/melonjs.module.js +4025 -3920
- package/package.json +13 -14
- package/src/audio/audio.js +45 -45
- package/src/camera/camera2d.js +78 -101
- package/src/entity/draggable.js +21 -29
- package/src/entity/droptarget.js +24 -31
- package/src/entity/entity.js +34 -38
- package/src/game.js +8 -8
- package/src/{shapes → geometries}/ellipse.js +46 -46
- package/src/{shapes → geometries}/line.js +14 -14
- package/src/{shapes → geometries}/poly.js +103 -54
- package/src/{shapes → geometries}/rectangle.js +73 -120
- package/src/index.js +18 -19
- package/src/input/gamepad.js +20 -20
- package/src/input/input.js +3 -3
- package/src/input/keyboard.js +122 -124
- package/src/input/pointer.js +102 -62
- package/src/input/pointerevent.js +97 -42
- package/src/lang/deprecated.js +29 -18
- package/src/level/level.js +34 -26
- package/src/level/tiled/TMXGroup.js +12 -13
- package/src/level/tiled/TMXLayer.js +41 -42
- package/src/level/tiled/TMXObject.js +76 -70
- package/src/level/tiled/TMXTile.js +13 -15
- package/src/level/tiled/TMXTileMap.js +26 -25
- package/src/level/tiled/TMXTileset.js +14 -15
- package/src/level/tiled/TMXTilesetGroup.js +5 -6
- package/src/level/tiled/TMXUtils.js +13 -11
- package/src/level/tiled/renderer/TMXHexagonalRenderer.js +3 -4
- package/src/level/tiled/renderer/TMXIsometricRenderer.js +3 -4
- package/src/level/tiled/renderer/TMXOrthogonalRenderer.js +2 -3
- package/src/level/tiled/renderer/TMXRenderer.js +18 -19
- package/src/level/tiled/renderer/TMXStaggeredRenderer.js +2 -3
- package/src/loader/loader.js +46 -40
- package/src/loader/loadingscreen.js +7 -7
- package/src/math/color.js +68 -88
- package/src/math/math.js +33 -33
- package/src/math/matrix2.js +70 -71
- package/src/math/matrix3.js +90 -91
- package/src/math/observable_vector2.js +91 -92
- package/src/math/observable_vector3.js +110 -106
- package/src/math/vector2.js +116 -104
- package/src/math/vector3.js +129 -110
- package/src/particles/emitter.js +116 -126
- package/src/particles/particle.js +4 -5
- package/src/particles/particlecontainer.js +2 -3
- package/src/physics/body.js +82 -83
- package/src/physics/bounds.js +64 -66
- package/src/physics/collision.js +21 -22
- package/src/physics/detector.js +13 -13
- package/src/physics/quadtree.js +26 -25
- package/src/physics/sat.js +21 -21
- package/src/physics/world.js +23 -22
- package/src/plugin/plugin.js +12 -13
- package/src/renderable/GUI.js +20 -26
- package/src/renderable/collectable.js +6 -7
- package/src/renderable/colorlayer.js +11 -12
- package/src/renderable/container.js +98 -81
- package/src/renderable/imagelayer.js +33 -35
- package/src/renderable/nineslicesprite.js +15 -16
- package/src/renderable/renderable.js +112 -111
- package/src/renderable/sprite.js +71 -58
- package/src/renderable/trigger.js +17 -19
- package/src/state/stage.js +14 -15
- package/src/state/state.js +78 -78
- package/src/system/device.js +137 -180
- package/src/system/event.js +116 -104
- package/src/system/pooling.js +15 -15
- package/src/system/save.js +9 -6
- package/src/system/timer.js +33 -33
- package/src/text/bitmaptext.js +39 -46
- package/src/text/bitmaptextdata.js +14 -15
- package/src/text/text.js +55 -58
- package/src/tweens/easing.js +5 -5
- package/src/tweens/interpolation.js +5 -5
- package/src/tweens/tween.js +49 -40
- package/src/utils/agent.js +12 -11
- package/src/utils/array.js +8 -8
- package/src/utils/file.js +7 -7
- package/src/utils/function.js +8 -8
- package/src/utils/string.js +19 -19
- package/src/utils/utils.js +23 -23
- package/src/video/canvas/canvas_renderer.js +127 -128
- package/src/video/renderer.js +69 -69
- package/src/video/texture.js +80 -82
- package/src/video/texture_cache.js +2 -4
- package/src/video/video.js +38 -38
- package/src/video/webgl/buffer/vertex.js +11 -3
- package/src/video/webgl/glshader.js +31 -32
- package/src/video/webgl/webgl_compositor.js +145 -127
- package/src/video/webgl/webgl_renderer.js +196 -175
|
@@ -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";
|
|
@@ -10,13 +10,12 @@ import { clamp } from "./../math/math.js";
|
|
|
10
10
|
* @classdesc
|
|
11
11
|
* A base class for renderable objects.
|
|
12
12
|
* @class Renderable
|
|
13
|
-
* @
|
|
14
|
-
* @
|
|
15
|
-
* @
|
|
16
|
-
* @param {
|
|
17
|
-
* @param {
|
|
18
|
-
* @param {
|
|
19
|
-
* @param {Number} height object height
|
|
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
|
|
20
19
|
*/
|
|
21
20
|
class Renderable extends Rect {
|
|
22
21
|
|
|
@@ -37,10 +36,10 @@ class Renderable extends Rect {
|
|
|
37
36
|
/**
|
|
38
37
|
* If true then physic collision and input events will not impact this renderable
|
|
39
38
|
* @public
|
|
40
|
-
* @type
|
|
39
|
+
* @type {boolean}
|
|
41
40
|
* @default true
|
|
42
41
|
* @name isKinematic
|
|
43
|
-
* @
|
|
42
|
+
* @memberof me.Renderable
|
|
44
43
|
*/
|
|
45
44
|
this.isKinematic = true;
|
|
46
45
|
|
|
@@ -50,7 +49,7 @@ class Renderable extends Rect {
|
|
|
50
49
|
* @type {me.Body}
|
|
51
50
|
* @see me.Body
|
|
52
51
|
* @name body
|
|
53
|
-
* @
|
|
52
|
+
* @memberof me.Renderable#
|
|
54
53
|
* @example
|
|
55
54
|
* // define a new Player Class
|
|
56
55
|
* class PlayerEntity extends me.Sprite {
|
|
@@ -88,9 +87,9 @@ class Renderable extends Rect {
|
|
|
88
87
|
/**
|
|
89
88
|
* the renderable default transformation matrix
|
|
90
89
|
* @public
|
|
91
|
-
* @type me.Matrix2d
|
|
90
|
+
* @type {me.Matrix2d}
|
|
92
91
|
* @name currentTransform
|
|
93
|
-
* @
|
|
92
|
+
* @memberof me.Renderable#
|
|
94
93
|
*/
|
|
95
94
|
if (typeof this.currentTransform === "undefined") {
|
|
96
95
|
this.currentTransform = pool.pull("Matrix2d");
|
|
@@ -102,19 +101,19 @@ class Renderable extends Rect {
|
|
|
102
101
|
* a GUID will be allocated for any renderable object added <br>
|
|
103
102
|
* to an object container (including the `me.game.world` container)
|
|
104
103
|
* @public
|
|
105
|
-
* @type
|
|
104
|
+
* @type {string}
|
|
106
105
|
* @name GUID
|
|
107
|
-
* @
|
|
106
|
+
* @memberof me.Renderable
|
|
108
107
|
*/
|
|
109
108
|
this.GUID = undefined;
|
|
110
109
|
|
|
111
110
|
/**
|
|
112
111
|
* an event handler that is called when the renderable leave or enter a camera viewport
|
|
113
112
|
* @public
|
|
114
|
-
* @type
|
|
113
|
+
* @type {Function}
|
|
115
114
|
* @default undefined
|
|
116
115
|
* @name onVisibilityChange
|
|
117
|
-
* @
|
|
116
|
+
* @memberof me.Renderable#
|
|
118
117
|
* @example
|
|
119
118
|
* this.onVisibilityChange = function(inViewport) {
|
|
120
119
|
* if (inViewport === true) {
|
|
@@ -127,30 +126,30 @@ class Renderable extends Rect {
|
|
|
127
126
|
/**
|
|
128
127
|
* Whether the renderable object will always update, even when outside of the viewport<br>
|
|
129
128
|
* @public
|
|
130
|
-
* @type
|
|
129
|
+
* @type {boolean}
|
|
131
130
|
* @default false
|
|
132
131
|
* @name alwaysUpdate
|
|
133
|
-
* @
|
|
132
|
+
* @memberof me.Renderable
|
|
134
133
|
*/
|
|
135
134
|
this.alwaysUpdate = false;
|
|
136
135
|
|
|
137
136
|
/**
|
|
138
137
|
* Whether to update this object when the game is paused.
|
|
139
138
|
* @public
|
|
140
|
-
* @type
|
|
139
|
+
* @type {boolean}
|
|
141
140
|
* @default false
|
|
142
141
|
* @name updateWhenPaused
|
|
143
|
-
* @
|
|
142
|
+
* @memberof me.Renderable
|
|
144
143
|
*/
|
|
145
144
|
this.updateWhenPaused = false;
|
|
146
145
|
|
|
147
146
|
/**
|
|
148
147
|
* make the renderable object persistent over level changes<br>
|
|
149
148
|
* @public
|
|
150
|
-
* @type
|
|
149
|
+
* @type {boolean}
|
|
151
150
|
* @default false
|
|
152
151
|
* @name isPersistent
|
|
153
|
-
* @
|
|
152
|
+
* @memberof me.Renderable
|
|
154
153
|
*/
|
|
155
154
|
this.isPersistent = false;
|
|
156
155
|
|
|
@@ -158,10 +157,10 @@ class Renderable extends Rect {
|
|
|
158
157
|
* If true, this renderable will be rendered using screen coordinates,
|
|
159
158
|
* as opposed to world coordinates. Use this, for example, to define UI elements.
|
|
160
159
|
* @public
|
|
161
|
-
* @type
|
|
160
|
+
* @type {boolean}
|
|
162
161
|
* @default false
|
|
163
162
|
* @name floating
|
|
164
|
-
* @
|
|
163
|
+
* @memberof me.Renderable
|
|
165
164
|
*/
|
|
166
165
|
this.floating = false;
|
|
167
166
|
|
|
@@ -174,10 +173,10 @@ class Renderable extends Rect {
|
|
|
174
173
|
* <i><b>Note:</b> Object created through Tiled will have their anchorPoint set to (0, 0) to match Tiled Level editor implementation.
|
|
175
174
|
* To specify a value through Tiled, use a json expression like `json:{"x":0.5,"y":0.5}`. </i>
|
|
176
175
|
* @public
|
|
177
|
-
* @type me.ObservableVector2d
|
|
176
|
+
* @type {me.ObservableVector2d}
|
|
178
177
|
* @default <0.5,0.5>
|
|
179
178
|
* @name anchorPoint
|
|
180
|
-
* @
|
|
179
|
+
* @memberof me.Renderable#
|
|
181
180
|
*/
|
|
182
181
|
if (this.anchorPoint instanceof ObservableVector2d) {
|
|
183
182
|
this.anchorPoint.setMuted(0.5, 0.5).setCallback(this.onAnchorUpdate, this);
|
|
@@ -189,10 +188,10 @@ class Renderable extends Rect {
|
|
|
189
188
|
* When enabled, an object container will automatically apply
|
|
190
189
|
* any defined transformation before calling the child draw method.
|
|
191
190
|
* @public
|
|
192
|
-
* @type
|
|
191
|
+
* @type {boolean}
|
|
193
192
|
* @default true
|
|
194
193
|
* @name autoTransform
|
|
195
|
-
* @
|
|
194
|
+
* @memberof me.Renderable
|
|
196
195
|
* @example
|
|
197
196
|
* // enable "automatic" transformation when the object is activated
|
|
198
197
|
* onActivateEvent: function () {
|
|
@@ -213,7 +212,7 @@ class Renderable extends Rect {
|
|
|
213
212
|
* @see me.Renderable#setOpacity
|
|
214
213
|
* @see me.Renderable#getOpacity
|
|
215
214
|
* @public
|
|
216
|
-
* @type
|
|
215
|
+
* @type {number}
|
|
217
216
|
* @default 1.0
|
|
218
217
|
* @name me.Renderable#alpha
|
|
219
218
|
*/
|
|
@@ -222,7 +221,7 @@ class Renderable extends Rect {
|
|
|
222
221
|
/**
|
|
223
222
|
* a reference to the parent object that contains this renderable
|
|
224
223
|
* @public
|
|
225
|
-
* @type me.Container|me.Entity
|
|
224
|
+
* @type {me.Container|me.Entity}
|
|
226
225
|
* @default undefined
|
|
227
226
|
* @name me.Renderable#ancestor
|
|
228
227
|
*/
|
|
@@ -235,7 +234,7 @@ class Renderable extends Rect {
|
|
|
235
234
|
* @type {me.Rect|me.Polygon|me.Line|me.Ellipse}
|
|
236
235
|
* @name mask
|
|
237
236
|
* @default undefined
|
|
238
|
-
* @
|
|
237
|
+
* @memberof me.Renderable#
|
|
239
238
|
* @example
|
|
240
239
|
* // apply a mask in the shape of a Star
|
|
241
240
|
* myNPCSprite.mask = new me.Polygon(myNPCSprite.width / 2, 0, [
|
|
@@ -260,7 +259,7 @@ class Renderable extends Rect {
|
|
|
260
259
|
* @type {me.Color}
|
|
261
260
|
* @name tint
|
|
262
261
|
* @default (255, 255, 255)
|
|
263
|
-
* @
|
|
262
|
+
* @memberof me.Renderable#
|
|
264
263
|
* @example
|
|
265
264
|
* // add a red tint to this renderable
|
|
266
265
|
* this.tint.setColor(255, 128, 128);
|
|
@@ -272,10 +271,10 @@ class Renderable extends Rect {
|
|
|
272
271
|
/**
|
|
273
272
|
* The name of the renderable
|
|
274
273
|
* @public
|
|
275
|
-
* @type {
|
|
274
|
+
* @type {string}
|
|
276
275
|
* @name name
|
|
277
276
|
* @default ""
|
|
278
|
-
* @
|
|
277
|
+
* @memberof me.Renderable
|
|
279
278
|
*/
|
|
280
279
|
this.name = "";
|
|
281
280
|
|
|
@@ -284,7 +283,7 @@ class Renderable extends Rect {
|
|
|
284
283
|
* @public
|
|
285
284
|
* @type {me.ObservableVector3d}
|
|
286
285
|
* @name pos
|
|
287
|
-
* @
|
|
286
|
+
* @memberof me.Renderable#
|
|
288
287
|
*/
|
|
289
288
|
if (this.pos instanceof ObservableVector3d) {
|
|
290
289
|
this.pos.setMuted(x, y, 0).setCallback(this.updateBoundsPos, this);
|
|
@@ -294,10 +293,10 @@ class Renderable extends Rect {
|
|
|
294
293
|
|
|
295
294
|
/**
|
|
296
295
|
* when true the renderable will be redrawn during the next update cycle
|
|
297
|
-
* @type {
|
|
296
|
+
* @type {boolean}
|
|
298
297
|
* @name isDirty
|
|
299
298
|
* @default false
|
|
300
|
-
* @
|
|
299
|
+
* @memberof me.Renderable#
|
|
301
300
|
*/
|
|
302
301
|
this.isDirty = false;
|
|
303
302
|
|
|
@@ -314,26 +313,33 @@ class Renderable extends Rect {
|
|
|
314
313
|
this.setOpacity(1.0);
|
|
315
314
|
}
|
|
316
315
|
|
|
316
|
+
/**
|
|
317
|
+
* Whether the renderable object is floating, or contained in a floating container
|
|
318
|
+
* @public
|
|
319
|
+
* @see me.Renderable#floating
|
|
320
|
+
* @readonly
|
|
321
|
+
* @type {boolean}
|
|
322
|
+
* @name isFloating
|
|
323
|
+
* @memberof me.Renderable
|
|
324
|
+
*/
|
|
325
|
+
get isFloating() {
|
|
326
|
+
return this.floating === true || (typeof this.ancestor !== "undefined" && this.ancestor.floating === true);
|
|
327
|
+
}
|
|
328
|
+
|
|
317
329
|
/**
|
|
318
330
|
* Whether the renderable object is visible and within the viewport
|
|
319
331
|
* @public
|
|
320
332
|
* @readonly
|
|
321
|
-
* @type
|
|
333
|
+
* @type {boolean}
|
|
322
334
|
* @default false
|
|
323
335
|
* @name inViewport
|
|
324
|
-
* @
|
|
336
|
+
* @memberof me.Renderable
|
|
325
337
|
*/
|
|
326
338
|
|
|
327
|
-
/**
|
|
328
|
-
* @ignore
|
|
329
|
-
*/
|
|
330
339
|
get inViewport() {
|
|
331
340
|
return this._inViewport;
|
|
332
341
|
}
|
|
333
342
|
|
|
334
|
-
/**
|
|
335
|
-
* @ignore
|
|
336
|
-
*/
|
|
337
343
|
set inViewport(value) {
|
|
338
344
|
if (this._inViewport !== value) {
|
|
339
345
|
this._inViewport = value;
|
|
@@ -347,14 +353,11 @@ class Renderable extends Rect {
|
|
|
347
353
|
* returns true if this renderable is flipped on the horizontal axis
|
|
348
354
|
* @public
|
|
349
355
|
* @see me.Renderable#flipX
|
|
350
|
-
* @type {
|
|
356
|
+
* @type {boolean}
|
|
351
357
|
* @name isFlippedX
|
|
352
|
-
* @
|
|
358
|
+
* @memberof me.Renderable
|
|
353
359
|
*/
|
|
354
360
|
|
|
355
|
-
/**
|
|
356
|
-
* @ignore
|
|
357
|
-
*/
|
|
358
361
|
get isFlippedX() {
|
|
359
362
|
return this._flip.x === true;
|
|
360
363
|
}
|
|
@@ -363,14 +366,11 @@ class Renderable extends Rect {
|
|
|
363
366
|
* returns true if this renderable is flipped on the vertical axis
|
|
364
367
|
* @public
|
|
365
368
|
* @see me.Renderable#flipY
|
|
366
|
-
* @type {
|
|
369
|
+
* @type {boolean}
|
|
367
370
|
* @name isFlippedY
|
|
368
|
-
* @
|
|
371
|
+
* @memberof me.Renderable
|
|
369
372
|
*/
|
|
370
373
|
|
|
371
|
-
/**
|
|
372
|
-
* @ignore
|
|
373
|
-
*/
|
|
374
374
|
get isFlippedY() {
|
|
375
375
|
return this._flip.y === true;
|
|
376
376
|
}
|
|
@@ -378,9 +378,9 @@ class Renderable extends Rect {
|
|
|
378
378
|
/**
|
|
379
379
|
* returns the bounding box for this renderable
|
|
380
380
|
* @name getBounds
|
|
381
|
-
* @
|
|
381
|
+
* @memberof me.Renderable.prototype
|
|
382
382
|
* @function
|
|
383
|
-
* @
|
|
383
|
+
* @returns {me.Bounds} bounding box Rectangle object
|
|
384
384
|
*/
|
|
385
385
|
getBounds() {
|
|
386
386
|
if (typeof this._bounds === "undefined") {
|
|
@@ -399,9 +399,9 @@ class Renderable extends Rect {
|
|
|
399
399
|
/**
|
|
400
400
|
* get the renderable alpha channel value<br>
|
|
401
401
|
* @name getOpacity
|
|
402
|
-
* @
|
|
402
|
+
* @memberof me.Renderable.prototype
|
|
403
403
|
* @function
|
|
404
|
-
* @
|
|
404
|
+
* @returns {number} current opacity value between 0 and 1
|
|
405
405
|
*/
|
|
406
406
|
getOpacity() {
|
|
407
407
|
return this.alpha;
|
|
@@ -410,9 +410,9 @@ class Renderable extends Rect {
|
|
|
410
410
|
/**
|
|
411
411
|
* set the renderable alpha channel value<br>
|
|
412
412
|
* @name setOpacity
|
|
413
|
-
* @
|
|
413
|
+
* @memberof me.Renderable.prototype
|
|
414
414
|
* @function
|
|
415
|
-
* @param {
|
|
415
|
+
* @param {number} alpha opacity value between 0.0 and 1.0
|
|
416
416
|
*/
|
|
417
417
|
setOpacity(alpha) {
|
|
418
418
|
if (typeof (alpha) === "number") {
|
|
@@ -429,10 +429,10 @@ class Renderable extends Rect {
|
|
|
429
429
|
* flip the renderable on the horizontal axis (around the center of the renderable)
|
|
430
430
|
* @see me.Matrix2d#scaleX
|
|
431
431
|
* @name flipX
|
|
432
|
-
* @
|
|
432
|
+
* @memberof me.Renderable.prototype
|
|
433
433
|
* @function
|
|
434
|
-
* @param {
|
|
435
|
-
* @
|
|
434
|
+
* @param {boolean} [flip=true] `true` to flip this renderable.
|
|
435
|
+
* @returns {me.Renderable} Reference to this object for method chaining
|
|
436
436
|
*/
|
|
437
437
|
flipX(flip = true) {
|
|
438
438
|
this._flip.x = !!flip;
|
|
@@ -444,10 +444,10 @@ class Renderable extends Rect {
|
|
|
444
444
|
* flip the renderable on the vertical axis (around the center of the renderable)
|
|
445
445
|
* @see me.Matrix2d#scaleY
|
|
446
446
|
* @name flipY
|
|
447
|
-
* @
|
|
447
|
+
* @memberof me.Renderable.prototype
|
|
448
448
|
* @function
|
|
449
|
-
* @param {
|
|
450
|
-
* @
|
|
449
|
+
* @param {boolean} [flip=true] `true` to flip this renderable.
|
|
450
|
+
* @returns {me.Renderable} Reference to this object for method chaining
|
|
451
451
|
*/
|
|
452
452
|
flipY(flip = true) {
|
|
453
453
|
this._flip.y = !!flip;
|
|
@@ -458,11 +458,11 @@ class Renderable extends Rect {
|
|
|
458
458
|
/**
|
|
459
459
|
* multiply the renderable currentTransform with the given matrix
|
|
460
460
|
* @name transform
|
|
461
|
-
* @
|
|
461
|
+
* @memberof me.Renderable.prototype
|
|
462
462
|
* @see me.Renderable#currentTransform
|
|
463
463
|
* @function
|
|
464
|
-
* @param {me.Matrix2d}
|
|
465
|
-
* @
|
|
464
|
+
* @param {me.Matrix2d} m the transformation matrix
|
|
465
|
+
* @returns {me.Renderable} Reference to this object for method chaining
|
|
466
466
|
*/
|
|
467
467
|
transform(m) {
|
|
468
468
|
this.currentTransform.multiply(m);
|
|
@@ -475,10 +475,10 @@ class Renderable extends Rect {
|
|
|
475
475
|
/**
|
|
476
476
|
* return the angle to the specified target
|
|
477
477
|
* @name angleTo
|
|
478
|
-
* @
|
|
478
|
+
* @memberof me.Renderable
|
|
479
479
|
* @function
|
|
480
480
|
* @param {me.Renderable|me.Vector2d|me.Vector3d} target
|
|
481
|
-
* @
|
|
481
|
+
* @returns {number} angle in radians
|
|
482
482
|
*/
|
|
483
483
|
angleTo(target) {
|
|
484
484
|
var a = this.getBounds();
|
|
@@ -499,10 +499,10 @@ class Renderable extends Rect {
|
|
|
499
499
|
/**
|
|
500
500
|
* return the distance to the specified target
|
|
501
501
|
* @name distanceTo
|
|
502
|
-
* @
|
|
502
|
+
* @memberof me.Renderable
|
|
503
503
|
* @function
|
|
504
504
|
* @param {me.Renderable|me.Vector2d|me.Vector3d} target
|
|
505
|
-
* @
|
|
505
|
+
* @returns {number} distance
|
|
506
506
|
*/
|
|
507
507
|
distanceTo(target) {
|
|
508
508
|
var a = this.getBounds();
|
|
@@ -523,10 +523,10 @@ class Renderable extends Rect {
|
|
|
523
523
|
/**
|
|
524
524
|
* Rotate this renderable towards the given target.
|
|
525
525
|
* @name lookAt
|
|
526
|
-
* @
|
|
526
|
+
* @memberof me.Renderable.prototype
|
|
527
527
|
* @function
|
|
528
528
|
* @param {me.Renderable|me.Vector2d|me.Vector3d} target the renderable or position to look at
|
|
529
|
-
* @
|
|
529
|
+
* @returns {me.Renderable} Reference to this object for method chaining
|
|
530
530
|
*/
|
|
531
531
|
lookAt(target) {
|
|
532
532
|
var position;
|
|
@@ -547,15 +547,15 @@ class Renderable extends Rect {
|
|
|
547
547
|
/**
|
|
548
548
|
* Rotate this renderable by the specified angle (in radians).
|
|
549
549
|
* @name rotate
|
|
550
|
-
* @
|
|
550
|
+
* @memberof me.Renderable.prototype
|
|
551
551
|
* @function
|
|
552
|
-
* @param {
|
|
552
|
+
* @param {number} angle The angle to rotate (in radians)
|
|
553
553
|
* @param {me.Vector2d|me.ObservableVector2d} [v] an optional point to rotate around
|
|
554
|
-
* @
|
|
554
|
+
* @returns {me.Renderable} Reference to this object for method chaining
|
|
555
555
|
*/
|
|
556
|
-
rotate(angle) {
|
|
556
|
+
rotate(angle, v) {
|
|
557
557
|
if (!isNaN(angle)) {
|
|
558
|
-
this.currentTransform.rotate(angle);
|
|
558
|
+
this.currentTransform.rotate(angle, v);
|
|
559
559
|
//this.updateBoundsPos(this.pos.x, this.pos.y);
|
|
560
560
|
this.isDirty = true;
|
|
561
561
|
}
|
|
@@ -569,11 +569,11 @@ class Renderable extends Rect {
|
|
|
569
569
|
* is an image, the image.width and image.height properties are unaltered but the currentTransform
|
|
570
570
|
* member will be changed.
|
|
571
571
|
* @name scale
|
|
572
|
-
* @
|
|
572
|
+
* @memberof me.Renderable.prototype
|
|
573
573
|
* @function
|
|
574
|
-
* @param {
|
|
575
|
-
* @param {
|
|
576
|
-
* @
|
|
574
|
+
* @param {number} x a number representing the abscissa of the scaling vector.
|
|
575
|
+
* @param {number} [y=x] a number representing the ordinate of the scaling vector.
|
|
576
|
+
* @returns {me.Renderable} Reference to this object for method chaining
|
|
577
577
|
*/
|
|
578
578
|
scale(x, y) {
|
|
579
579
|
this.currentTransform.scale(x, y);
|
|
@@ -585,10 +585,10 @@ class Renderable extends Rect {
|
|
|
585
585
|
/**
|
|
586
586
|
* scale the renderable around his anchor point
|
|
587
587
|
* @name scaleV
|
|
588
|
-
* @
|
|
588
|
+
* @memberof me.Renderable.prototype
|
|
589
589
|
* @function
|
|
590
|
-
* @param {me.Vector2d}
|
|
591
|
-
* @
|
|
590
|
+
* @param {me.Vector2d} v scaling vector
|
|
591
|
+
* @returns {me.Renderable} Reference to this object for method chaining
|
|
592
592
|
*/
|
|
593
593
|
scaleV(v) {
|
|
594
594
|
this.scale(v.x, v.y);
|
|
@@ -599,12 +599,12 @@ class Renderable extends Rect {
|
|
|
599
599
|
* update function. <br>
|
|
600
600
|
* automatically called by the game manager {@link me.game}
|
|
601
601
|
* @name update
|
|
602
|
-
* @
|
|
602
|
+
* @memberof me.Renderable.prototype
|
|
603
603
|
* @function
|
|
604
604
|
* @protected
|
|
605
|
-
* @param {
|
|
606
|
-
* @
|
|
607
|
-
|
|
605
|
+
* @param {number} dt time since the last update in milliseconds.
|
|
606
|
+
* @returns {boolean} true if the renderable is dirty
|
|
607
|
+
*/
|
|
608
608
|
update(/* dt */) {
|
|
609
609
|
return this.isDirty;
|
|
610
610
|
}
|
|
@@ -613,9 +613,9 @@ class Renderable extends Rect {
|
|
|
613
613
|
* update the bounding box for this shape.
|
|
614
614
|
* @ignore
|
|
615
615
|
* @name updateBounds
|
|
616
|
-
* @
|
|
616
|
+
* @memberof me.Renderable.prototype
|
|
617
617
|
* @function
|
|
618
|
-
* @
|
|
618
|
+
* @returns {me.Bounds} this shape bounding box Rectangle object
|
|
619
619
|
*/
|
|
620
620
|
updateBounds() {
|
|
621
621
|
super.updateBounds();
|
|
@@ -627,7 +627,7 @@ class Renderable extends Rect {
|
|
|
627
627
|
* update the renderable's bounding rect (private)
|
|
628
628
|
* @ignore
|
|
629
629
|
* @name updateBoundsPos
|
|
630
|
-
* @
|
|
630
|
+
* @memberof me.Renderable.prototype
|
|
631
631
|
* @function
|
|
632
632
|
*/
|
|
633
633
|
updateBoundsPos(newX, newY) {
|
|
@@ -659,9 +659,9 @@ class Renderable extends Rect {
|
|
|
659
659
|
/**
|
|
660
660
|
* return the renderable absolute position in the game world
|
|
661
661
|
* @name getAbsolutePosition
|
|
662
|
-
* @
|
|
662
|
+
* @memberof me.Renderable.prototype
|
|
663
663
|
* @function
|
|
664
|
-
* @
|
|
664
|
+
* @returns {me.Vector2d}
|
|
665
665
|
*/
|
|
666
666
|
getAbsolutePosition() {
|
|
667
667
|
if (typeof this._absPos === "undefined") {
|
|
@@ -679,28 +679,29 @@ class Renderable extends Rect {
|
|
|
679
679
|
* called when the anchor point value is changed
|
|
680
680
|
* @private
|
|
681
681
|
* @name onAnchorUpdate
|
|
682
|
-
* @
|
|
682
|
+
* @memberof me.Renderable.prototype
|
|
683
683
|
* @function
|
|
684
|
+
* @param {number} x the new X value to be set for the anchor
|
|
685
|
+
* @param {number} y the new Y value to be set for the anchor
|
|
684
686
|
*/
|
|
685
|
-
onAnchorUpdate(
|
|
687
|
+
onAnchorUpdate(x, y) {
|
|
686
688
|
// since the callback is called before setting the new value
|
|
687
689
|
// manually update the anchor point (required for updateBoundsPos)
|
|
688
|
-
this.anchorPoint.setMuted(
|
|
690
|
+
this.anchorPoint.setMuted(x, y);
|
|
689
691
|
// then call updateBounds
|
|
690
692
|
this.updateBoundsPos(this.pos.x, this.pos.y);
|
|
691
693
|
}
|
|
692
694
|
|
|
693
|
-
|
|
694
695
|
/**
|
|
695
696
|
* prepare the rendering context before drawing
|
|
696
697
|
* (apply defined transforms, anchor point). <br>
|
|
697
698
|
* automatically called by the game manager {@link me.game}
|
|
698
699
|
* @name preDraw
|
|
699
|
-
* @
|
|
700
|
+
* @memberof me.Renderable.prototype
|
|
700
701
|
* @function
|
|
701
702
|
* @protected
|
|
702
703
|
* @param {me.CanvasRenderer|me.WebGLRenderer} renderer a renderer object
|
|
703
|
-
|
|
704
|
+
*/
|
|
704
705
|
preDraw(renderer) {
|
|
705
706
|
var bounds = this.getBounds();
|
|
706
707
|
var ax = bounds.width * this.anchorPoint.x,
|
|
@@ -747,11 +748,11 @@ class Renderable extends Rect {
|
|
|
747
748
|
* object draw. <br>
|
|
748
749
|
* automatically called by the game manager {@link me.game}
|
|
749
750
|
* @name draw
|
|
750
|
-
* @
|
|
751
|
+
* @memberof me.Renderable.prototype
|
|
751
752
|
* @function
|
|
752
753
|
* @protected
|
|
753
754
|
* @param {me.CanvasRenderer|me.WebGLRenderer} renderer a renderer object
|
|
754
|
-
|
|
755
|
+
*/
|
|
755
756
|
draw(/*renderer*/) {
|
|
756
757
|
// empty one !
|
|
757
758
|
}
|
|
@@ -760,11 +761,11 @@ class Renderable extends Rect {
|
|
|
760
761
|
* restore the rendering context after drawing. <br>
|
|
761
762
|
* automatically called by the game manager {@link me.game}
|
|
762
763
|
* @name postDraw
|
|
763
|
-
* @
|
|
764
|
+
* @memberof me.Renderable.prototype
|
|
764
765
|
* @function
|
|
765
766
|
* @protected
|
|
766
767
|
* @param {me.CanvasRenderer|me.WebGLRenderer} renderer a renderer object
|
|
767
|
-
|
|
768
|
+
*/
|
|
768
769
|
postDraw(renderer) {
|
|
769
770
|
|
|
770
771
|
// remove the previously applied tint
|
|
@@ -786,11 +787,11 @@ class Renderable extends Rect {
|
|
|
786
787
|
* onCollision callback, triggered in case of collision,
|
|
787
788
|
* when this renderable body is colliding with another one
|
|
788
789
|
* @name onCollision
|
|
789
|
-
* @
|
|
790
|
+
* @memberof me.Renderable.prototype
|
|
790
791
|
* @function
|
|
791
792
|
* @param {me.collision.ResponseObject} response the collision response object
|
|
792
793
|
* @param {me.Renderable} other the other renderable touching this one (a reference to response.a or response.b)
|
|
793
|
-
* @
|
|
794
|
+
* @returns {boolean} true if the object should respond to the collision (its position and velocity will be corrected)
|
|
794
795
|
* @example
|
|
795
796
|
* // colision handler
|
|
796
797
|
* onCollision(response) {
|
|
@@ -863,7 +864,7 @@ class Renderable extends Rect {
|
|
|
863
864
|
* OnDestroy Notification function<br>
|
|
864
865
|
* Called by engine before deleting the object
|
|
865
866
|
* @name onDestroyEvent
|
|
866
|
-
* @
|
|
867
|
+
* @memberof me.Renderable
|
|
867
868
|
* @function
|
|
868
869
|
*/
|
|
869
870
|
onDestroyEvent() {
|