melonjs 10.2.3 → 10.5.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 +3620 -3582
- package/dist/melonjs.min.js +5 -5
- package/dist/melonjs.module.d.ts +3646 -4545
- package/dist/melonjs.module.js +3912 -3521
- package/package.json +21 -20
- package/src/audio/audio.js +30 -31
- package/src/camera/camera2d.js +47 -58
- 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 +14 -32
- 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 +83 -13
- 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 +40 -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 +2 -5
- 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 +49 -147
- package/src/physics/bounds.js +48 -50
- package/src/physics/collision.js +13 -14
- package/src/physics/detector.js +18 -17
- package/src/physics/quadtree.js +17 -20
- 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/dragndrop.js +224 -0
- 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 +26 -10
- package/src/video/video.js +15 -16
- 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 -101
- package/src/video/webgl/webgl_renderer.js +126 -106
- package/src/entity/draggable.js +0 -139
- package/src/entity/droptarget.js +0 -109
|
@@ -9,32 +9,25 @@ import * as stringUtil from "./../utils/string.js";
|
|
|
9
9
|
/**
|
|
10
10
|
* @classdesc
|
|
11
11
|
* a generic Image Layer Object
|
|
12
|
-
* @
|
|
13
|
-
* @extends me.Renderable
|
|
14
|
-
* @memberOf me
|
|
15
|
-
* @constructor
|
|
16
|
-
* @param {number} x x coordinate
|
|
17
|
-
* @param {number} y y coordinate
|
|
18
|
-
* @param {object} settings ImageLayer properties
|
|
19
|
-
* @param {HTMLImageElement|HTMLCanvasElement|string} settings.image Image reference. See {@link me.loader.getImage}
|
|
20
|
-
* @param {string} [settings.name="me.ImageLayer"] layer name
|
|
21
|
-
* @param {number} [settings.z=0] z-index position
|
|
22
|
-
* @param {number|me.Vector2d} [settings.ratio=1.0] Scrolling ratio to be applied. See {@link me.ImageLayer#ratio}
|
|
23
|
-
* @param {string} [settings.repeat='repeat'] define if and how an Image Layer should be repeated (accepted values are 'repeat',
|
|
24
|
-
'repeat-x', 'repeat-y', 'no-repeat'). See {@link me.ImageLayer#repeat}
|
|
25
|
-
* @param {number|me.Vector2d} [settings.anchorPoint=0.0] Image origin. See {@link me.ImageLayer#anchorPoint}
|
|
26
|
-
* @example
|
|
27
|
-
* // create a repetitive background pattern on the X axis using the citycloud image asset
|
|
28
|
-
* me.game.world.addChild(new me.ImageLayer(0, 0, {
|
|
29
|
-
* image:"citycloud",
|
|
30
|
-
* repeat :"repeat-x"
|
|
31
|
-
* }), 1);
|
|
12
|
+
* @augments Renderable
|
|
32
13
|
*/
|
|
33
|
-
|
|
34
14
|
class ImageLayer extends Sprite {
|
|
35
|
-
|
|
36
15
|
/**
|
|
37
|
-
* @
|
|
16
|
+
* @param {number} x x coordinate
|
|
17
|
+
* @param {number} y y coordinate
|
|
18
|
+
* @param {object} settings ImageLayer properties
|
|
19
|
+
* @param {HTMLImageElement|HTMLCanvasElement|string} settings.image Image reference. See {@link loader.getImage}
|
|
20
|
+
* @param {string} [settings.name="me.ImageLayer"] layer name
|
|
21
|
+
* @param {number} [settings.z=0] z-index position
|
|
22
|
+
* @param {number|Vector2d} [settings.ratio=1.0] Scrolling ratio to be applied. See {@link ImageLayer#ratio}
|
|
23
|
+
* @param {string} [settings.repeat='repeat'] define if and how an Image Layer should be repeated (accepted values are 'repeat', 'repeat-x', 'repeat-y', 'no-repeat'). See {@link ImageLayer#repeat}
|
|
24
|
+
* @param {number|Vector2d} [settings.anchorPoint=0.0] Image origin. See {@link ImageLayer#anchorPoint}
|
|
25
|
+
* @example
|
|
26
|
+
* // create a repetitive background pattern on the X axis using the citycloud image asset
|
|
27
|
+
* me.game.world.addChild(new me.ImageLayer(0, 0, {
|
|
28
|
+
* image:"citycloud",
|
|
29
|
+
* repeat :"repeat-x"
|
|
30
|
+
* }), 1);
|
|
38
31
|
*/
|
|
39
32
|
constructor(x, y, settings) {
|
|
40
33
|
// call the constructor
|
|
@@ -54,9 +47,9 @@ class ImageLayer extends Sprite {
|
|
|
54
47
|
* - a number, to change the value for both axis <br>
|
|
55
48
|
* - a json expression like `json:{"x":0.5,"y":0.5}` if you wish to specify a different value for both x and y
|
|
56
49
|
* @public
|
|
57
|
-
* @type {
|
|
50
|
+
* @type {Vector2d}
|
|
58
51
|
* @default <1.0,1.0>
|
|
59
|
-
* @name
|
|
52
|
+
* @name ImageLayer#ratio
|
|
60
53
|
*/
|
|
61
54
|
this.ratio = pool.pull("Vector2d", 1.0, 1.0);
|
|
62
55
|
|
|
@@ -82,9 +75,9 @@ class ImageLayer extends Sprite {
|
|
|
82
75
|
* - a number, to change the value for both axis <br>
|
|
83
76
|
* - a json expression like `json:{"x":0.5,"y":0.5}` if you wish to specify a different value for both x and y
|
|
84
77
|
* @public
|
|
85
|
-
* @type {
|
|
78
|
+
* @type {Vector2d}
|
|
86
79
|
* @default <0.0,0.0>
|
|
87
|
-
* @name
|
|
80
|
+
* @name ImageLayer#anchorPoint
|
|
88
81
|
*/
|
|
89
82
|
this.anchorPoint.set(0, 0);
|
|
90
83
|
}
|
|
@@ -114,7 +107,7 @@ class ImageLayer extends Sprite {
|
|
|
114
107
|
* @public
|
|
115
108
|
* @type {string}
|
|
116
109
|
* @default 'repeat'
|
|
117
|
-
* @name
|
|
110
|
+
* @name ImageLayer#repeat
|
|
118
111
|
*/
|
|
119
112
|
|
|
120
113
|
get repeat() {
|
|
@@ -166,7 +159,7 @@ class ImageLayer extends Sprite {
|
|
|
166
159
|
/**
|
|
167
160
|
* resize the Image Layer to match the given size
|
|
168
161
|
* @name resize
|
|
169
|
-
* @
|
|
162
|
+
* @memberof ImageLayer.prototype
|
|
170
163
|
* @function
|
|
171
164
|
* @param {number} w new width
|
|
172
165
|
* @param {number} h new height
|
|
@@ -254,12 +247,12 @@ class ImageLayer extends Sprite {
|
|
|
254
247
|
|
|
255
248
|
/**
|
|
256
249
|
* draw the ImageLayer. <br>
|
|
257
|
-
* automatically called by the game manager {@link
|
|
250
|
+
* automatically called by the game manager {@link game}
|
|
258
251
|
* @name draw
|
|
259
|
-
* @
|
|
252
|
+
* @memberof ImageLayer.prototype
|
|
260
253
|
* @function
|
|
261
254
|
* @protected
|
|
262
|
-
* @param {
|
|
255
|
+
* @param {CanvasRenderer|WebGLRenderer} renderer a renderer object
|
|
263
256
|
*/
|
|
264
257
|
draw(renderer) {
|
|
265
258
|
var width = this.width,
|
|
@@ -6,37 +6,33 @@ import Sprite from "./sprite.js";
|
|
|
6
6
|
* by proportionally scaling a sprite by splitting it in a grid of nine parts (with only parts 1, 3, 7, 9 not being scaled). <br>
|
|
7
7
|
* <img src="images/9-slice-scaling.png"/><br>
|
|
8
8
|
* @see https://en.wikipedia.org/wiki/9-slice_scaling
|
|
9
|
-
* @
|
|
10
|
-
* @extends me.Sprite
|
|
11
|
-
* @memberOf me
|
|
12
|
-
* @constructor
|
|
13
|
-
* @param {number} x the x coordinates of the sprite object
|
|
14
|
-
* @param {number} y the y coordinates of the sprite object
|
|
15
|
-
* @param {object} settings Configuration parameters for the Sprite object
|
|
16
|
-
* @param {number} settings.width the width of the Renderable over which the sprite needs to be stretched
|
|
17
|
-
* @param {number} settings.height the height of the Renderable over which the sprite needs to be stretched
|
|
18
|
-
* @param {me.Renderer.Texture|HTMLImageElement|HTMLCanvasElement|string} settings.image reference to a texture, spritesheet image or to a texture atlas
|
|
19
|
-
* @param {string} [settings.name=""] name of this object
|
|
20
|
-
* @param {string} [settings.region] region name of a specific region to use when using a texture atlas, see {@link me.Renderer.Texture}
|
|
21
|
-
* @param {number} [settings.framewidth] Width of a single frame within the spritesheet
|
|
22
|
-
* @param {number} [settings.frameheight] Height of a single frame within the spritesheet
|
|
23
|
-
* @param {string|me.Color} [settings.tint] a tint to be applied to this sprite
|
|
24
|
-
* @param {number} [settings.flipX] flip the sprite on the horizontal axis
|
|
25
|
-
* @param {number} [settings.flipY] flip the sprite on the vertical axis
|
|
26
|
-
* @param {me.Vector2d} [settings.anchorPoint={x:0.5, y:0.5}] Anchor point to draw the frame at (defaults to the center of the frame).
|
|
27
|
-
* @example
|
|
28
|
-
* this.panelSprite = new me.NineSliceSprite(0, 0, {
|
|
29
|
-
* image : game.texture,
|
|
30
|
-
* region : "grey_panel",
|
|
31
|
-
* width : this.width,
|
|
32
|
-
* height : this.height
|
|
33
|
-
* });
|
|
9
|
+
* @augments Sprite
|
|
34
10
|
*/
|
|
35
|
-
|
|
36
11
|
class NineSliceSprite extends Sprite {
|
|
37
|
-
|
|
38
12
|
/**
|
|
39
|
-
* @
|
|
13
|
+
* @param {number} x the x coordinates of the sprite object
|
|
14
|
+
* @param {number} y the y coordinates of the sprite object
|
|
15
|
+
* @param {object} settings Configuration parameters for the Sprite object
|
|
16
|
+
* @param {number} settings.width the width of the Renderable over which the sprite needs to be stretched
|
|
17
|
+
* @param {number} settings.height the height of the Renderable over which the sprite needs to be stretched
|
|
18
|
+
* @param {number} [settings.insetx] the width of a corner over which the sprite is unscaled (default is a quarter of the sprite width)
|
|
19
|
+
* @param {number} [settings.insety] the height of a corner over which the sprite is unscaled (default is a quarter of the sprite height)
|
|
20
|
+
* @param {HTMLImageElement|HTMLCanvasElement|TextureAtlas|string} settings.image reference to spritesheet image, a texture atlas or to a texture atlas
|
|
21
|
+
* @param {string} [settings.name=""] name of this object
|
|
22
|
+
* @param {string} [settings.region] region name of a specific region to use when using a texture atlas, see {@link TextureAtlas}
|
|
23
|
+
* @param {number} [settings.framewidth] Width of a single frame within the spritesheet
|
|
24
|
+
* @param {number} [settings.frameheight] Height of a single frame within the spritesheet
|
|
25
|
+
* @param {string|Color} [settings.tint] a tint to be applied to this sprite
|
|
26
|
+
* @param {number} [settings.flipX] flip the sprite on the horizontal axis
|
|
27
|
+
* @param {number} [settings.flipY] flip the sprite on the vertical axis
|
|
28
|
+
* @param {Vector2d} [settings.anchorPoint={x:0.5, y:0.5}] Anchor point to draw the frame at (defaults to the center of the frame).
|
|
29
|
+
* @example
|
|
30
|
+
* this.panelSprite = new me.NineSliceSprite(0, 0, {
|
|
31
|
+
* image : game.texture,
|
|
32
|
+
* region : "grey_panel",
|
|
33
|
+
* width : this.width,
|
|
34
|
+
* height : this.height
|
|
35
|
+
* });
|
|
40
36
|
*/
|
|
41
37
|
constructor(x, y, settings) {
|
|
42
38
|
// call the super constructor
|
|
@@ -47,10 +43,13 @@ class NineSliceSprite extends Sprite {
|
|
|
47
43
|
throw new Error("height and width properties are mandatory");
|
|
48
44
|
}
|
|
49
45
|
|
|
50
|
-
//
|
|
51
|
-
|
|
52
|
-
this.
|
|
53
|
-
|
|
46
|
+
// nine slice sprite specific local variables
|
|
47
|
+
this.nss_width = Math.floor(settings.width);
|
|
48
|
+
this.nss_height = Math.floor(settings.height);
|
|
49
|
+
|
|
50
|
+
this.insetx = settings.insetx;
|
|
51
|
+
this.insety = settings.insety;
|
|
52
|
+
|
|
54
53
|
}
|
|
55
54
|
|
|
56
55
|
/**
|
|
@@ -85,8 +84,8 @@ class NineSliceSprite extends Sprite {
|
|
|
85
84
|
sy = g_offset.y + frame_offset.y;
|
|
86
85
|
|
|
87
86
|
// should this be configurable ?
|
|
88
|
-
var corner_width =
|
|
89
|
-
corner_height =
|
|
87
|
+
var corner_width = this.insetx || w / 4,
|
|
88
|
+
corner_height = this.insety || h / 4;
|
|
90
89
|
|
|
91
90
|
// OPTIMIZE ME !
|
|
92
91
|
|
|
@@ -108,7 +107,7 @@ class NineSliceSprite extends Sprite {
|
|
|
108
107
|
sx + w - corner_width, // sx
|
|
109
108
|
sy, // sy
|
|
110
109
|
corner_width, corner_height, // sw,sh
|
|
111
|
-
dx + this.
|
|
110
|
+
dx + this.nss_width - corner_width, // dx
|
|
112
111
|
dy, // dy
|
|
113
112
|
corner_width, corner_height // dw,dh
|
|
114
113
|
);
|
|
@@ -119,7 +118,7 @@ class NineSliceSprite extends Sprite {
|
|
|
119
118
|
sy + h - corner_height, // sy
|
|
120
119
|
corner_width, corner_height, // sw,sh
|
|
121
120
|
dx, // dx
|
|
122
|
-
dy + this.
|
|
121
|
+
dy + this.nss_height - corner_height, // dy
|
|
123
122
|
corner_width, corner_height // dw,dh
|
|
124
123
|
);
|
|
125
124
|
// Bottom Right
|
|
@@ -128,8 +127,8 @@ class NineSliceSprite extends Sprite {
|
|
|
128
127
|
sx + w - corner_width, // sx
|
|
129
128
|
sy + h - corner_height, // sy
|
|
130
129
|
corner_width, corner_height, // sw,sh
|
|
131
|
-
dx + this.
|
|
132
|
-
dy + this.
|
|
130
|
+
dx + this.nss_width - corner_width, //dx
|
|
131
|
+
dy + this.nss_height - corner_height, // dy
|
|
133
132
|
corner_width, corner_height // dw,dh
|
|
134
133
|
);
|
|
135
134
|
|
|
@@ -138,8 +137,8 @@ class NineSliceSprite extends Sprite {
|
|
|
138
137
|
var image_center_width = w - (corner_width << 1);
|
|
139
138
|
var image_center_height = h - (corner_height << 1);
|
|
140
139
|
|
|
141
|
-
var target_center_width = this.
|
|
142
|
-
var target_center_height = this.
|
|
140
|
+
var target_center_width = this.nss_width - (corner_width << 1);
|
|
141
|
+
var target_center_height = this.nss_height - (corner_height << 1);
|
|
143
142
|
|
|
144
143
|
//Top center
|
|
145
144
|
renderer.drawImage(
|
|
@@ -162,7 +161,7 @@ class NineSliceSprite extends Sprite {
|
|
|
162
161
|
image_center_width, // sw
|
|
163
162
|
corner_height, // sh
|
|
164
163
|
dx + corner_width, // dx
|
|
165
|
-
dy + this.
|
|
164
|
+
dy + this.nss_height - corner_height, // dx
|
|
166
165
|
target_center_width, // dw
|
|
167
166
|
corner_height // dh
|
|
168
167
|
);
|
|
@@ -187,7 +186,7 @@ class NineSliceSprite extends Sprite {
|
|
|
187
186
|
sy + corner_height, // sy
|
|
188
187
|
corner_width, // sw
|
|
189
188
|
image_center_height, // sh
|
|
190
|
-
dx + this.
|
|
189
|
+
dx + this.nss_width - corner_width, // dx
|
|
191
190
|
dy + corner_height, // dy
|
|
192
191
|
corner_width, // dw
|
|
193
192
|
target_center_height // dh
|