melonjs 15.2.1 → 15.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/melonjs.mjs/_virtual/_commonjsHelpers.js +1 -1
- package/dist/melonjs.mjs/_virtual/earcut.js +1 -1
- package/dist/melonjs.mjs/_virtual/howler.js +1 -1
- package/dist/melonjs.mjs/_virtual/index.js +1 -1
- package/dist/melonjs.mjs/application/application.js +75 -23
- package/dist/melonjs.mjs/application/header.js +2 -2
- package/dist/melonjs.mjs/application/resize.js +13 -11
- package/dist/melonjs.mjs/application/settings.js +37 -1
- package/dist/melonjs.mjs/audio/audio.js +4 -6
- package/dist/melonjs.mjs/camera/camera2d.js +12 -14
- package/dist/melonjs.mjs/const.js +1 -1
- package/dist/melonjs.mjs/entity/entity.js +3 -4
- package/dist/melonjs.mjs/geometries/ellipse.js +26 -59
- package/dist/melonjs.mjs/geometries/line.js +18 -25
- package/dist/melonjs.mjs/geometries/path2d.js +16 -13
- package/dist/melonjs.mjs/geometries/point.js +8 -16
- package/dist/melonjs.mjs/geometries/poly.js +40 -97
- package/dist/melonjs.mjs/geometries/rectangle.js +37 -91
- package/dist/melonjs.mjs/geometries/roundrect.js +26 -35
- package/dist/melonjs.mjs/index.js +6 -6
- package/dist/melonjs.mjs/input/gamepad.js +1 -1
- package/dist/melonjs.mjs/input/input.js +1 -1
- package/dist/melonjs.mjs/input/keyboard.js +3 -3
- package/dist/melonjs.mjs/input/pointer.js +4 -4
- package/dist/melonjs.mjs/input/pointerevent.js +6 -7
- package/dist/melonjs.mjs/lang/console.js +1 -1
- package/dist/melonjs.mjs/lang/deprecated.js +2 -2
- package/dist/melonjs.mjs/level/level.js +1 -1
- package/dist/melonjs.mjs/level/tiled/TMXGroup.js +1 -1
- package/dist/melonjs.mjs/level/tiled/TMXLayer.js +16 -33
- package/dist/melonjs.mjs/level/tiled/TMXObject.js +3 -4
- package/dist/melonjs.mjs/level/tiled/TMXTile.js +4 -4
- package/dist/melonjs.mjs/level/tiled/TMXTileMap.js +3 -3
- package/dist/melonjs.mjs/level/tiled/TMXTileset.js +4 -7
- package/dist/melonjs.mjs/level/tiled/TMXTilesetGroup.js +2 -2
- package/dist/melonjs.mjs/level/tiled/TMXUtils.js +37 -47
- package/dist/melonjs.mjs/level/tiled/constants.js +1 -1
- package/dist/melonjs.mjs/level/tiled/renderer/TMXHexagonalRenderer.js +3 -3
- 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 +1 -1
- package/dist/melonjs.mjs/loader/cache.js +1 -1
- package/dist/melonjs.mjs/loader/loader.js +1 -1
- package/dist/melonjs.mjs/loader/loadingscreen.js +1 -1
- package/dist/melonjs.mjs/loader/melonjs_logo.png.js +1 -1
- package/dist/melonjs.mjs/loader/parser.js +4 -5
- package/dist/melonjs.mjs/loader/settings.js +1 -1
- package/dist/melonjs.mjs/math/color.js +5 -5
- package/dist/melonjs.mjs/math/math.js +1 -1
- package/dist/melonjs.mjs/math/matrix2.js +5 -59
- package/dist/melonjs.mjs/math/matrix3.js +82 -141
- package/dist/melonjs.mjs/math/observable_vector2.js +7 -7
- package/dist/melonjs.mjs/math/observable_vector3.js +5 -5
- package/dist/melonjs.mjs/math/vector2.js +7 -91
- package/dist/melonjs.mjs/math/vector3.js +6 -90
- package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/esm/arraymultimap.js +1 -1
- package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/esm/multimap.js +1 -1
- package/dist/melonjs.mjs/node_modules/earcut/src/earcut.js +1 -1
- package/dist/melonjs.mjs/node_modules/eventemitter3/index.js +1 -1
- package/dist/melonjs.mjs/node_modules/eventemitter3/index2.js +1 -1
- package/dist/melonjs.mjs/node_modules/howler/dist/howler.js +1 -1
- 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 +1 -1
- package/dist/melonjs.mjs/physics/body.js +22 -20
- package/dist/melonjs.mjs/physics/bounds.js +27 -33
- package/dist/melonjs.mjs/physics/collision.js +5 -5
- package/dist/melonjs.mjs/physics/detector.js +10 -10
- package/dist/melonjs.mjs/physics/quadtree.js +5 -5
- package/dist/melonjs.mjs/physics/response.js +1 -1
- package/dist/melonjs.mjs/physics/sat.js +3 -4
- package/dist/melonjs.mjs/physics/world.js +6 -9
- package/dist/melonjs.mjs/plugin/plugin.js +3 -3
- package/dist/melonjs.mjs/renderable/collectable.js +2 -2
- package/dist/melonjs.mjs/renderable/colorlayer.js +4 -4
- package/dist/melonjs.mjs/renderable/container.js +25 -25
- package/dist/melonjs.mjs/renderable/draggable.js +1 -1
- package/dist/melonjs.mjs/renderable/dragndrop.js +1 -1
- package/dist/melonjs.mjs/renderable/imagelayer.js +4 -4
- package/dist/melonjs.mjs/renderable/light2d.js +3 -3
- package/dist/melonjs.mjs/renderable/nineslicesprite.js +2 -2
- package/dist/melonjs.mjs/renderable/renderable.js +31 -39
- package/dist/melonjs.mjs/renderable/sprite.js +3 -3
- package/dist/melonjs.mjs/renderable/text/bitmaptext.js +421 -0
- package/dist/melonjs.mjs/renderable/text/bitmaptextdata.js +195 -0
- package/dist/melonjs.mjs/renderable/text/glyph.js +65 -0
- package/dist/melonjs.mjs/renderable/text/text.js +422 -0
- package/dist/melonjs.mjs/renderable/text/textmetrics.js +175 -0
- package/dist/melonjs.mjs/renderable/text/textstyle.js +21 -0
- package/dist/melonjs.mjs/renderable/trigger.js +10 -10
- package/dist/melonjs.mjs/renderable/ui/uibaseelement.js +7 -7
- package/dist/melonjs.mjs/renderable/ui/uispriteelement.js +7 -7
- package/dist/melonjs.mjs/renderable/ui/uitextbutton.js +3 -3
- package/dist/melonjs.mjs/state/stage.js +13 -14
- package/dist/melonjs.mjs/state/state.js +4 -51
- package/dist/melonjs.mjs/system/device.js +51 -10
- package/dist/melonjs.mjs/system/dom.js +1 -1
- package/dist/melonjs.mjs/system/event.js +46 -2
- package/dist/melonjs.mjs/system/platform.js +18 -18
- package/dist/melonjs.mjs/system/pooling.js +10 -10
- package/dist/melonjs.mjs/system/save.js +1 -1
- package/dist/melonjs.mjs/system/timer.js +1 -1
- package/dist/melonjs.mjs/text/bitmaptext.js +1 -1
- package/dist/melonjs.mjs/text/bitmaptextdata.js +3 -6
- package/dist/melonjs.mjs/text/glyph.js +1 -1
- package/dist/melonjs.mjs/text/text.js +1 -1
- package/dist/melonjs.mjs/text/textmetrics.js +1 -1
- package/dist/melonjs.mjs/text/textstyle.js +1 -1
- package/dist/melonjs.mjs/tweens/easing.js +1 -1
- package/dist/melonjs.mjs/tweens/interpolation.js +1 -1
- package/dist/melonjs.mjs/tweens/tween.js +2 -2
- package/dist/melonjs.mjs/utils/agent.js +1 -1
- package/dist/melonjs.mjs/utils/array.js +1 -1
- package/dist/melonjs.mjs/utils/file.js +1 -1
- package/dist/melonjs.mjs/utils/function.js +2 -3
- package/dist/melonjs.mjs/utils/string.js +1 -1
- package/dist/melonjs.mjs/utils/utils.js +1 -1
- package/dist/melonjs.mjs/video/canvas/canvas_renderer.js +5 -18
- package/dist/melonjs.mjs/video/renderer.js +17 -30
- package/dist/melonjs.mjs/video/texture/atlas.js +13 -13
- package/dist/melonjs.mjs/video/texture/cache.js +1 -1
- package/dist/melonjs.mjs/video/texture/canvas_texture.js +15 -15
- package/dist/melonjs.mjs/video/utils/autodetect.js +1 -1
- package/dist/melonjs.mjs/video/video.js +5 -29
- package/dist/melonjs.mjs/video/webgl/buffer/vertex.js +3 -3
- package/dist/melonjs.mjs/video/webgl/compositors/compositor.js +13 -14
- package/dist/melonjs.mjs/video/webgl/compositors/primitive_compositor.js +5 -5
- package/dist/melonjs.mjs/video/webgl/compositors/quad_compositor.js +2 -3
- package/dist/melonjs.mjs/video/webgl/glshader.js +2 -2
- package/dist/melonjs.mjs/video/webgl/shaders/primitive.frag.js +1 -1
- package/dist/melonjs.mjs/video/webgl/shaders/primitive.vert.js +1 -1
- package/dist/melonjs.mjs/video/webgl/shaders/quad.frag.js +1 -1
- package/dist/melonjs.mjs/video/webgl/shaders/quad.vert.js +1 -1
- package/dist/melonjs.mjs/video/webgl/utils/attributes.js +1 -1
- package/dist/melonjs.mjs/video/webgl/utils/precision.js +4 -4
- package/dist/melonjs.mjs/video/webgl/utils/program.js +1 -1
- package/dist/melonjs.mjs/video/webgl/utils/string.js +1 -1
- package/dist/melonjs.mjs/video/webgl/utils/uniforms.js +1 -1
- package/dist/melonjs.mjs/video/webgl/webgl_renderer.js +62 -67
- package/dist/melonjs.module.js +1272 -1713
- package/dist/types/application/application.d.ts +32 -31
- package/dist/types/application/header.d.ts +2 -2
- package/dist/types/application/settings.d.ts +80 -16
- package/dist/types/audio/audio.d.ts +4 -6
- package/dist/types/camera/camera2d.d.ts +13 -16
- package/dist/types/entity/entity.d.ts +0 -1
- package/dist/types/geometries/ellipse.d.ts +18 -50
- package/dist/types/geometries/path2d.d.ts +1 -1
- package/dist/types/geometries/point.d.ts +5 -13
- package/dist/types/geometries/poly.d.ts +26 -75
- package/dist/types/geometries/rectangle.d.ts +12 -58
- package/dist/types/geometries/roundrect.d.ts +2 -11
- package/dist/types/index.d.ts +3 -3
- package/dist/types/input/gamepad.d.ts +31 -31
- package/dist/types/input/keyboard.d.ts +105 -105
- package/dist/types/input/pointer.d.ts +21 -21
- package/dist/types/input/pointerevent.d.ts +6 -6
- package/dist/types/level/tiled/TMXLayer.d.ts +1 -1
- package/dist/types/level/tiled/TMXUtils.d.ts +4 -6
- package/dist/types/math/matrix2.d.ts +9 -63
- package/dist/types/math/matrix3.d.ts +9 -68
- package/dist/types/math/observable_vector2.d.ts +2 -2
- package/dist/types/math/observable_vector3.d.ts +2 -2
- package/dist/types/math/vector2.d.ts +8 -92
- package/dist/types/math/vector3.d.ts +8 -92
- package/dist/types/particles/settings.d.ts +29 -29
- package/dist/types/physics/body.d.ts +10 -8
- package/dist/types/physics/bounds.d.ts +24 -30
- package/dist/types/physics/collision.d.ts +12 -12
- package/dist/types/physics/detector.d.ts +1 -1
- package/dist/types/physics/world.d.ts +4 -7
- package/dist/types/renderable/container.d.ts +19 -19
- package/dist/types/renderable/imagelayer.d.ts +6 -6
- package/dist/types/renderable/light2d.d.ts +7 -7
- package/dist/types/renderable/renderable.d.ts +10 -18
- package/dist/types/renderable/text/bitmaptext.d.ts +151 -0
- package/dist/types/renderable/text/bitmaptextdata.d.ts +35 -0
- package/dist/types/renderable/text/glyph.d.ts +28 -0
- package/dist/types/renderable/text/text.d.ts +159 -0
- package/dist/types/renderable/text/textmetrics.d.ts +47 -0
- package/dist/types/renderable/text/textstyle.d.ts +5 -0
- package/dist/types/renderable/ui/uibaseelement.d.ts +0 -1
- package/dist/types/renderable/ui/uispriteelement.d.ts +0 -1
- package/dist/types/renderable/ui/uitextbutton.d.ts +2 -7
- package/dist/types/state/stage.d.ts +3 -2
- package/dist/types/state/state.d.ts +11 -11
- package/dist/types/system/device.d.ts +16 -9
- package/dist/types/system/event.d.ts +40 -0
- package/dist/types/system/platform.d.ts +17 -17
- package/dist/types/utils/function.d.ts +1 -2
- package/dist/types/video/canvas/canvas_renderer.d.ts +0 -23
- package/dist/types/video/renderer.d.ts +16 -43
- package/dist/types/video/texture/canvas_texture.d.ts +14 -14
- package/dist/types/video/video.d.ts +4 -38
- package/dist/types/video/webgl/buffer/vertex.d.ts +2 -2
- package/dist/types/video/webgl/compositors/compositor.d.ts +24 -13
- package/dist/types/video/webgl/compositors/primitive_compositor.d.ts +0 -1
- package/dist/types/video/webgl/compositors/quad_compositor.d.ts +0 -1
- package/dist/types/video/webgl/utils/precision.d.ts +1 -1
- package/dist/types/video/webgl/webgl_renderer.d.ts +48 -84
- package/package.json +15 -15
- package/src/application/application.js +73 -21
- package/src/application/header.js +1 -1
- package/src/application/resize.js +11 -9
- package/src/application/settings.js +36 -0
- package/src/audio/audio.js +3 -5
- package/src/camera/camera2d.js +11 -13
- package/src/entity/entity.js +2 -3
- package/src/geometries/ellipse.js +25 -58
- package/src/geometries/line.js +17 -24
- package/src/geometries/path2d.js +15 -12
- package/src/geometries/point.js +7 -15
- package/src/geometries/poly.js +39 -96
- package/src/geometries/rectangle.js +36 -90
- package/src/geometries/roundrect.js +25 -34
- package/src/index.js +4 -4
- package/src/input/keyboard.js +2 -2
- package/src/input/pointer.js +3 -3
- package/src/input/pointerevent.js +5 -6
- package/src/lang/deprecated.js +1 -1
- package/src/level/tiled/TMXLayer.js +15 -32
- package/src/level/tiled/TMXObject.js +2 -3
- package/src/level/tiled/TMXTile.js +3 -3
- package/src/level/tiled/TMXTileMap.js +2 -2
- package/src/level/tiled/TMXTileset.js +3 -6
- package/src/level/tiled/TMXTilesetGroup.js +1 -1
- package/src/level/tiled/TMXUtils.js +36 -46
- package/src/level/tiled/renderer/TMXHexagonalRenderer.js +2 -2
- package/src/level/tiled/renderer/TMXIsometricRenderer.js +1 -1
- package/src/level/tiled/renderer/TMXOrthogonalRenderer.js +1 -1
- package/src/level/tiled/renderer/TMXRenderer.js +1 -1
- package/src/level/tiled/renderer/TMXStaggeredRenderer.js +1 -1
- package/src/loader/parser.js +3 -4
- package/src/math/color.js +4 -4
- package/src/math/matrix2.js +4 -58
- package/src/math/matrix3.js +81 -140
- package/src/math/observable_vector2.js +6 -6
- package/src/math/observable_vector3.js +4 -4
- package/src/math/vector2.js +6 -90
- package/src/math/vector3.js +5 -89
- package/src/particles/emitter.js +1 -1
- package/src/particles/particle.js +1 -1
- package/src/physics/body.js +21 -19
- package/src/physics/bounds.js +26 -32
- package/src/physics/collision.js +4 -4
- package/src/physics/detector.js +9 -9
- package/src/physics/quadtree.js +4 -4
- package/src/physics/sat.js +2 -3
- package/src/physics/world.js +5 -8
- package/src/polyfill/roundrect.js +163 -163
- package/src/renderable/collectable.js +1 -1
- package/src/renderable/colorlayer.js +3 -3
- package/src/renderable/container.js +24 -24
- package/src/renderable/imagelayer.js +3 -3
- package/src/renderable/light2d.js +2 -2
- package/src/renderable/nineslicesprite.js +1 -1
- package/src/renderable/renderable.js +30 -38
- package/src/renderable/sprite.js +2 -2
- package/src/{text → renderable/text}/bitmaptext.js +8 -8
- package/src/{text → renderable/text}/bitmaptextdata.js +4 -7
- package/src/{text → renderable/text}/glyph.js +1 -1
- package/src/{text → renderable/text}/text.js +16 -17
- package/src/{text → renderable/text}/textmetrics.js +2 -2
- package/src/renderable/trigger.js +9 -9
- package/src/renderable/ui/uibaseelement.js +6 -6
- package/src/renderable/ui/uispriteelement.js +6 -6
- package/src/renderable/ui/uitextbutton.js +2 -2
- package/src/state/stage.js +12 -13
- package/src/state/state.js +2 -61
- package/src/system/device.js +50 -9
- package/src/system/event.js +44 -0
- package/src/system/platform.js +18 -18
- package/src/system/pooling.js +9 -9
- package/src/tweens/tween.js +1 -1
- package/src/utils/function.js +1 -2
- package/src/video/canvas/canvas_renderer.js +4 -17
- package/src/video/renderer.js +16 -29
- package/src/video/texture/atlas.js +12 -12
- package/src/video/texture/canvas_texture.js +14 -14
- package/src/video/video.js +7 -28
- package/src/video/webgl/buffer/vertex.js +2 -2
- package/src/video/webgl/compositors/compositor.js +12 -13
- package/src/video/webgl/compositors/primitive_compositor.js +4 -4
- package/src/video/webgl/compositors/quad_compositor.js +1 -2
- package/src/video/webgl/glshader.js +1 -1
- package/src/video/webgl/utils/precision.js +3 -3
- package/src/video/webgl/webgl_renderer.js +61 -66
- /package/src/{text → renderable/text}/textstyle.js +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* melonJS Game Engine - v15.
|
|
2
|
+
* melonJS Game Engine - v15.4.0
|
|
3
3
|
* http://www.melonjs.org
|
|
4
4
|
* melonjs is licensed under the MIT License.
|
|
5
5
|
* http://www.opensource.org/licenses/mit-license
|
|
@@ -11,7 +11,7 @@ import pool from '../system/pooling.js';
|
|
|
11
11
|
* @classdesc
|
|
12
12
|
* an ellipse Object
|
|
13
13
|
*/
|
|
14
|
-
|
|
14
|
+
class Ellipse {
|
|
15
15
|
/**
|
|
16
16
|
* @param {number} x - the center x coordinate of the ellipse
|
|
17
17
|
* @param {number} y - the center y coordinate of the ellipse
|
|
@@ -23,8 +23,6 @@ import pool from '../system/pooling.js';
|
|
|
23
23
|
* the center coordinates of the ellipse
|
|
24
24
|
* @public
|
|
25
25
|
* @type {Vector2d}
|
|
26
|
-
* @name pos
|
|
27
|
-
* @memberof Ellipse
|
|
28
26
|
*/
|
|
29
27
|
this.pos = pool.pull("Vector2d");
|
|
30
28
|
|
|
@@ -38,8 +36,6 @@ import pool from '../system/pooling.js';
|
|
|
38
36
|
* Maximum radius of the ellipse
|
|
39
37
|
* @public
|
|
40
38
|
* @type {number}
|
|
41
|
-
* @name radius
|
|
42
|
-
* @memberof Ellipse
|
|
43
39
|
*/
|
|
44
40
|
this.radius = NaN;
|
|
45
41
|
|
|
@@ -47,8 +43,6 @@ import pool from '../system/pooling.js';
|
|
|
47
43
|
* Pre-scaled radius vector for ellipse
|
|
48
44
|
* @public
|
|
49
45
|
* @type {Vector2d}
|
|
50
|
-
* @name radiusV
|
|
51
|
-
* @memberof Ellipse
|
|
52
46
|
*/
|
|
53
47
|
this.radiusV = pool.pull("Vector2d");
|
|
54
48
|
|
|
@@ -56,8 +50,6 @@ import pool from '../system/pooling.js';
|
|
|
56
50
|
* Radius squared, for pythagorean theorom
|
|
57
51
|
* @public
|
|
58
52
|
* @type {Vector2d}
|
|
59
|
-
* @name radiusSq
|
|
60
|
-
* @memberof Ellipse
|
|
61
53
|
*/
|
|
62
54
|
this.radiusSq = pool.pull("Vector2d");
|
|
63
55
|
|
|
@@ -65,8 +57,6 @@ import pool from '../system/pooling.js';
|
|
|
65
57
|
* x/y scaling ratio for ellipse
|
|
66
58
|
* @public
|
|
67
59
|
* @type {Vector2d}
|
|
68
|
-
* @name ratio
|
|
69
|
-
* @memberof Ellipse
|
|
70
60
|
*/
|
|
71
61
|
this.ratio = pool.pull("Vector2d");
|
|
72
62
|
|
|
@@ -82,8 +72,6 @@ import pool from '../system/pooling.js';
|
|
|
82
72
|
|
|
83
73
|
/**
|
|
84
74
|
* set new value to the Ellipse shape
|
|
85
|
-
* @name setShape
|
|
86
|
-
* @memberof Ellipse
|
|
87
75
|
* @param {number} x - the center x coordinate of the ellipse
|
|
88
76
|
* @param {number} y - the center y coordinate of the ellipse
|
|
89
77
|
* @param {number} w - width (diameter) of the ellipse
|
|
@@ -111,8 +99,6 @@ import pool from '../system/pooling.js';
|
|
|
111
99
|
|
|
112
100
|
/**
|
|
113
101
|
* Rotate this Ellipse (counter-clockwise) by the specified angle (in radians).
|
|
114
|
-
* @name rotate
|
|
115
|
-
* @memberof Ellipse
|
|
116
102
|
* @param {number} angle - The angle to rotate (in radians)
|
|
117
103
|
* @param {Vector2d|ObservableVector2d} [v] - an optional point to rotate around
|
|
118
104
|
* @returns {Ellipse} Reference to this object for method chaining
|
|
@@ -127,10 +113,8 @@ import pool from '../system/pooling.js';
|
|
|
127
113
|
|
|
128
114
|
/**
|
|
129
115
|
* Scale this Ellipse by the specified scalar.
|
|
130
|
-
* @
|
|
131
|
-
* @
|
|
132
|
-
* @param {number} x
|
|
133
|
-
* @param {number} [y=x]
|
|
116
|
+
* @param {number} x - the scale factor along the x-axis
|
|
117
|
+
* @param {number} [y=x] - the scale factor along the y-axis
|
|
134
118
|
* @returns {Ellipse} Reference to this object for method chaining
|
|
135
119
|
*/
|
|
136
120
|
scale(x, y = x) {
|
|
@@ -144,8 +128,6 @@ import pool from '../system/pooling.js';
|
|
|
144
128
|
|
|
145
129
|
/**
|
|
146
130
|
* Scale this Ellipse by the specified vector.
|
|
147
|
-
* @name scale
|
|
148
|
-
* @memberof Ellipse
|
|
149
131
|
* @param {Vector2d} v
|
|
150
132
|
* @returns {Ellipse} Reference to this object for method chaining
|
|
151
133
|
*/
|
|
@@ -155,8 +137,6 @@ import pool from '../system/pooling.js';
|
|
|
155
137
|
|
|
156
138
|
/**
|
|
157
139
|
* apply the given transformation matrix to this ellipse
|
|
158
|
-
* @name transform
|
|
159
|
-
* @memberof Ellipse
|
|
160
140
|
* @param {Matrix2d} matrix - the transformation matrix
|
|
161
141
|
* @returns {Polygon} Reference to this object for method chaining
|
|
162
142
|
*/
|
|
@@ -167,19 +147,13 @@ import pool from '../system/pooling.js';
|
|
|
167
147
|
|
|
168
148
|
/**
|
|
169
149
|
* translate the circle/ellipse by the specified offset
|
|
170
|
-
* @
|
|
171
|
-
* @
|
|
172
|
-
* @method
|
|
173
|
-
* @param {number} x - x offset
|
|
174
|
-
* @param {number} y - y offset
|
|
175
|
-
* @returns {Ellipse} this ellipse
|
|
176
|
-
*/
|
|
177
|
-
/**
|
|
178
|
-
* translate the circle/ellipse by the specified vector
|
|
179
|
-
* @name translate
|
|
180
|
-
* @memberof Ellipse
|
|
181
|
-
* @param {Vector2d} v - vector offset
|
|
150
|
+
* @param {number|Vector2d} x - x coordinate or a vector point to translate by
|
|
151
|
+
* @param {number} [y] - y offset
|
|
182
152
|
* @returns {Ellipse} this ellipse
|
|
153
|
+
* @example
|
|
154
|
+
* ellipse.translate(10, 10);
|
|
155
|
+
* // or
|
|
156
|
+
* ellipse.translate(myVector2d);
|
|
183
157
|
*/
|
|
184
158
|
translate() {
|
|
185
159
|
let _x, _y;
|
|
@@ -203,32 +177,29 @@ import pool from '../system/pooling.js';
|
|
|
203
177
|
|
|
204
178
|
/**
|
|
205
179
|
* check if this circle/ellipse contains the specified point
|
|
206
|
-
* @
|
|
207
|
-
* @
|
|
208
|
-
* @memberof Ellipse
|
|
209
|
-
* @param {Vector2d} point
|
|
210
|
-
* @returns {boolean} true if contains
|
|
211
|
-
*/
|
|
212
|
-
|
|
213
|
-
/**
|
|
214
|
-
* check if this circle/ellipse contains the specified point
|
|
215
|
-
* @name contains
|
|
216
|
-
* @memberof Ellipse
|
|
217
|
-
* @param {number} x - x coordinate
|
|
218
|
-
* @param {number} y - y coordinate
|
|
180
|
+
* @param {number|Vector2d} x - x coordinate or a vector point to check
|
|
181
|
+
* @param {number} [y] - y coordinate
|
|
219
182
|
* @returns {boolean} true if contains
|
|
183
|
+
* @example
|
|
184
|
+
* if (circle.contains(10, 10)) {
|
|
185
|
+
* // do something
|
|
186
|
+
* }
|
|
187
|
+
* // or
|
|
188
|
+
* if (circle.contains(myVector2d)) {
|
|
189
|
+
* // do something
|
|
190
|
+
* }
|
|
220
191
|
*/
|
|
221
192
|
contains() {
|
|
222
193
|
let _x, _y;
|
|
223
194
|
|
|
224
195
|
if (arguments.length === 2) {
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
196
|
+
// x, y
|
|
197
|
+
_x = arguments[0];
|
|
198
|
+
_y = arguments[1];
|
|
228
199
|
} else {
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
200
|
+
// vector
|
|
201
|
+
_x = arguments[0].x;
|
|
202
|
+
_y = arguments[0].y;
|
|
232
203
|
}
|
|
233
204
|
|
|
234
205
|
// Make position relative to object center point.
|
|
@@ -243,8 +214,6 @@ import pool from '../system/pooling.js';
|
|
|
243
214
|
|
|
244
215
|
/**
|
|
245
216
|
* returns the bounding box for this shape, the smallest Rectangle object completely containing this shape.
|
|
246
|
-
* @name getBounds
|
|
247
|
-
* @memberof Ellipse
|
|
248
217
|
* @returns {Bounds} this shape bounding box Rectangle object
|
|
249
218
|
*/
|
|
250
219
|
getBounds() {
|
|
@@ -256,8 +225,6 @@ import pool from '../system/pooling.js';
|
|
|
256
225
|
|
|
257
226
|
/**
|
|
258
227
|
* clone this Ellipse
|
|
259
|
-
* @name clone
|
|
260
|
-
* @memberof Ellipse
|
|
261
228
|
* @returns {Ellipse} new Ellipse
|
|
262
229
|
*/
|
|
263
230
|
clone() {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* melonJS Game Engine - v15.
|
|
2
|
+
* melonJS Game Engine - v15.4.0
|
|
3
3
|
* http://www.melonjs.org
|
|
4
4
|
* melonjs is licensed under the MIT License.
|
|
5
5
|
* http://www.opensource.org/licenses/mit-license
|
|
@@ -17,36 +17,33 @@ import Polygon from './poly.js';
|
|
|
17
17
|
* @param {Vector2d[]} points - array of vectors defining the Line
|
|
18
18
|
*/
|
|
19
19
|
|
|
20
|
-
|
|
20
|
+
class Line extends Polygon {
|
|
21
21
|
|
|
22
22
|
/**
|
|
23
23
|
* Returns true if the Line contains the given point
|
|
24
|
-
* @
|
|
25
|
-
* @
|
|
26
|
-
* @method
|
|
27
|
-
* @param {Vector2d} point
|
|
28
|
-
* @returns {boolean} true if contains
|
|
29
|
-
*/
|
|
30
|
-
|
|
31
|
-
/**
|
|
32
|
-
* Returns true if the Line contains the given point
|
|
33
|
-
* @name contains
|
|
34
|
-
* @memberof Line
|
|
35
|
-
* @param {number} x - x coordinate
|
|
36
|
-
* @param {number} y - y coordinate
|
|
24
|
+
* @param {number|Vector2d} x - x coordinate or a vector point to check
|
|
25
|
+
* @param {number} [y] - y coordinate
|
|
37
26
|
* @returns {boolean} true if contains
|
|
27
|
+
* @example
|
|
28
|
+
* if (line.contains(10, 10)) {
|
|
29
|
+
* // do something
|
|
30
|
+
* }
|
|
31
|
+
* // or
|
|
32
|
+
* if (line.contains(myVector2d)) {
|
|
33
|
+
* // do something
|
|
34
|
+
* }
|
|
38
35
|
*/
|
|
39
36
|
contains() {
|
|
40
37
|
let _x, _y;
|
|
41
38
|
|
|
42
39
|
if (arguments.length === 2) {
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
40
|
+
// x, y
|
|
41
|
+
_x = arguments[0];
|
|
42
|
+
_y = arguments[1];
|
|
46
43
|
} else {
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
44
|
+
// vector
|
|
45
|
+
_x = arguments[0].x;
|
|
46
|
+
_y = arguments[0].y;
|
|
50
47
|
}
|
|
51
48
|
|
|
52
49
|
// translate the given coordinates,
|
|
@@ -63,8 +60,6 @@ import Polygon from './poly.js';
|
|
|
63
60
|
/**
|
|
64
61
|
* Computes the calculated collision edges and normals.
|
|
65
62
|
* This **must** be called if the `points` array, `angle`, or `offset` is modified manually.
|
|
66
|
-
* @name recalc
|
|
67
|
-
* @memberof Line
|
|
68
63
|
* @returns {Line} this instance for objecf chaining
|
|
69
64
|
*/
|
|
70
65
|
recalc() {
|
|
@@ -98,8 +93,6 @@ import Polygon from './poly.js';
|
|
|
98
93
|
|
|
99
94
|
/**
|
|
100
95
|
* clone this line segment
|
|
101
|
-
* @name clone
|
|
102
|
-
* @memberof Line
|
|
103
96
|
* @returns {Line} new Line
|
|
104
97
|
*/
|
|
105
98
|
clone() {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* melonJS Game Engine - v15.
|
|
2
|
+
* melonJS Game Engine - v15.4.0
|
|
3
3
|
* http://www.melonjs.org
|
|
4
4
|
* melonjs is licensed under the MIT License.
|
|
5
5
|
* http://www.opensource.org/licenses/mit-license
|
|
@@ -13,7 +13,7 @@ import earcut from '../node_modules/earcut/src/earcut.js';
|
|
|
13
13
|
* @classdesc
|
|
14
14
|
* a simplified path2d implementation, supporting only one path
|
|
15
15
|
*/
|
|
16
|
-
|
|
16
|
+
class Path2D {
|
|
17
17
|
constructor() {
|
|
18
18
|
/**
|
|
19
19
|
* the points defining the current path
|
|
@@ -50,34 +50,35 @@ import earcut from '../node_modules/earcut/src/earcut.js';
|
|
|
50
50
|
*/
|
|
51
51
|
closePath() {
|
|
52
52
|
let points = this.points;
|
|
53
|
-
|
|
54
|
-
|
|
53
|
+
let firstPoint = points[0];
|
|
54
|
+
if (points.length > 1 && !points[points.length-1].equals(firstPoint)) {
|
|
55
|
+
points.push(pool.pull("Point", firstPoint.x, firstPoint.y));
|
|
55
56
|
}
|
|
56
57
|
}
|
|
57
58
|
|
|
58
59
|
/**
|
|
59
60
|
* triangulate the shape defined by this path into an array of triangles
|
|
60
|
-
* @returns {Point[]}
|
|
61
|
+
* @returns {Point[]} an array of vertices representing the triangulated path or shape
|
|
61
62
|
*/
|
|
62
63
|
triangulatePath() {
|
|
63
|
-
let i = 0;
|
|
64
64
|
let points = this.points;
|
|
65
65
|
let vertices = this.vertices;
|
|
66
66
|
let indices = earcut(points.flatMap(p => [p.x, p.y]));
|
|
67
|
+
let indicesLength = indices.length;
|
|
67
68
|
|
|
68
69
|
// pre-allocate vertices if necessary
|
|
69
|
-
while (vertices.length <
|
|
70
|
+
while (vertices.length < indicesLength) {
|
|
70
71
|
vertices.push(pool.pull("Point"));
|
|
71
72
|
}
|
|
72
73
|
|
|
73
74
|
// calculate all vertices
|
|
74
|
-
for (i = 0; i <
|
|
75
|
+
for (let i = 0; i < indicesLength; i++ ) {
|
|
75
76
|
let point = points[indices[i]];
|
|
76
77
|
vertices[i].set(point.x, point.y);
|
|
77
78
|
}
|
|
78
79
|
|
|
79
80
|
// recycle overhead from a previous triangulation
|
|
80
|
-
while (vertices.length >
|
|
81
|
+
while (vertices.length > indicesLength) {
|
|
81
82
|
pool.push(vertices[vertices.length-1]);
|
|
82
83
|
vertices.length -= 1;
|
|
83
84
|
}
|
|
@@ -91,7 +92,7 @@ import earcut from '../node_modules/earcut/src/earcut.js';
|
|
|
91
92
|
* @param {number} y - the y-axis (vertical) coordinate of the point.
|
|
92
93
|
*/
|
|
93
94
|
moveTo(x, y) {
|
|
94
|
-
|
|
95
|
+
this.points.push(pool.pull("Point", x, y));
|
|
95
96
|
}
|
|
96
97
|
|
|
97
98
|
/**
|
|
@@ -142,11 +143,12 @@ import earcut from '../node_modules/earcut/src/earcut.js';
|
|
|
142
143
|
const length = diff * radius;
|
|
143
144
|
const nr_of_interpolation_points = length / this.arcResolution;
|
|
144
145
|
const dangle = diff / nr_of_interpolation_points;
|
|
146
|
+
const angleStep = dangle * direction;
|
|
145
147
|
|
|
146
148
|
let angle = startAngle;
|
|
147
149
|
for (let j = 0; j < nr_of_interpolation_points; j++) {
|
|
148
150
|
points.push(pool.pull("Point", x + radius * Math.cos(angle), y + radius * Math.sin(angle)));
|
|
149
|
-
angle +=
|
|
151
|
+
angle += angleStep;
|
|
150
152
|
}
|
|
151
153
|
points.push(pool.pull("Point", x + radius * Math.cos(endAngle), y + radius * Math.sin(endAngle)));
|
|
152
154
|
}
|
|
@@ -237,6 +239,7 @@ import earcut from '../node_modules/earcut/src/earcut.js';
|
|
|
237
239
|
const length = (diff * radiusX + diff * radiusY) / 2;
|
|
238
240
|
const nr_of_interpolation_points = length / this.arcResolution;
|
|
239
241
|
const dangle = diff / nr_of_interpolation_points;
|
|
242
|
+
const angleStep = dangle * direction;
|
|
240
243
|
|
|
241
244
|
let angle = startAngle;
|
|
242
245
|
const cos_rotation = Math.cos(rotation);
|
|
@@ -247,7 +250,7 @@ import earcut from '../node_modules/earcut/src/earcut.js';
|
|
|
247
250
|
const _x2 = x + _x1 * cos_rotation - _y1 * sin_rotation;
|
|
248
251
|
const _y2 = y + _x1 * sin_rotation + _y1 * cos_rotation;
|
|
249
252
|
points.push(pool.pull("Point", _x2, _y2));
|
|
250
|
-
angle +=
|
|
253
|
+
angle += angleStep;
|
|
251
254
|
}
|
|
252
255
|
}
|
|
253
256
|
|
|
@@ -277,7 +280,7 @@ import earcut from '../node_modules/earcut/src/earcut.js';
|
|
|
277
280
|
* @param {number} height - the rectangle's height. Positive values are down, and negative are up.
|
|
278
281
|
* @param {number} radius - the arc's radius to draw the borders. Must be positive.
|
|
279
282
|
*/
|
|
280
|
-
|
|
283
|
+
roundRect(x, y, width, height, radius) {
|
|
281
284
|
this.moveTo(x + radius, y);
|
|
282
285
|
this.lineTo(x + width - radius, y);
|
|
283
286
|
this.arcTo(x + width, y, x + width, y + radius, radius);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* melonJS Game Engine - v15.
|
|
2
|
+
* melonJS Game Engine - v15.4.0
|
|
3
3
|
* http://www.melonjs.org
|
|
4
4
|
* melonjs is licensed under the MIT License.
|
|
5
5
|
* http://www.opensource.org/licenses/mit-license
|
|
@@ -9,18 +9,18 @@
|
|
|
9
9
|
* @classdesc
|
|
10
10
|
* represents a point in a 2d space
|
|
11
11
|
*/
|
|
12
|
-
|
|
12
|
+
class Point {
|
|
13
13
|
constructor(x = 0, y = 0) {
|
|
14
14
|
/**
|
|
15
15
|
* the position of the point on the horizontal axis
|
|
16
|
-
* @type {
|
|
16
|
+
* @type {number}
|
|
17
17
|
* @default 0
|
|
18
18
|
*/
|
|
19
19
|
this.x = x;
|
|
20
20
|
|
|
21
21
|
/**
|
|
22
22
|
* the position of the point on the vertical axis
|
|
23
|
-
* @type {
|
|
23
|
+
* @type {number}
|
|
24
24
|
* @default 0
|
|
25
25
|
*/
|
|
26
26
|
this.y = y;
|
|
@@ -44,20 +44,12 @@
|
|
|
44
44
|
}
|
|
45
45
|
|
|
46
46
|
/**
|
|
47
|
-
* return true if
|
|
48
|
-
* @
|
|
49
|
-
* @
|
|
50
|
-
* @method
|
|
51
|
-
* @param {Point} point
|
|
47
|
+
* return true if this point is equal to the given point
|
|
48
|
+
* @param {number|Point|Vector2d} x
|
|
49
|
+
* @param {number} [y]
|
|
52
50
|
* @returns {boolean}
|
|
53
51
|
*/
|
|
54
|
-
|
|
55
|
-
* return true if this point is equal to the given values
|
|
56
|
-
* @param {number} x
|
|
57
|
-
* @param {number} y
|
|
58
|
-
* @returns {boolean}
|
|
59
|
-
*/
|
|
60
|
-
equals() {
|
|
52
|
+
equals() {
|
|
61
53
|
let _x, _y;
|
|
62
54
|
if (arguments.length === 2) {
|
|
63
55
|
// x, y
|