melonjs 15.15.0 → 16.1.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/dist/melonjs.mjs/_virtual/_commonjsHelpers.js +2 -2
- package/dist/melonjs.mjs/_virtual/earcut.js +2 -2
- package/dist/melonjs.mjs/_virtual/howler.js +2 -2
- package/dist/melonjs.mjs/_virtual/index.js +2 -2
- package/dist/melonjs.mjs/application/application.js +2 -2
- package/dist/melonjs.mjs/application/header.js +2 -2
- package/dist/melonjs.mjs/application/resize.js +2 -2
- package/dist/melonjs.mjs/application/settings.js +5 -3
- package/dist/melonjs.mjs/audio/audio.js +5 -3
- package/dist/melonjs.mjs/camera/camera2d.js +2 -2
- package/dist/melonjs.mjs/const.js +2 -2
- package/dist/melonjs.mjs/geometries/ellipse.js +6 -8
- package/dist/melonjs.mjs/geometries/line.js +2 -2
- package/dist/melonjs.mjs/geometries/path2d.js +131 -5
- package/dist/melonjs.mjs/geometries/point.js +7 -9
- package/dist/melonjs.mjs/geometries/poly.js +4 -14
- package/dist/melonjs.mjs/geometries/rectangle.js +2 -2
- package/dist/melonjs.mjs/geometries/roundrect.js +2 -2
- package/dist/melonjs.mjs/geometries/toarccanvas.js +103 -0
- package/dist/melonjs.mjs/index.js +3 -3
- package/dist/melonjs.mjs/input/gamepad.js +2 -2
- package/dist/melonjs.mjs/input/input.js +2 -2
- package/dist/melonjs.mjs/input/keyboard.js +2 -2
- package/dist/melonjs.mjs/input/pointer.js +2 -2
- package/dist/melonjs.mjs/input/pointerevent.js +2 -2
- package/dist/melonjs.mjs/lang/console.js +2 -2
- package/dist/melonjs.mjs/lang/deprecated.js +2 -2
- package/dist/melonjs.mjs/level/level.js +2 -2
- package/dist/melonjs.mjs/level/tiled/TMXGroup.js +2 -2
- package/dist/melonjs.mjs/level/tiled/TMXLayer.js +2 -2
- package/dist/melonjs.mjs/level/tiled/TMXObject.js +2 -2
- package/dist/melonjs.mjs/level/tiled/TMXTile.js +2 -2
- package/dist/melonjs.mjs/level/tiled/TMXTileMap.js +2 -2
- package/dist/melonjs.mjs/level/tiled/TMXTileset.js +2 -2
- package/dist/melonjs.mjs/level/tiled/TMXTilesetGroup.js +2 -2
- package/dist/melonjs.mjs/level/tiled/TMXUtils.js +2 -2
- package/dist/melonjs.mjs/level/tiled/constants.js +2 -2
- package/dist/melonjs.mjs/level/tiled/renderer/TMXHexagonalRenderer.js +2 -2
- package/dist/melonjs.mjs/level/tiled/renderer/TMXIsometricRenderer.js +2 -2
- package/dist/melonjs.mjs/level/tiled/renderer/TMXOrthogonalRenderer.js +2 -2
- package/dist/melonjs.mjs/level/tiled/renderer/TMXRenderer.js +2 -2
- package/dist/melonjs.mjs/level/tiled/renderer/TMXStaggeredRenderer.js +2 -2
- package/dist/melonjs.mjs/level/tiled/renderer/autodetect.js +2 -2
- package/dist/melonjs.mjs/loader/cache.js +6 -3
- package/dist/melonjs.mjs/loader/loader.js +59 -10
- package/dist/melonjs.mjs/loader/loadingscreen.js +4 -4
- package/dist/melonjs.mjs/loader/melonjs_logo.png.js +3 -4
- package/dist/melonjs.mjs/loader/parsers/binary.js +15 -22
- package/dist/melonjs.mjs/loader/parsers/fetchdata.js +62 -0
- package/dist/melonjs.mjs/loader/parsers/fontface.js +2 -2
- package/dist/melonjs.mjs/loader/parsers/image.js +47 -11
- package/dist/melonjs.mjs/loader/parsers/json.js +14 -31
- package/dist/melonjs.mjs/loader/parsers/script.js +2 -2
- package/dist/melonjs.mjs/loader/parsers/tmx.js +48 -74
- package/dist/melonjs.mjs/loader/parsers/video.js +98 -0
- package/dist/melonjs.mjs/loader/settings.js +6 -5
- package/dist/melonjs.mjs/math/color.js +2 -2
- package/dist/melonjs.mjs/math/math.js +13 -3
- package/dist/melonjs.mjs/math/matrix2.js +2 -2
- package/dist/melonjs.mjs/math/matrix3.js +2 -2
- package/dist/melonjs.mjs/math/observable_vector2.js +2 -2
- package/dist/melonjs.mjs/math/observable_vector3.js +2 -2
- package/dist/melonjs.mjs/math/vector2.js +7 -9
- package/dist/melonjs.mjs/math/vector3.js +6 -10
- package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/esm/arraymultimap.js +2 -2
- package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/esm/multimap.js +2 -2
- package/dist/melonjs.mjs/node_modules/earcut/src/earcut.js +2 -2
- package/dist/melonjs.mjs/node_modules/eventemitter3/index.js +2 -2
- package/dist/melonjs.mjs/node_modules/eventemitter3/index2.js +2 -2
- package/dist/melonjs.mjs/node_modules/howler/dist/howler.js +2 -2
- package/dist/melonjs.mjs/particles/emitter.js +2 -2
- package/dist/melonjs.mjs/particles/particle.js +2 -2
- package/dist/melonjs.mjs/particles/settings.js +3 -5
- package/dist/melonjs.mjs/physics/body.js +6 -8
- package/dist/melonjs.mjs/physics/bounds.js +2 -2
- package/dist/melonjs.mjs/physics/collision.js +3 -5
- package/dist/melonjs.mjs/physics/detector.js +2 -2
- package/dist/melonjs.mjs/physics/quadtree.js +2 -2
- package/dist/melonjs.mjs/physics/response.js +2 -2
- package/dist/melonjs.mjs/physics/sat.js +2 -2
- package/dist/melonjs.mjs/physics/world.js +2 -2
- package/dist/melonjs.mjs/plugin/plugin.js +5 -5
- package/dist/melonjs.mjs/renderable/collectable.js +2 -2
- package/dist/melonjs.mjs/renderable/colorlayer.js +2 -2
- package/dist/melonjs.mjs/renderable/container.js +2 -2
- package/dist/melonjs.mjs/renderable/draggable.js +2 -2
- package/dist/melonjs.mjs/renderable/dragndrop.js +2 -2
- package/dist/melonjs.mjs/renderable/entity/entity.js +2 -2
- package/dist/melonjs.mjs/renderable/imagelayer.js +2 -2
- package/dist/melonjs.mjs/renderable/light2d.js +2 -2
- package/dist/melonjs.mjs/renderable/nineslicesprite.js +2 -6
- package/dist/melonjs.mjs/renderable/renderable.js +2 -2
- package/dist/melonjs.mjs/renderable/sprite.js +136 -81
- package/dist/melonjs.mjs/renderable/text/bitmaptext.js +2 -2
- package/dist/melonjs.mjs/renderable/text/bitmaptextdata.js +2 -2
- package/dist/melonjs.mjs/renderable/text/glyph.js +2 -2
- package/dist/melonjs.mjs/renderable/text/text.js +2 -2
- package/dist/melonjs.mjs/renderable/text/textmetrics.js +2 -2
- package/dist/melonjs.mjs/renderable/text/textstyle.js +2 -2
- package/dist/melonjs.mjs/renderable/trigger.js +2 -2
- package/dist/melonjs.mjs/renderable/ui/uibaseelement.js +2 -2
- package/dist/melonjs.mjs/renderable/ui/uispriteelement.js +2 -2
- package/dist/melonjs.mjs/renderable/ui/uitextbutton.js +2 -2
- package/dist/melonjs.mjs/state/stage.js +2 -2
- package/dist/melonjs.mjs/state/state.js +3 -4
- package/dist/melonjs.mjs/system/device.js +46 -3
- package/dist/melonjs.mjs/system/dom.js +2 -2
- package/dist/melonjs.mjs/system/event.js +2 -2
- package/dist/melonjs.mjs/system/platform.js +2 -2
- package/dist/melonjs.mjs/system/pooling.js +3 -20
- package/dist/melonjs.mjs/system/save.js +2 -2
- package/dist/melonjs.mjs/system/timer.js +3 -19
- package/dist/melonjs.mjs/tweens/easing.js +2 -2
- package/dist/melonjs.mjs/tweens/interpolation.js +2 -2
- package/dist/melonjs.mjs/tweens/tween.js +2 -2
- package/dist/melonjs.mjs/utils/agent.js +2 -2
- package/dist/melonjs.mjs/utils/array.js +2 -2
- package/dist/melonjs.mjs/utils/file.js +2 -2
- package/dist/melonjs.mjs/utils/function.js +2 -2
- package/dist/melonjs.mjs/utils/string.js +2 -2
- package/dist/melonjs.mjs/utils/utils.js +2 -2
- package/dist/melonjs.mjs/video/canvas/canvas_renderer.js +2 -2
- package/dist/melonjs.mjs/video/renderer.js +14 -17
- package/dist/melonjs.mjs/video/texture/atlas.js +28 -14
- package/dist/melonjs.mjs/video/texture/cache.js +6 -7
- package/dist/melonjs.mjs/video/texture/canvas_texture.js +16 -19
- package/dist/melonjs.mjs/video/utils/autodetect.js +2 -2
- package/dist/melonjs.mjs/video/video.js +2 -2
- package/dist/melonjs.mjs/video/webgl/buffer/vertex.js +2 -2
- package/dist/melonjs.mjs/video/webgl/compositors/compositor.js +2 -2
- package/dist/melonjs.mjs/video/webgl/compositors/primitive_compositor.js +2 -2
- package/dist/melonjs.mjs/video/webgl/compositors/quad_compositor.js +8 -5
- package/dist/melonjs.mjs/video/webgl/glshader.js +2 -2
- package/dist/melonjs.mjs/video/webgl/shaders/primitive.frag.js +2 -2
- package/dist/melonjs.mjs/video/webgl/shaders/primitive.vert.js +2 -2
- package/dist/melonjs.mjs/video/webgl/shaders/quad.frag.js +2 -2
- package/dist/melonjs.mjs/video/webgl/shaders/quad.vert.js +2 -2
- package/dist/melonjs.mjs/video/webgl/utils/attributes.js +2 -2
- package/dist/melonjs.mjs/video/webgl/utils/precision.js +2 -2
- package/dist/melonjs.mjs/video/webgl/utils/program.js +2 -2
- package/dist/melonjs.mjs/video/webgl/utils/string.js +2 -2
- package/dist/melonjs.mjs/video/webgl/utils/uniforms.js +2 -2
- package/dist/melonjs.mjs/video/webgl/webgl_renderer.js +5 -4
- package/dist/melonjs.module.js +1475 -398
- package/dist/types/application/application.d.ts +1 -1
- package/dist/types/application/settings.d.ts +5 -0
- package/dist/types/geometries/path2d.d.ts +24 -0
- package/dist/types/geometries/rectangle.d.ts +4 -4
- package/dist/types/geometries/roundrect.d.ts +1 -1
- package/dist/types/geometries/toarccanvas.d.ts +10 -0
- package/dist/types/loader/cache.d.ts +1 -0
- package/dist/types/loader/loader.d.ts +37 -8
- package/dist/types/loader/parsers/binary.d.ts +0 -8
- package/dist/types/loader/parsers/fetchdata.d.ts +15 -0
- package/dist/types/loader/parsers/tmx.d.ts +1 -0
- package/dist/types/loader/parsers/video.d.ts +9 -0
- package/dist/types/loader/settings.d.ts +3 -3
- package/dist/types/math/color.d.ts +4 -4
- package/dist/types/math/math.d.ts +6 -0
- package/dist/types/math/observable_vector2.d.ts +2 -2
- package/dist/types/math/observable_vector3.d.ts +3 -3
- package/dist/types/physics/bounds.d.ts +4 -4
- package/dist/types/renderable/entity/entity.d.ts +1 -1
- package/dist/types/renderable/imagelayer.d.ts +1 -1
- package/dist/types/renderable/nineslicesprite.d.ts +12 -0
- package/dist/types/renderable/renderable.d.ts +3 -3
- package/dist/types/renderable/sprite.d.ts +41 -40
- package/dist/types/renderable/text/bitmaptext.d.ts +1 -1
- package/dist/types/system/device.d.ts +16 -0
- package/dist/types/video/renderer.d.ts +11 -23
- package/dist/types/video/texture/canvas_texture.d.ts +11 -23
- package/dist/types/video/webgl/compositors/quad_compositor.d.ts +2 -1
- package/package.json +16 -15
- package/src/application/settings.js +3 -1
- package/src/audio/audio.js +3 -1
- package/src/geometries/ellipse.js +4 -6
- package/src/geometries/path2d.js +129 -4
- package/src/geometries/point.js +5 -7
- package/src/geometries/poly.js +2 -12
- package/src/geometries/toarccanvas.js +94 -0
- package/src/loader/cache.js +3 -0
- package/src/loader/loader.js +57 -7
- package/src/loader/parsers/binary.js +13 -56
- package/src/loader/parsers/fetchdata.js +53 -0
- package/src/loader/parsers/image.js +45 -12
- package/src/loader/parsers/json.js +12 -30
- package/src/loader/parsers/tmx.js +46 -72
- package/src/loader/parsers/video.js +89 -0
- package/src/loader/settings.js +4 -3
- package/src/math/math.js +10 -0
- package/src/math/vector2.js +5 -7
- package/src/math/vector3.js +4 -8
- package/src/physics/body.js +4 -6
- package/src/plugin/plugin.js +1 -1
- package/src/polyfill/index.js +3 -0
- package/src/renderable/nineslicesprite.js +0 -4
- package/src/renderable/sprite.js +134 -79
- package/src/system/device.js +43 -0
- package/src/video/renderer.js +12 -15
- package/src/video/texture/atlas.js +26 -12
- package/src/video/texture/cache.js +3 -3
- package/src/video/texture/canvas_texture.js +14 -17
- package/src/video/webgl/compositors/quad_compositor.js +6 -3
- package/src/video/webgl/webgl_renderer.js +3 -2
|
@@ -8,7 +8,7 @@ export default class Sprite extends Renderable {
|
|
|
8
8
|
* @param {number} x - the x coordinates of the sprite object
|
|
9
9
|
* @param {number} y - the y coordinates of the sprite object
|
|
10
10
|
* @param {object} settings - Configuration parameters for the Sprite object
|
|
11
|
-
* @param {HTMLImageElement|HTMLCanvasElement|TextureAtlas|string} settings.image - reference to spritesheet image, a texture atlas or to a texture atlas
|
|
11
|
+
* @param {HTMLImageElement|HTMLCanvasElement|HTMLVideoElement|TextureAtlas|string} settings.image - reference to spritesheet image, a texture atlas, a video element, or to a texture atlas
|
|
12
12
|
* @param {string} [settings.name=""] - name of this object
|
|
13
13
|
* @param {string} [settings.region] - region name of a specific region to use when using a texture atlas, see {@link TextureAtlas}
|
|
14
14
|
* @param {number} [settings.framewidth] - Width of a single frame within the spritesheet
|
|
@@ -35,9 +35,19 @@ export default class Sprite extends Renderable {
|
|
|
35
35
|
* image : mytexture,
|
|
36
36
|
* region : "npc2.png",
|
|
37
37
|
* });
|
|
38
|
+
*
|
|
39
|
+
* // create a video sprite
|
|
40
|
+
* let videoSprite = new me.Sprite(0, 0, {
|
|
41
|
+
* image : me.loader.getVideo("bigbunny"),
|
|
42
|
+
* anchorPoint : new me.Vector2d(0.5, 0.5)
|
|
43
|
+
* });
|
|
44
|
+
* // scale the video sprite
|
|
45
|
+
* videoSprite.currentTransform.scale(2);
|
|
46
|
+
* // start playing the video (if video is preloaded with `autoplay` set to false)
|
|
47
|
+
* videoSprite.play();
|
|
38
48
|
*/
|
|
39
49
|
constructor(x: number, y: number, settings: {
|
|
40
|
-
image: HTMLImageElement | HTMLCanvasElement | TextureAtlas | string;
|
|
50
|
+
image: HTMLImageElement | HTMLCanvasElement | HTMLVideoElement | TextureAtlas | string;
|
|
41
51
|
name?: string | undefined;
|
|
42
52
|
region?: string | undefined;
|
|
43
53
|
framewidth?: number | undefined;
|
|
@@ -48,38 +58,39 @@ export default class Sprite extends Renderable {
|
|
|
48
58
|
anchorPoint?: any;
|
|
49
59
|
});
|
|
50
60
|
/**
|
|
51
|
-
* pause and resume animation
|
|
52
|
-
* @public
|
|
53
61
|
* @type {boolean}
|
|
54
62
|
* @default false
|
|
55
|
-
* @name Sprite#animationpause
|
|
56
63
|
*/
|
|
57
|
-
|
|
64
|
+
animationpause: boolean;
|
|
58
65
|
/**
|
|
59
66
|
* animation cycling speed (delay between frame in ms)
|
|
60
|
-
* @public
|
|
61
67
|
* @type {number}
|
|
62
68
|
* @default 100
|
|
63
|
-
* @name Sprite#animationspeed
|
|
64
69
|
*/
|
|
65
|
-
|
|
70
|
+
animationspeed: number;
|
|
66
71
|
/**
|
|
67
72
|
* global offset for the position to draw from on the source image.
|
|
68
|
-
* @public
|
|
69
73
|
* @type {Vector2d}
|
|
70
74
|
* @default <0.0,0.0>
|
|
71
|
-
* @name offset
|
|
72
|
-
* @memberof Sprite#
|
|
73
75
|
*/
|
|
74
|
-
|
|
76
|
+
offset: Vector2d;
|
|
77
|
+
/**
|
|
78
|
+
* true if this is a video sprite (e.g. a HTMLVideoElement was passed as as source)
|
|
79
|
+
* @type {boolean}
|
|
80
|
+
* @default false
|
|
81
|
+
*/
|
|
82
|
+
isVideo: boolean;
|
|
83
|
+
/**
|
|
84
|
+
* a callback fired when the end of a video or current animation was reached
|
|
85
|
+
* @type {Function}
|
|
86
|
+
* @default undefined
|
|
87
|
+
*/
|
|
88
|
+
onended: Function;
|
|
75
89
|
/**
|
|
76
90
|
* The source texture object this sprite object is using
|
|
77
|
-
* @public
|
|
78
91
|
* @type {TextureAtlas}
|
|
79
|
-
* @name source
|
|
80
|
-
* @memberof Sprite#
|
|
81
92
|
*/
|
|
82
|
-
|
|
93
|
+
source: TextureAtlas;
|
|
83
94
|
anim: {};
|
|
84
95
|
resetAnim: Function | (() => Sprite) | undefined;
|
|
85
96
|
current: {
|
|
@@ -98,20 +109,27 @@ export default class Sprite extends Renderable {
|
|
|
98
109
|
callback: null;
|
|
99
110
|
state: boolean;
|
|
100
111
|
};
|
|
101
|
-
image: HTMLCanvasElement | HTMLImageElement;
|
|
112
|
+
image: HTMLCanvasElement | HTMLImageElement | HTMLVideoElement;
|
|
102
113
|
textureAtlas: any;
|
|
114
|
+
width: any;
|
|
115
|
+
height: any;
|
|
116
|
+
_onBlurFn: (() => void) | undefined;
|
|
103
117
|
atlasIndices: any;
|
|
104
118
|
/**
|
|
105
119
|
* return the flickering state of the object
|
|
106
|
-
* @name isFlickering
|
|
107
|
-
* @memberof Sprite
|
|
108
120
|
* @returns {boolean}
|
|
109
121
|
*/
|
|
110
122
|
isFlickering(): boolean;
|
|
123
|
+
/**
|
|
124
|
+
* play or resume the current animation or video
|
|
125
|
+
*/
|
|
126
|
+
play(): void;
|
|
127
|
+
/**
|
|
128
|
+
* play or resume the current animation or video
|
|
129
|
+
*/
|
|
130
|
+
pause(): void;
|
|
111
131
|
/**
|
|
112
132
|
* make the object flicker
|
|
113
|
-
* @name flicker
|
|
114
|
-
* @memberof Sprite
|
|
115
133
|
* @param {number} duration - expressed in milliseconds
|
|
116
134
|
* @param {Function} callback - Function to call when flickering ends
|
|
117
135
|
* @returns {Sprite} Reference to this object for method chaining
|
|
@@ -128,11 +146,8 @@ export default class Sprite extends Renderable {
|
|
|
128
146
|
* For fixed-sized cell sprite sheet, the index list must follow the
|
|
129
147
|
* logic as per the following example :<br>
|
|
130
148
|
* <img src="images/spritesheet_grid.png"/>
|
|
131
|
-
* @name addAnimation
|
|
132
|
-
* @memberof Sprite
|
|
133
149
|
* @param {string} name - animation id
|
|
134
|
-
* @param {number[]|string[]|object[]} index - list of sprite index or name
|
|
135
|
-
* defining the animation. Can also use objects to specify delay for each frame, see below
|
|
150
|
+
* @param {number[]|string[]|object[]} index - list of sprite index or name defining the animation. Can also use objects to specify delay for each frame, see below
|
|
136
151
|
* @param {number} [animationspeed] - cycling speed for animation in ms
|
|
137
152
|
* @returns {number} frame amount of frame added to the animation (delay between each frame).
|
|
138
153
|
* @see Sprite#animationspeed
|
|
@@ -160,8 +175,6 @@ export default class Sprite extends Renderable {
|
|
|
160
175
|
/**
|
|
161
176
|
* set the current animation
|
|
162
177
|
* this will always change the animation & set the frame to zero
|
|
163
|
-
* @name setCurrentAnimation
|
|
164
|
-
* @memberof Sprite
|
|
165
178
|
* @param {string} name - animation id
|
|
166
179
|
* @param {string|Function} [resetAnim] - animation id to switch to when complete, or callback
|
|
167
180
|
* @param {boolean} [preserve_dt=false] - if false will reset the elapsed time counter since last frame
|
|
@@ -199,8 +212,6 @@ export default class Sprite extends Renderable {
|
|
|
199
212
|
setCurrentAnimation(name: string, resetAnim?: string | Function | undefined, preserve_dt?: boolean | undefined): Sprite;
|
|
200
213
|
/**
|
|
201
214
|
* reverse the given or current animation if none is specified
|
|
202
|
-
* @name reverseAnimation
|
|
203
|
-
* @memberof Sprite
|
|
204
215
|
* @param {string} [name] - animation id
|
|
205
216
|
* @returns {Sprite} Reference to this object for method chaining
|
|
206
217
|
* @see Sprite#animationspeed
|
|
@@ -208,8 +219,6 @@ export default class Sprite extends Renderable {
|
|
|
208
219
|
reverseAnimation(name?: string | undefined): Sprite;
|
|
209
220
|
/**
|
|
210
221
|
* return true if the specified animation is the current one.
|
|
211
|
-
* @name isCurrentAnimation
|
|
212
|
-
* @memberof Sprite
|
|
213
222
|
* @param {string} name - animation id
|
|
214
223
|
* @returns {boolean}
|
|
215
224
|
* @example
|
|
@@ -221,8 +230,6 @@ export default class Sprite extends Renderable {
|
|
|
221
230
|
/**
|
|
222
231
|
* change the current texture atlas region for this sprite
|
|
223
232
|
* @see Texture.getRegion
|
|
224
|
-
* @name setRegion
|
|
225
|
-
* @memberof Sprite
|
|
226
233
|
* @param {object} region - typically returned through me.Texture.getRegion()
|
|
227
234
|
* @returns {Sprite} Reference to this object for method chaining
|
|
228
235
|
* @example
|
|
@@ -232,8 +239,6 @@ export default class Sprite extends Renderable {
|
|
|
232
239
|
setRegion(region: object): Sprite;
|
|
233
240
|
/**
|
|
234
241
|
* force the current animation frame index.
|
|
235
|
-
* @name setAnimationFrame
|
|
236
|
-
* @memberof Sprite
|
|
237
242
|
* @param {number} [index=0] - animation frame index
|
|
238
243
|
* @returns {Sprite} Reference to this object for method chaining
|
|
239
244
|
* @example
|
|
@@ -243,15 +248,11 @@ export default class Sprite extends Renderable {
|
|
|
243
248
|
setAnimationFrame(index?: number | undefined): Sprite;
|
|
244
249
|
/**
|
|
245
250
|
* return the current animation frame index.
|
|
246
|
-
* @name getCurrentAnimationFrame
|
|
247
|
-
* @memberof Sprite
|
|
248
251
|
* @returns {number} current animation frame index
|
|
249
252
|
*/
|
|
250
253
|
getCurrentAnimationFrame(): number;
|
|
251
254
|
/**
|
|
252
255
|
* Returns the frame object by the index.
|
|
253
|
-
* @name getAnimationFrameObjectByIndex
|
|
254
|
-
* @memberof Sprite
|
|
255
256
|
* @ignore
|
|
256
257
|
* @param {number} id - the frame id
|
|
257
258
|
* @returns {number} if using number indices. Returns {object} containing frame data if using texture atlas
|
|
@@ -291,6 +291,13 @@ export function unwatchDeviceOrientation(): void;
|
|
|
291
291
|
* me.device.vibrate(0);
|
|
292
292
|
*/
|
|
293
293
|
export function vibrate(pattern: number | number[]): void;
|
|
294
|
+
/**
|
|
295
|
+
* detect if the given video format is supported
|
|
296
|
+
* @function hasVideoFormat
|
|
297
|
+
* @param {"h264"|"h265"|"ogg"|"mp4"|"m4v"|"webm"|"vp9"|"hls"} codec - the video format to check for support
|
|
298
|
+
* @returns {boolean} return true if the given video format is supported
|
|
299
|
+
*/
|
|
300
|
+
export function hasVideoFormat(codec: "h264" | "h265" | "ogg" | "mp4" | "m4v" | "webm" | "vp9" | "hls"): boolean;
|
|
294
301
|
/**
|
|
295
302
|
* the device platform type
|
|
296
303
|
* @name platform
|
|
@@ -422,6 +429,15 @@ export const hasHTML5Audio: boolean;
|
|
|
422
429
|
* @public
|
|
423
430
|
*/
|
|
424
431
|
export const sound: boolean;
|
|
432
|
+
/**
|
|
433
|
+
* Device Video Support
|
|
434
|
+
* @name hasVideo
|
|
435
|
+
* @memberof device
|
|
436
|
+
* @type {boolean}
|
|
437
|
+
* @readonly
|
|
438
|
+
* @public
|
|
439
|
+
*/
|
|
440
|
+
export const hasVideo: boolean;
|
|
425
441
|
/**
|
|
426
442
|
* Browser Local Storage capabilities <br>
|
|
427
443
|
* (this flag will be set to false if cookies are blocked)
|
|
@@ -65,13 +65,13 @@ export default class Renderer {
|
|
|
65
65
|
currentTint: Color;
|
|
66
66
|
projectionMatrix: Matrix3d;
|
|
67
67
|
uvOffset: number;
|
|
68
|
-
set height(
|
|
68
|
+
set height(value: number);
|
|
69
69
|
/**
|
|
70
70
|
* return the height of the canvas which this renderer draws to
|
|
71
71
|
* @returns {number} height of the system Canvas
|
|
72
72
|
*/
|
|
73
73
|
get height(): number;
|
|
74
|
-
set width(
|
|
74
|
+
set width(value: number);
|
|
75
75
|
/**
|
|
76
76
|
* return the width of the canvas which this renderer draws to
|
|
77
77
|
* @returns {number} width of the system Canvas
|
|
@@ -190,44 +190,32 @@ export default class Renderer {
|
|
|
190
190
|
clearTint(): void;
|
|
191
191
|
/**
|
|
192
192
|
* creates a Blob object representing the last rendered frame
|
|
193
|
-
* @param {
|
|
194
|
-
* @param {
|
|
195
|
-
* @param {number} [options.quality] - A Number between 0 and 1 indicating the image quality to be used when creating images using file formats that support lossy compression (such as image/jpeg or image/webp). A user agent will use its default quality value if this option is not specified, or if the number is outside the allowed range.
|
|
193
|
+
* @param {string} [type="image/png"] - A string indicating the image format
|
|
194
|
+
* @param {number} [quality] - A Number between 0 and 1 indicating the image quality to be used when creating images using file formats that support lossy compression (such as image/jpeg or image/webp). A user agent will use its default quality value if this option is not specified, or if the number is outside the allowed range.
|
|
196
195
|
* @returns {Promise} A Promise returning a Blob object representing the last rendered frame
|
|
197
196
|
* @example
|
|
198
197
|
* renderer.convertToBlob().then((blob) => console.log(blob));
|
|
199
198
|
*/
|
|
200
|
-
toBlob(
|
|
201
|
-
type?: string | undefined;
|
|
202
|
-
quality?: number | undefined;
|
|
203
|
-
} | undefined): Promise<any>;
|
|
199
|
+
toBlob(type?: string | undefined, quality?: number | undefined): Promise<any>;
|
|
204
200
|
/**
|
|
205
201
|
* creates an ImageBitmap object of the last frame rendered
|
|
206
202
|
* (not supported by standard Canvas)
|
|
207
|
-
* @param {
|
|
208
|
-
* @param {
|
|
209
|
-
* @param {number} [options.quality] - A Number between 0 and 1 indicating the image quality to be used when creating images using file formats that support lossy compression (such as image/jpeg or image/webp). A user agent will use its default quality value if this option is not specified, or if the number is outside the allowed range.
|
|
203
|
+
* @param {string} [type="image/png"] - A string indicating the image format
|
|
204
|
+
* @param {number} [quality] - A Number between 0 and 1 indicating the image quality to be used when creating images using file formats that support lossy compression (such as image/jpeg or image/webp). A user agent will use its default quality value if this option is not specified, or if the number is outside the allowed range.
|
|
210
205
|
* @returns {Promise} A Promise returning an ImageBitmap.
|
|
211
206
|
* @example
|
|
212
207
|
* renderer.transferToImageBitmap().then((image) => console.log(image));
|
|
213
208
|
*/
|
|
214
|
-
toImageBitmap(
|
|
215
|
-
type?: string | undefined;
|
|
216
|
-
quality?: number | undefined;
|
|
217
|
-
} | undefined): Promise<any>;
|
|
209
|
+
toImageBitmap(type?: string | undefined, quality?: number | undefined): Promise<any>;
|
|
218
210
|
/**
|
|
219
211
|
* returns a data URL containing a representation of the last frame rendered
|
|
220
|
-
* @param {
|
|
221
|
-
* @param {
|
|
222
|
-
* @param {number} [options.quality] - A Number between 0 and 1 indicating the image quality to be used when creating images using file formats that support lossy compression (such as image/jpeg or image/webp). A user agent will use its default quality value if this option is not specified, or if the number is outside the allowed range.
|
|
212
|
+
* @param {string} [type="image/png"] - A string indicating the image format
|
|
213
|
+
* @param {number} [quality] - A Number between 0 and 1 indicating the image quality to be used when creating images using file formats that support lossy compression (such as image/jpeg or image/webp). A user agent will use its default quality value if this option is not specified, or if the number is outside the allowed range.
|
|
223
214
|
* @returns {Promise} A Promise returning a string containing the requested data URL.
|
|
224
215
|
* @example
|
|
225
216
|
* renderer.toDataURL().then((dataURL) => console.log(dataURL));
|
|
226
217
|
*/
|
|
227
|
-
toDataURL(
|
|
228
|
-
type?: string | undefined;
|
|
229
|
-
quality?: number | undefined;
|
|
230
|
-
} | undefined): Promise<any>;
|
|
218
|
+
toDataURL(type?: string | undefined, quality?: number | undefined): Promise<any>;
|
|
231
219
|
}
|
|
232
220
|
import Vector2d from "../math/vector2.js";
|
|
233
221
|
import Path2D from "./../geometries/path2d.js";
|
|
@@ -60,44 +60,32 @@ declare class CanvasTexture {
|
|
|
60
60
|
getImageData(x: number, y: number, width: number, height: number): ImageData;
|
|
61
61
|
/**
|
|
62
62
|
* creates a Blob object representing the image contained in this canvas texture
|
|
63
|
-
* @param {
|
|
64
|
-
* @param {
|
|
65
|
-
* @param {number} [options.quality] - A Number between 0 and 1 indicating the image quality to be used when creating images using file formats that support lossy compression (such as image/jpeg or image/webp). A user agent will use its default quality value if this option is not specified, or if the number is outside the allowed range.
|
|
63
|
+
* @param {string} [type="image/png"] - A string indicating the image format
|
|
64
|
+
* @param {number} [quality] - A Number between 0 and 1 indicating the image quality to be used when creating images using file formats that support lossy compression (such as image/jpeg or image/webp). A user agent will use its default quality value if this option is not specified, or if the number is outside the allowed range.
|
|
66
65
|
* @returns {Promise} A Promise returning a Blob object representing the image contained in this canvas texture
|
|
67
66
|
* @example
|
|
68
67
|
* canvasTexture.convertToBlob().then((blob) => console.log(blob));
|
|
69
68
|
*/
|
|
70
|
-
toBlob(
|
|
71
|
-
type?: string | undefined;
|
|
72
|
-
quality?: number | undefined;
|
|
73
|
-
} | undefined): Promise<any>;
|
|
69
|
+
toBlob(type?: string | undefined, quality?: number | undefined): Promise<any>;
|
|
74
70
|
/**
|
|
75
71
|
* creates an ImageBitmap object from the most recently rendered image of this canvas texture
|
|
76
|
-
* @param {
|
|
77
|
-
* @param {
|
|
78
|
-
* @param {number} [options.quality] - A Number between 0 and 1 indicating the image quality to be used when creating images using file formats that support lossy compression (such as image/jpeg or image/webp). A user agent will use its default quality value if this option is not specified, or if the number is outside the allowed range.
|
|
72
|
+
* @param {string} [type="image/png"] - A string indicating the image format
|
|
73
|
+
* @param {number} [quality] - A Number between 0 and 1 indicating the image quality to be used when creating images using file formats that support lossy compression (such as image/jpeg or image/webp). A user agent will use its default quality value if this option is not specified, or if the number is outside the allowed range.
|
|
79
74
|
* @returns {Promise} A Promise returning an ImageBitmap.
|
|
80
75
|
* @example
|
|
81
76
|
* canvasTexture.transferToImageBitmap().then((bitmap) => console.log(bitmap));
|
|
82
77
|
*/
|
|
83
|
-
toImageBitmap(
|
|
84
|
-
type?: string | undefined;
|
|
85
|
-
quality?: number | undefined;
|
|
86
|
-
} | undefined): Promise<any>;
|
|
78
|
+
toImageBitmap(type?: string | undefined, quality?: number | undefined): Promise<any>;
|
|
87
79
|
/**
|
|
88
80
|
* returns a data URL containing a representation of the most recently rendered image of this canvas texture
|
|
89
81
|
* (not supported by OffscreenCanvas)
|
|
90
|
-
* @param {
|
|
91
|
-
* @param {
|
|
92
|
-
* @param {number} [options.quality] - A Number between 0 and 1 indicating the image quality to be used when creating images using file formats that support lossy compression (such as image/jpeg or image/webp). A user agent will use its default quality value if this option is not specified, or if the number is outside the allowed range.
|
|
82
|
+
* @param {string} [type="image/png"] - A string indicating the image format
|
|
83
|
+
* @param {number} [quality] - A Number between 0 and 1 indicating the image quality to be used when creating images using file formats that support lossy compression (such as image/jpeg or image/webp). A user agent will use its default quality value if this option is not specified, or if the number is outside the allowed range.
|
|
93
84
|
* @returns {Promise} A Promise returning a string containing the requested data URL.
|
|
94
85
|
* @example
|
|
95
86
|
* renderer.toDataURL().then((dataURL) => console.log(dataURL));
|
|
96
87
|
*/
|
|
97
|
-
toDataURL(
|
|
98
|
-
type?: string | undefined;
|
|
99
|
-
quality?: number | undefined;
|
|
100
|
-
} | undefined): Promise<any>;
|
|
88
|
+
toDataURL(type?: string | undefined, quality?: number | undefined): Promise<any>;
|
|
101
89
|
/**
|
|
102
90
|
* invalidate the current CanvasTexture, and force a reupload of the corresponding texture
|
|
103
91
|
* (call this if you modify the canvas content between two draw calls)
|
|
@@ -109,14 +97,14 @@ declare class CanvasTexture {
|
|
|
109
97
|
* @ignore
|
|
110
98
|
*/
|
|
111
99
|
destroy(): void;
|
|
112
|
-
public set width(
|
|
100
|
+
public set width(val: number);
|
|
113
101
|
/**
|
|
114
102
|
* The width of this canvas texture in pixels
|
|
115
103
|
* @public
|
|
116
104
|
* @type {number}
|
|
117
105
|
*/
|
|
118
106
|
public get width(): number;
|
|
119
|
-
public set height(
|
|
107
|
+
public set height(val: number);
|
|
120
108
|
/**
|
|
121
109
|
* The height of this canvas texture in pixels
|
|
122
110
|
* @public
|
|
@@ -65,7 +65,8 @@ export default class QuadCompositor extends Compositor {
|
|
|
65
65
|
* @param {number} u1 - Texture UV (u1) value.
|
|
66
66
|
* @param {number} v1 - Texture UV (v1) value.
|
|
67
67
|
* @param {number} tint - tint color to be applied to the texture in UINT32 (argb) format
|
|
68
|
+
* @param {boolean} reupload - Force the texture to be reuploaded even if already bound
|
|
68
69
|
*/
|
|
69
|
-
addQuad(texture: TextureAtlas, x: number, y: number, w: number, h: number, u0: number, v0: number, u1: number, v1: number, tint: number): void;
|
|
70
|
+
addQuad(texture: TextureAtlas, x: number, y: number, w: number, h: number, u0: number, v0: number, u1: number, v1: number, tint: number, reupload?: boolean): void;
|
|
70
71
|
}
|
|
71
72
|
import Compositor from "./compositor.js";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "melonjs",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "16.1.0",
|
|
4
4
|
"description": "melonJS Game Engine",
|
|
5
5
|
"homepage": "http://www.melonjs.org/",
|
|
6
6
|
"type": "module",
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
"author": "Olivier Biot (AltByte Pte Ltd)",
|
|
36
36
|
"funding": "https://github.com/sponsors/melonjs",
|
|
37
37
|
"engines": {
|
|
38
|
-
"node": ">=
|
|
38
|
+
"node": ">= 20"
|
|
39
39
|
},
|
|
40
40
|
"main": "dist/melonjs.module.js",
|
|
41
41
|
"module": "dist/melonjs.module.js",
|
|
@@ -53,37 +53,38 @@
|
|
|
53
53
|
],
|
|
54
54
|
"dependencies": {
|
|
55
55
|
"@teppeis/multimaps": "^3.0.0",
|
|
56
|
-
"core-js": "^3.
|
|
56
|
+
"core-js": "^3.35.1",
|
|
57
57
|
"earcut": "2.2.4",
|
|
58
58
|
"eventemitter3": "^5.0.1",
|
|
59
|
-
"howler": "2.2.4"
|
|
59
|
+
"howler": "2.2.4",
|
|
60
|
+
"whatwg-fetch": "^3.6.20"
|
|
60
61
|
},
|
|
61
62
|
"devDependencies": {
|
|
62
|
-
"@babel/eslint-parser": "^7.23.
|
|
63
|
+
"@babel/eslint-parser": "^7.23.10",
|
|
63
64
|
"@babel/plugin-syntax-import-assertions": "^7.23.3",
|
|
64
|
-
"@fastify/static": "^
|
|
65
|
+
"@fastify/static": "^7.0.0",
|
|
65
66
|
"@melonjs/webdoc-theme": "^1.1.1",
|
|
66
67
|
"@rollup/plugin-commonjs": "^25.0.7",
|
|
67
68
|
"@rollup/plugin-image": "^3.0.3",
|
|
68
69
|
"@rollup/plugin-node-resolve": "^15.2.3",
|
|
69
70
|
"@rollup/plugin-replace": "^5.0.5",
|
|
70
71
|
"@webdoc/cli": "^2.2.0",
|
|
71
|
-
"chromedriver": "^
|
|
72
|
+
"chromedriver": "^121.0.0",
|
|
72
73
|
"cross-env": "^7.0.3",
|
|
73
74
|
"del-cli": "^5.1.0",
|
|
74
|
-
"eslint": "^8.
|
|
75
|
-
"eslint-plugin-jsdoc": "^
|
|
75
|
+
"eslint": "^8.56.0",
|
|
76
|
+
"eslint-plugin-jsdoc": "^48.0.5",
|
|
76
77
|
"expect": "^29.7.0",
|
|
77
|
-
"expect-mocha-image-snapshot": "^3.0.
|
|
78
|
-
"fastify": "^4.
|
|
78
|
+
"expect-mocha-image-snapshot": "^3.0.16",
|
|
79
|
+
"fastify": "^4.26.0",
|
|
79
80
|
"mocha": "^10.2.0",
|
|
80
81
|
"npm-self-link": "^1.1.7",
|
|
81
|
-
"puppeteer": "^
|
|
82
|
-
"rollup": "^4.
|
|
82
|
+
"puppeteer": "^22.0.0",
|
|
83
|
+
"rollup": "^4.9.6",
|
|
83
84
|
"rollup-plugin-bundle-size": "^1.0.3",
|
|
84
85
|
"rollup-plugin-string": "^3.0.0",
|
|
85
|
-
"terser": "^5.
|
|
86
|
-
"typescript": "^5.
|
|
86
|
+
"terser": "^5.27.0",
|
|
87
|
+
"typescript": "^5.3.3"
|
|
87
88
|
},
|
|
88
89
|
"scripts": {
|
|
89
90
|
"build": "npm run lint && rollup -c --silent",
|
|
@@ -17,13 +17,15 @@ export const defaultSettings = {
|
|
|
17
17
|
powerPreference : "default",
|
|
18
18
|
verbose : false,
|
|
19
19
|
consoleHeader : true,
|
|
20
|
-
legacy : false
|
|
20
|
+
legacy : false,
|
|
21
|
+
canvas : undefined
|
|
21
22
|
};
|
|
22
23
|
|
|
23
24
|
/**
|
|
24
25
|
* Application & Renderer Settings definition.
|
|
25
26
|
* @typedef {object} Settings
|
|
26
27
|
* @property {string|HTMLElement} [parent=document.body] - the DOM parent element to hold the canvas in the HTML file
|
|
28
|
+
* @property {HTMLCanvasElement} [canvas] - an existing canvas element to use as the renderer target (by default melonJS will create its own canvas based on given parameters)
|
|
27
29
|
* @property {number|Renderer} [renderer=AUTO] - renderer to use (CANVAS, WEBGL, AUTO), or a custom renderer class
|
|
28
30
|
* @property {number|string} [scale=1.0] - enable scaling of the canvas ('auto' for automatic scaling)
|
|
29
31
|
* @property {"fit"|"fill-min"|"fill-max"|"flex"|"flex-width"|"flex-height"|"stretch"} [scaleMethod="fit"] - screen scaling modes : <br>
|
package/src/audio/audio.js
CHANGED
|
@@ -159,7 +159,9 @@ export function load(sound, onloadcb, onerrorcb) {
|
|
|
159
159
|
audioTracks[sound.name] = new Howl({
|
|
160
160
|
src : urls,
|
|
161
161
|
volume : Howler.volume(),
|
|
162
|
-
|
|
162
|
+
autoplay : sound.autoplay === true,
|
|
163
|
+
loop : sound.loop = true,
|
|
164
|
+
html5 : sound.stream === true || sound.html5 === true,
|
|
163
165
|
xhrWithCredentials : withCredentials,
|
|
164
166
|
onloaderror() {
|
|
165
167
|
soundLoadError.call(this, sound.name, onerrorcb);
|
|
@@ -189,17 +189,15 @@ export default class Ellipse {
|
|
|
189
189
|
* // do something
|
|
190
190
|
* }
|
|
191
191
|
*/
|
|
192
|
-
contains() {
|
|
192
|
+
contains(...args) {
|
|
193
193
|
let _x, _y;
|
|
194
194
|
|
|
195
|
-
if (
|
|
195
|
+
if (args.length === 2) {
|
|
196
196
|
// x, y
|
|
197
|
-
_x =
|
|
198
|
-
_y = arguments[1];
|
|
197
|
+
[_x, _y] = args;
|
|
199
198
|
} else {
|
|
200
199
|
// vector
|
|
201
|
-
_x =
|
|
202
|
-
_y = arguments[0].y;
|
|
200
|
+
[_x, _y] = [args[0].x, args[0].y];
|
|
203
201
|
}
|
|
204
202
|
|
|
205
203
|
// Make position relative to object center point.
|