melonjs 10.1.1 → 10.2.3
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 -10
- package/dist/melonjs.js +3114 -2866
- package/dist/melonjs.min.js +3 -3
- package/dist/melonjs.module.d.ts +2588 -2498
- package/dist/melonjs.module.js +2694 -2479
- package/package.json +10 -11
- package/src/audio/audio.js +43 -43
- package/src/camera/camera2d.js +52 -74
- package/src/entity/draggable.js +18 -17
- package/src/entity/droptarget.js +19 -18
- package/src/entity/entity.js +22 -26
- package/src/game.js +3 -3
- package/src/index.js +15 -11
- package/src/input/gamepad.js +13 -13
- package/src/input/input.js +1 -1
- package/src/input/keyboard.js +14 -16
- package/src/input/pointer.js +42 -35
- package/src/input/pointerevent.js +25 -33
- package/src/lang/deprecated.js +3 -3
- package/src/level/level.js +24 -16
- package/src/level/tiled/TMXGroup.js +6 -6
- package/src/level/tiled/TMXLayer.js +31 -31
- package/src/level/tiled/TMXObject.js +19 -19
- package/src/level/tiled/TMXTile.js +11 -12
- package/src/level/tiled/TMXTileMap.js +23 -21
- package/src/level/tiled/TMXTileset.js +13 -13
- package/src/level/tiled/TMXTilesetGroup.js +4 -4
- package/src/level/tiled/TMXUtils.js +13 -11
- package/src/level/tiled/renderer/TMXHexagonalRenderer.js +1 -1
- package/src/level/tiled/renderer/TMXIsometricRenderer.js +1 -1
- package/src/level/tiled/renderer/TMXRenderer.js +17 -17
- package/src/loader/loader.js +31 -27
- package/src/loader/loadingscreen.js +44 -75
- package/src/math/color.js +45 -64
- package/src/math/math.js +17 -17
- package/src/math/matrix2.js +46 -46
- package/src/math/matrix3.js +64 -64
- package/src/math/observable_vector2.js +45 -57
- package/src/math/observable_vector3.js +56 -70
- package/src/math/vector2.js +60 -59
- package/src/math/vector3.js +65 -64
- package/src/particles/emitter.js +53 -55
- package/src/particles/particle.js +1 -1
- package/src/physics/body.js +45 -51
- package/src/physics/bounds.js +36 -36
- package/src/physics/collision.js +15 -16
- package/src/physics/detector.js +10 -11
- package/src/physics/quadtree.js +18 -16
- package/src/physics/sat.js +17 -17
- package/src/physics/world.js +12 -10
- package/src/plugin/plugin.js +6 -6
- package/src/renderable/GUI.js +13 -18
- package/src/renderable/collectable.js +3 -3
- package/src/renderable/colorlayer.js +4 -4
- package/src/renderable/container.js +64 -46
- package/src/renderable/imagelayer.js +30 -31
- package/src/renderable/nineslicesprite.js +158 -69
- package/src/renderable/renderable.js +68 -67
- package/src/renderable/sprite.js +57 -43
- package/src/renderable/trigger.js +14 -15
- package/src/shapes/ellipse.js +27 -26
- package/src/shapes/line.js +8 -7
- package/src/shapes/poly.js +33 -31
- package/src/shapes/rectangle.js +50 -96
- package/src/state/stage.js +8 -8
- package/src/state/state.js +56 -56
- package/src/system/device.js +97 -84
- package/src/system/event.js +72 -72
- package/src/system/pooling.js +14 -14
- package/src/system/save.js +6 -3
- package/src/system/timer.js +20 -20
- package/src/text/bitmaptext.js +27 -33
- package/src/text/bitmaptextdata.js +9 -9
- package/src/text/text.js +118 -59
- package/src/tweens/easing.js +4 -4
- package/src/tweens/interpolation.js +4 -4
- package/src/tweens/tween.js +37 -27
- package/src/utils/agent.js +9 -8
- package/src/utils/array.js +4 -4
- package/src/utils/file.js +4 -4
- package/src/utils/function.js +5 -5
- package/src/utils/string.js +12 -12
- package/src/utils/utils.js +19 -19
- package/src/video/canvas/canvas_renderer.js +90 -90
- package/src/video/renderer.js +40 -39
- package/src/video/texture.js +85 -76
- package/src/video/texture_cache.js +11 -0
- package/src/video/video.js +31 -31
- package/src/video/webgl/buffer/vertex.js +9 -1
- package/src/video/webgl/glshader.js +20 -20
- package/src/video/webgl/webgl_compositor.js +47 -46
- package/src/video/webgl/webgl_renderer.js +104 -104
|
@@ -1,27 +1,36 @@
|
|
|
1
1
|
import Sprite from "./sprite.js";
|
|
2
2
|
|
|
3
|
-
|
|
4
3
|
/**
|
|
5
4
|
* @classdesc
|
|
6
|
-
* A NineSliceSprite is similar to a Sprite, but it
|
|
5
|
+
* A NineSliceSprite is similar to a Sprite, but it uses 9-slice scaling to strech its inner area to fit the size of the Renderable,
|
|
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
|
+
* <img src="images/9-slice-scaling.png"/><br>
|
|
8
|
+
* @see https://en.wikipedia.org/wiki/9-slice_scaling
|
|
7
9
|
* @class NineSliceSprite
|
|
8
10
|
* @extends me.Sprite
|
|
9
11
|
* @memberOf me
|
|
10
12
|
* @constructor
|
|
11
|
-
* @param {
|
|
12
|
-
* @param {
|
|
13
|
-
* @param {
|
|
14
|
-
* @param {
|
|
15
|
-
* @param {
|
|
16
|
-
* @param {me.Renderer.Texture|HTMLImageElement|HTMLCanvasElement|
|
|
17
|
-
* @param {
|
|
18
|
-
* @param {
|
|
19
|
-
* @param {
|
|
20
|
-
* @param {
|
|
21
|
-
* @param {
|
|
22
|
-
* @param {
|
|
23
|
-
* @param {
|
|
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
|
|
24
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
|
+
* });
|
|
25
34
|
*/
|
|
26
35
|
|
|
27
36
|
class NineSliceSprite extends Sprite {
|
|
@@ -33,6 +42,11 @@ class NineSliceSprite extends Sprite {
|
|
|
33
42
|
// call the super constructor
|
|
34
43
|
super(x, y, settings);
|
|
35
44
|
|
|
45
|
+
// ensure mandatory properties are defined
|
|
46
|
+
if ((typeof settings.width !== "number") || (typeof settings.height !== "number")) {
|
|
47
|
+
throw new Error("height and width properties are mandatory");
|
|
48
|
+
}
|
|
49
|
+
|
|
36
50
|
// override the renderable sprite with the given one
|
|
37
51
|
// resize based on the active frame
|
|
38
52
|
this.width = settings.width;
|
|
@@ -41,14 +55,14 @@ class NineSliceSprite extends Sprite {
|
|
|
41
55
|
|
|
42
56
|
/**
|
|
43
57
|
* @ignore
|
|
44
|
-
|
|
58
|
+
*/
|
|
45
59
|
draw(renderer) {
|
|
46
60
|
// the frame to draw
|
|
47
61
|
var frame = this.current;
|
|
48
62
|
|
|
49
63
|
// cache the current position and size
|
|
50
|
-
var
|
|
51
|
-
|
|
64
|
+
var dx = this.pos.x,
|
|
65
|
+
dy = this.pos.y;
|
|
52
66
|
|
|
53
67
|
var w = frame.width,
|
|
54
68
|
h = frame.height;
|
|
@@ -60,63 +74,138 @@ class NineSliceSprite extends Sprite {
|
|
|
60
74
|
|
|
61
75
|
// remove image's TexturePacker/ShoeBox rotation
|
|
62
76
|
if (frame.angle !== 0) {
|
|
63
|
-
renderer.translate(-
|
|
77
|
+
renderer.translate(-dx, -dy);
|
|
64
78
|
renderer.rotate(frame.angle);
|
|
65
|
-
|
|
79
|
+
dx -= h;
|
|
66
80
|
w = frame.height;
|
|
67
81
|
h = frame.width;
|
|
68
82
|
}
|
|
69
83
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
84
|
+
var sx = g_offset.x + frame_offset.x,
|
|
85
|
+
sy = g_offset.y + frame_offset.y;
|
|
86
|
+
|
|
87
|
+
// should this be configurable ?
|
|
88
|
+
var corner_width = frame.width / 4,
|
|
89
|
+
corner_height = frame.height / 4;
|
|
90
|
+
|
|
91
|
+
// OPTIMIZE ME !
|
|
92
|
+
|
|
93
|
+
// DRAW CORNERS
|
|
94
|
+
|
|
95
|
+
// Top Left
|
|
96
|
+
renderer.drawImage(
|
|
97
|
+
this.image,
|
|
98
|
+
sx, // sx
|
|
99
|
+
sy, // sy
|
|
100
|
+
corner_width, corner_height, // sw,sh
|
|
101
|
+
dx, dy, // dx,dy
|
|
102
|
+
corner_width, corner_height // dw,dh
|
|
103
|
+
);
|
|
104
|
+
|
|
105
|
+
// Top Right
|
|
106
|
+
renderer.drawImage(
|
|
107
|
+
this.image,
|
|
108
|
+
sx + w - corner_width, // sx
|
|
109
|
+
sy, // sy
|
|
110
|
+
corner_width, corner_height, // sw,sh
|
|
111
|
+
dx + this.width - corner_width, // dx
|
|
112
|
+
dy, // dy
|
|
113
|
+
corner_width, corner_height // dw,dh
|
|
114
|
+
);
|
|
115
|
+
// Bottom Left
|
|
116
|
+
renderer.drawImage(
|
|
117
|
+
this.image,
|
|
118
|
+
sx, // sx
|
|
119
|
+
sy + h - corner_height, // sy
|
|
120
|
+
corner_width, corner_height, // sw,sh
|
|
121
|
+
dx, // dx
|
|
122
|
+
dy + this.height - corner_height, // dy
|
|
123
|
+
corner_width, corner_height // dw,dh
|
|
124
|
+
);
|
|
125
|
+
// Bottom Right
|
|
126
|
+
renderer.drawImage(
|
|
127
|
+
this.image,
|
|
128
|
+
sx + w - corner_width, // sx
|
|
129
|
+
sy + h - corner_height, // sy
|
|
130
|
+
corner_width, corner_height, // sw,sh
|
|
131
|
+
dx + this.width - corner_width, //dx
|
|
132
|
+
dy + this.height - corner_height, // dy
|
|
133
|
+
corner_width, corner_height // dw,dh
|
|
134
|
+
);
|
|
135
|
+
|
|
136
|
+
|
|
137
|
+
// DRAW SIDES and CENTER
|
|
138
|
+
var image_center_width = w - (corner_width << 1);
|
|
139
|
+
var image_center_height = h - (corner_height << 1);
|
|
140
|
+
|
|
141
|
+
var target_center_width = this.width - (corner_width << 1);
|
|
142
|
+
var target_center_height = this.height - (corner_height << 1);
|
|
143
|
+
|
|
144
|
+
//Top center
|
|
145
|
+
renderer.drawImage(
|
|
146
|
+
this.image,
|
|
147
|
+
sx + corner_width, // sx
|
|
148
|
+
sy, // sy
|
|
149
|
+
image_center_width, // sw
|
|
150
|
+
corner_height, // sh
|
|
151
|
+
dx + corner_width, // dx
|
|
152
|
+
dy, // dy
|
|
153
|
+
target_center_width, // dw
|
|
154
|
+
corner_height // dh
|
|
155
|
+
);
|
|
156
|
+
|
|
157
|
+
//Bottom center
|
|
158
|
+
renderer.drawImage(
|
|
159
|
+
this.image,
|
|
160
|
+
sx + corner_width, // sx
|
|
161
|
+
sy + h - corner_height, // sy
|
|
162
|
+
image_center_width, // sw
|
|
163
|
+
corner_height, // sh
|
|
164
|
+
dx + corner_width, // dx
|
|
165
|
+
dy + this.height - corner_height, // dx
|
|
166
|
+
target_center_width, // dw
|
|
167
|
+
corner_height // dh
|
|
168
|
+
);
|
|
169
|
+
|
|
170
|
+
// Middle Left
|
|
171
|
+
renderer.drawImage(
|
|
172
|
+
this.image,
|
|
173
|
+
sx, // sx
|
|
174
|
+
sy + corner_height, // sy
|
|
175
|
+
corner_width, // sw
|
|
176
|
+
image_center_height, // sh
|
|
177
|
+
dx, // dx
|
|
178
|
+
dy + corner_height, // dy
|
|
179
|
+
corner_width, // dw
|
|
180
|
+
target_center_height // dh
|
|
181
|
+
);
|
|
182
|
+
|
|
183
|
+
// Middle Right
|
|
184
|
+
renderer.drawImage(
|
|
185
|
+
this.image,
|
|
186
|
+
sx + w - corner_width, // sx
|
|
187
|
+
sy + corner_height, // sy
|
|
188
|
+
corner_width, // sw
|
|
189
|
+
image_center_height, // sh
|
|
190
|
+
dx + this.width - corner_width, // dx
|
|
191
|
+
dy + corner_height, // dy
|
|
192
|
+
corner_width, // dw
|
|
193
|
+
target_center_height // dh
|
|
194
|
+
);
|
|
195
|
+
|
|
196
|
+
// Middle Center
|
|
197
|
+
renderer.drawImage(
|
|
198
|
+
this.image,
|
|
199
|
+
sx + corner_width, // sx
|
|
200
|
+
sy + corner_height, // sy
|
|
201
|
+
image_center_width, // sw
|
|
202
|
+
image_center_height, // sh
|
|
203
|
+
dx + corner_width, // dx
|
|
204
|
+
dy + corner_height, // dy
|
|
205
|
+
target_center_width, // dw
|
|
206
|
+
target_center_height // dh
|
|
207
|
+
);
|
|
118
208
|
}
|
|
119
|
-
*/
|
|
120
209
|
};
|
|
121
210
|
|
|
122
211
|
export default NineSliceSprite;
|