melonjs 14.3.0 → 14.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 +11 -55
- package/dist/melonjs.mjs/_virtual/_commonjsHelpers.js +2 -2
- package/dist/melonjs.mjs/_virtual/arraymultimap.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/_virtual/index2.js +2 -2
- package/dist/melonjs.mjs/_virtual/multimap.js +2 -2
- package/dist/melonjs.mjs/_virtual/setmultimap.js +2 -2
- package/dist/melonjs.mjs/application/application.js +8 -21
- package/dist/melonjs.mjs/application/header.js +2 -2
- package/dist/melonjs.mjs/application/resize.js +4 -2
- package/dist/melonjs.mjs/application/settings.js +2 -2
- package/dist/melonjs.mjs/audio/audio.js +5 -5
- package/dist/melonjs.mjs/camera/camera2d.js +2 -2
- package/dist/melonjs.mjs/const.js +32 -0
- package/dist/melonjs.mjs/entity/entity.js +44 -10
- package/dist/melonjs.mjs/geometries/ellipse.js +3 -4
- package/dist/melonjs.mjs/geometries/line.js +2 -2
- package/dist/melonjs.mjs/geometries/path2d.js +19 -43
- package/dist/melonjs.mjs/geometries/point.js +2 -7
- package/dist/melonjs.mjs/geometries/poly.js +3 -6
- package/dist/melonjs.mjs/geometries/rectangle.js +14 -10
- package/dist/melonjs.mjs/geometries/roundrect.js +2 -2
- package/dist/melonjs.mjs/index.js +11 -9
- package/dist/melonjs.mjs/input/gamepad.js +11 -17
- 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 +3 -17
- package/dist/melonjs.mjs/lang/console.js +44 -0
- package/dist/melonjs.mjs/lang/deprecated.js +4 -40
- package/dist/melonjs.mjs/level/level.js +4 -4
- package/dist/melonjs.mjs/level/tiled/TMXGroup.js +2 -23
- package/dist/melonjs.mjs/level/tiled/TMXLayer.js +67 -64
- package/dist/melonjs.mjs/level/tiled/TMXObject.js +2 -64
- package/dist/melonjs.mjs/level/tiled/TMXTile.js +10 -26
- package/dist/melonjs.mjs/level/tiled/TMXTileMap.js +21 -83
- package/dist/melonjs.mjs/level/tiled/TMXTileset.js +6 -20
- package/dist/melonjs.mjs/level/tiled/TMXTilesetGroup.js +3 -10
- package/dist/melonjs.mjs/level/tiled/TMXUtils.js +37 -14
- package/dist/melonjs.mjs/level/tiled/constants.js +17 -0
- package/dist/melonjs.mjs/level/tiled/renderer/TMXHexagonalRenderer.js +7 -8
- package/dist/melonjs.mjs/level/tiled/renderer/TMXIsometricRenderer.js +3 -6
- package/dist/melonjs.mjs/level/tiled/renderer/TMXOrthogonalRenderer.js +2 -2
- package/dist/melonjs.mjs/level/tiled/renderer/TMXRenderer.js +2 -14
- package/dist/melonjs.mjs/level/tiled/renderer/TMXStaggeredRenderer.js +2 -2
- package/dist/melonjs.mjs/level/tiled/renderer/autodetect.js +38 -0
- package/dist/melonjs.mjs/loader/cache.js +24 -0
- package/dist/melonjs.mjs/loader/loader.js +332 -715
- package/dist/melonjs.mjs/loader/loadingscreen.js +5 -5
- package/dist/melonjs.mjs/loader/melonjs_logo.png.js +2 -2
- package/dist/melonjs.mjs/loader/parser.js +281 -0
- package/dist/melonjs.mjs/loader/settings.js +91 -0
- package/dist/melonjs.mjs/math/color.js +2 -2
- package/dist/melonjs.mjs/math/math.js +2 -2
- package/dist/melonjs.mjs/math/matrix2.js +8 -10
- package/dist/melonjs.mjs/math/matrix3.js +19 -22
- package/dist/melonjs.mjs/math/observable_vector2.js +4 -4
- package/dist/melonjs.mjs/math/observable_vector3.js +4 -5
- package/dist/melonjs.mjs/math/vector2.js +4 -4
- package/dist/melonjs.mjs/math/vector3.js +4 -5
- package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/src/arraymultimap.js +2 -2
- package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/src/index.js +2 -2
- package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/src/multimap.js +2 -2
- package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/src/setmultimap.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 +4 -4
- package/dist/melonjs.mjs/particles/particle.js +2 -2
- package/dist/melonjs.mjs/particles/settings.js +2 -2
- package/dist/melonjs.mjs/physics/body.js +19 -15
- package/dist/melonjs.mjs/physics/bounds.js +19 -71
- package/dist/melonjs.mjs/physics/collision.js +3 -3
- 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 +4 -4
- 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 +26 -20
- package/dist/melonjs.mjs/renderable/dragndrop.js +2 -2
- package/dist/melonjs.mjs/renderable/imagelayer.js +8 -2
- package/dist/melonjs.mjs/renderable/light2d.js +2 -2
- package/dist/melonjs.mjs/renderable/nineslicesprite.js +2 -2
- package/dist/melonjs.mjs/renderable/renderable.js +127 -106
- package/dist/melonjs.mjs/renderable/sprite.js +34 -55
- 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 -3
- package/dist/melonjs.mjs/system/device.js +2 -2
- 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 +9 -19
- package/dist/melonjs.mjs/system/save.js +2 -2
- package/dist/melonjs.mjs/system/timer.js +2 -2
- package/dist/melonjs.mjs/text/bitmaptext.js +67 -9
- package/dist/melonjs.mjs/text/bitmaptextdata.js +2 -2
- package/dist/melonjs.mjs/text/glyph.js +2 -2
- package/dist/melonjs.mjs/text/text.js +2 -2
- package/dist/melonjs.mjs/text/textmetrics.js +2 -2
- package/dist/melonjs.mjs/text/textstyle.js +2 -2
- 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 +3 -3
- package/dist/melonjs.mjs/utils/utils.js +3 -5
- package/dist/melonjs.mjs/video/canvas/canvas_renderer.js +2 -2
- package/dist/melonjs.mjs/video/renderer.js +2 -2
- package/dist/melonjs.mjs/video/texture/atlas.js +11 -10
- package/dist/melonjs.mjs/video/texture/cache.js +4 -4
- package/dist/melonjs.mjs/video/texture/canvas_texture.js +2 -2
- package/dist/melonjs.mjs/video/utils/autodetect.js +2 -2
- package/dist/melonjs.mjs/video/video.js +17 -14
- package/dist/melonjs.mjs/video/webgl/buffer/vertex.js +2 -2
- package/dist/melonjs.mjs/video/webgl/compositors/compositor.js +235 -0
- package/{src/video/webgl → dist/melonjs.mjs/video/webgl/compositors}/webgl_compositor.js +28 -205
- 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_compositor.js +3 -3
- package/dist/melonjs.mjs/video/webgl/webgl_renderer.js +3 -3
- package/dist/melonjs.module.js +19807 -19896
- package/dist/types/application/application.d.ts +5 -1
- package/dist/types/application/resize.d.ts +1 -0
- package/dist/types/const.d.ts +21 -0
- package/dist/types/entity/entity.d.ts +2 -2
- package/dist/types/geometries/path2d.d.ts +5 -31
- package/dist/types/geometries/point.d.ts +2 -7
- package/dist/types/geometries/poly.d.ts +0 -1
- package/dist/types/index.d.ts +3 -2
- package/dist/types/lang/console.d.ts +7 -0
- package/dist/types/lang/deprecated.d.ts +0 -8
- package/dist/types/level/tiled/TMXGroup.d.ts +7 -28
- package/dist/types/level/tiled/TMXLayer.d.ts +25 -47
- package/dist/types/level/tiled/TMXObject.d.ts +20 -82
- package/dist/types/level/tiled/TMXTile.d.ts +11 -25
- package/dist/types/level/tiled/TMXTileMap.d.ts +18 -56
- package/dist/types/level/tiled/TMXTileset.d.ts +7 -21
- package/dist/types/level/tiled/TMXTilesetGroup.d.ts +3 -9
- package/dist/types/level/tiled/constants.d.ts +5 -0
- package/dist/types/level/tiled/renderer/TMXHexagonalRenderer.d.ts +2 -6
- package/dist/types/level/tiled/renderer/TMXIsometricRenderer.d.ts +2 -6
- package/dist/types/level/tiled/renderer/TMXRenderer.d.ts +6 -18
- package/dist/types/level/tiled/renderer/autodetect.d.ts +9 -0
- package/dist/types/loader/cache.d.ts +7 -0
- package/dist/types/loader/loader.d.ts +166 -181
- package/dist/types/loader/parser.d.ts +41 -0
- package/dist/types/loader/settings.d.ts +57 -0
- package/dist/types/particles/emitter.d.ts +4 -4
- package/dist/types/physics/bounds.d.ts +29 -84
- package/dist/types/renderable/container.d.ts +0 -11
- package/dist/types/renderable/renderable.d.ts +37 -31
- package/dist/types/renderable/sprite.d.ts +3 -3
- package/dist/types/state/state.d.ts +1 -1
- package/dist/types/system/pooling.d.ts +2 -2
- package/dist/types/video/renderer.d.ts +1 -1
- package/dist/types/video/video.d.ts +7 -6
- package/dist/types/video/webgl/compositors/compositor.d.ts +101 -0
- package/dist/types/video/webgl/compositors/webgl_compositor.d.ts +86 -0
- package/dist/types/video/webgl/webgl_compositor.d.ts +2 -3
- package/dist/types/video/webgl/webgl_renderer.d.ts +1 -1
- package/package.json +17 -16
- package/src/application/application.js +6 -19
- package/src/application/resize.js +2 -0
- package/src/audio/audio.js +3 -3
- package/src/const.js +23 -0
- package/src/entity/entity.js +42 -8
- package/src/geometries/ellipse.js +1 -2
- package/src/geometries/path2d.js +17 -41
- package/src/geometries/point.js +0 -5
- package/src/geometries/poly.js +1 -4
- package/src/geometries/rectangle.js +12 -8
- package/src/index.js +4 -2
- package/src/input/gamepad.js +9 -15
- package/src/input/pointerevent.js +1 -15
- package/src/lang/console.js +36 -0
- package/src/lang/deprecated.js +2 -37
- package/src/level/level.js +2 -2
- package/src/level/tiled/TMXGroup.js +0 -21
- package/src/level/tiled/TMXLayer.js +65 -62
- package/src/level/tiled/TMXObject.js +0 -62
- package/src/level/tiled/TMXTile.js +8 -24
- package/src/level/tiled/TMXTileMap.js +19 -81
- package/src/level/tiled/TMXTileset.js +4 -18
- package/src/level/tiled/TMXTilesetGroup.js +1 -9
- package/src/level/tiled/TMXUtils.js +38 -15
- package/src/level/tiled/constants.js +8 -0
- package/src/level/tiled/renderer/TMXHexagonalRenderer.js +5 -6
- package/src/level/tiled/renderer/TMXIsometricRenderer.js +1 -4
- package/src/level/tiled/renderer/TMXRenderer.js +0 -12
- package/src/level/tiled/renderer/autodetect.js +29 -0
- package/src/loader/cache.js +16 -0
- package/src/loader/loader.js +339 -709
- package/src/loader/loadingscreen.js +3 -3
- package/src/loader/parser.js +279 -0
- package/src/loader/settings.js +85 -0
- package/src/math/matrix2.js +6 -8
- package/src/math/matrix3.js +17 -20
- package/src/math/observable_vector2.js +2 -2
- package/src/math/observable_vector3.js +2 -3
- package/src/math/vector2.js +2 -2
- package/src/math/vector3.js +2 -3
- package/src/particles/emitter.js +2 -2
- package/src/physics/body.js +17 -13
- package/src/physics/bounds.js +17 -69
- package/src/physics/collision.js +1 -1
- package/src/renderable/container.js +24 -18
- package/src/renderable/imagelayer.js +6 -0
- package/src/renderable/renderable.js +125 -104
- package/src/renderable/sprite.js +32 -53
- package/src/state/state.js +1 -1
- package/src/system/pooling.js +7 -17
- package/src/text/bitmaptext.js +65 -7
- package/src/utils/string.js +1 -1
- package/src/utils/utils.js +1 -3
- package/src/video/texture/atlas.js +9 -8
- package/src/video/texture/cache.js +2 -2
- package/src/video/video.js +15 -12
- package/src/video/webgl/compositors/compositor.js +227 -0
- package/src/video/webgl/compositors/webgl_compositor.js +300 -0
- package/src/video/webgl/webgl_renderer.js +1 -1
- package/dist/melonjs.mjs/node_modules/core-js/es/string/trim-end.js +0 -13
- package/dist/melonjs.mjs/node_modules/core-js/es/string/trim-start.js +0 -13
- package/dist/melonjs.mjs/node_modules/core-js/internals/a-callable.js +0 -22
- package/dist/melonjs.mjs/node_modules/core-js/internals/an-object.js +0 -21
- package/dist/melonjs.mjs/node_modules/core-js/internals/array-includes.js +0 -45
- package/dist/melonjs.mjs/node_modules/core-js/internals/classof-raw.js +0 -19
- package/dist/melonjs.mjs/node_modules/core-js/internals/classof.js +0 -43
- package/dist/melonjs.mjs/node_modules/core-js/internals/copy-constructor-properties.js +0 -32
- package/dist/melonjs.mjs/node_modules/core-js/internals/create-non-enumerable-property.js +0 -24
- package/dist/melonjs.mjs/node_modules/core-js/internals/create-property-descriptor.js +0 -17
- package/dist/melonjs.mjs/node_modules/core-js/internals/define-built-in.js +0 -43
- package/dist/melonjs.mjs/node_modules/core-js/internals/define-global-property.js +0 -23
- package/dist/melonjs.mjs/node_modules/core-js/internals/descriptors.js +0 -18
- package/dist/melonjs.mjs/node_modules/core-js/internals/document-all.js +0 -18
- package/dist/melonjs.mjs/node_modules/core-js/internals/document-create-element.js +0 -22
- package/dist/melonjs.mjs/node_modules/core-js/internals/engine-user-agent.js +0 -14
- package/dist/melonjs.mjs/node_modules/core-js/internals/engine-v8-version.js +0 -39
- package/dist/melonjs.mjs/node_modules/core-js/internals/entry-unbind.js +0 -18
- package/dist/melonjs.mjs/node_modules/core-js/internals/enum-bug-keys.js +0 -19
- package/dist/melonjs.mjs/node_modules/core-js/internals/export.js +0 -72
- package/dist/melonjs.mjs/node_modules/core-js/internals/fails.js +0 -16
- package/dist/melonjs.mjs/node_modules/core-js/internals/function-bind-native.js +0 -19
- package/dist/melonjs.mjs/node_modules/core-js/internals/function-call.js +0 -18
- package/dist/melonjs.mjs/node_modules/core-js/internals/function-name.js +0 -29
- package/dist/melonjs.mjs/node_modules/core-js/internals/function-uncurry-this.js +0 -22
- package/dist/melonjs.mjs/node_modules/core-js/internals/get-built-in.js +0 -22
- package/dist/melonjs.mjs/node_modules/core-js/internals/get-method.js +0 -21
- package/dist/melonjs.mjs/node_modules/core-js/internals/global.js +0 -25
- package/dist/melonjs.mjs/node_modules/core-js/internals/has-own-property.js +0 -23
- package/dist/melonjs.mjs/node_modules/core-js/internals/hidden-keys.js +0 -10
- package/dist/melonjs.mjs/node_modules/core-js/internals/ie8-dom-define.js +0 -24
- package/dist/melonjs.mjs/node_modules/core-js/internals/indexed-object.js +0 -28
- package/dist/melonjs.mjs/node_modules/core-js/internals/inspect-source.js +0 -27
- package/dist/melonjs.mjs/node_modules/core-js/internals/internal-state.js +0 -88
- package/dist/melonjs.mjs/node_modules/core-js/internals/is-callable.js +0 -22
- package/dist/melonjs.mjs/node_modules/core-js/internals/is-forced.js +0 -34
- package/dist/melonjs.mjs/node_modules/core-js/internals/is-null-or-undefined.js +0 -14
- package/dist/melonjs.mjs/node_modules/core-js/internals/is-object.js +0 -22
- package/dist/melonjs.mjs/node_modules/core-js/internals/is-symbol.js +0 -27
- package/dist/melonjs.mjs/node_modules/core-js/internals/length-of-array-like.js +0 -18
- package/dist/melonjs.mjs/node_modules/core-js/internals/make-built-in.js +0 -68
- package/dist/melonjs.mjs/node_modules/core-js/internals/math-trunc.js +0 -19
- package/dist/melonjs.mjs/node_modules/core-js/internals/object-define-property.js +0 -58
- package/dist/melonjs.mjs/node_modules/core-js/internals/object-get-own-property-descriptor.js +0 -41
- package/dist/melonjs.mjs/node_modules/core-js/internals/object-get-own-property-names.js +0 -23
- package/dist/melonjs.mjs/node_modules/core-js/internals/object-get-own-property-symbols.js +0 -12
- package/dist/melonjs.mjs/node_modules/core-js/internals/object-is-prototype-of.js +0 -14
- package/dist/melonjs.mjs/node_modules/core-js/internals/object-keys-internal.js +0 -35
- package/dist/melonjs.mjs/node_modules/core-js/internals/object-property-is-enumerable.js +0 -23
- package/dist/melonjs.mjs/node_modules/core-js/internals/ordinary-to-primitive.js +0 -28
- package/dist/melonjs.mjs/node_modules/core-js/internals/own-keys.js +0 -31
- package/dist/melonjs.mjs/node_modules/core-js/internals/require-object-coercible.js +0 -21
- package/dist/melonjs.mjs/node_modules/core-js/internals/shared-key.js +0 -21
- package/dist/melonjs.mjs/node_modules/core-js/internals/shared-store.js +0 -19
- package/dist/melonjs.mjs/node_modules/core-js/internals/shared.js +0 -24
- package/dist/melonjs.mjs/node_modules/core-js/internals/string-trim-end.js +0 -22
- package/dist/melonjs.mjs/node_modules/core-js/internals/string-trim-forced.js +0 -28
- package/dist/melonjs.mjs/node_modules/core-js/internals/string-trim-start.js +0 -22
- package/dist/melonjs.mjs/node_modules/core-js/internals/string-trim.js +0 -45
- package/dist/melonjs.mjs/node_modules/core-js/internals/symbol-constructor-detection.js +0 -26
- package/dist/melonjs.mjs/node_modules/core-js/internals/to-absolute-index.js +0 -23
- package/dist/melonjs.mjs/node_modules/core-js/internals/to-indexed-object.js +0 -19
- package/dist/melonjs.mjs/node_modules/core-js/internals/to-integer-or-infinity.js +0 -20
- package/dist/melonjs.mjs/node_modules/core-js/internals/to-length.js +0 -20
- package/dist/melonjs.mjs/node_modules/core-js/internals/to-object.js +0 -20
- package/dist/melonjs.mjs/node_modules/core-js/internals/to-primitive.js +0 -41
- package/dist/melonjs.mjs/node_modules/core-js/internals/to-property-key.js +0 -21
- package/dist/melonjs.mjs/node_modules/core-js/internals/to-string-tag-support.js +0 -19
- package/dist/melonjs.mjs/node_modules/core-js/internals/to-string.js +0 -19
- package/dist/melonjs.mjs/node_modules/core-js/internals/try-to-string.js +0 -18
- package/dist/melonjs.mjs/node_modules/core-js/internals/uid.js +0 -20
- package/dist/melonjs.mjs/node_modules/core-js/internals/use-symbol-as-uid.js +0 -18
- package/dist/melonjs.mjs/node_modules/core-js/internals/v8-prototype-define-bug.js +0 -24
- package/dist/melonjs.mjs/node_modules/core-js/internals/weak-map-basic-detection.js +0 -18
- package/dist/melonjs.mjs/node_modules/core-js/internals/well-known-symbol.js +0 -41
- package/dist/melonjs.mjs/node_modules/core-js/internals/whitespaces.js +0 -12
- package/dist/melonjs.mjs/node_modules/core-js/modules/es.global-this.js +0 -18
- package/dist/melonjs.mjs/node_modules/core-js/modules/es.string.trim-end.js +0 -22
- package/dist/melonjs.mjs/node_modules/core-js/modules/es.string.trim-left.js +0 -19
- package/dist/melonjs.mjs/node_modules/core-js/modules/es.string.trim-right.js +0 -19
- package/dist/melonjs.mjs/node_modules/core-js/modules/es.string.trim-start.js +0 -22
- package/dist/melonjs.mjs/node_modules/eventemitter3/index.mjs.js +0 -9
|
@@ -151,10 +151,10 @@ export default class WebGLCompositor {
|
|
|
151
151
|
/**
|
|
152
152
|
* Draw an array of vertices
|
|
153
153
|
* @param {GLenum} mode - primitive type to render (gl.POINTS, gl.LINE_STRIP, gl.LINE_LOOP, gl.LINES, gl.TRIANGLE_STRIP, gl.TRIANGLE_FAN, gl.TRIANGLES)
|
|
154
|
-
* @param {
|
|
154
|
+
* @param {Point[]} verts - an array of vertices
|
|
155
155
|
* @param {number} [vertexCount=verts.length] - amount of points defined in the points array
|
|
156
156
|
*/
|
|
157
|
-
drawVertices(mode: GLenum, verts:
|
|
157
|
+
drawVertices(mode: GLenum, verts: Point[], vertexCount?: number | undefined): void;
|
|
158
158
|
/**
|
|
159
159
|
* Clear the frame buffer
|
|
160
160
|
* @param {number} [alpha = 0.0] - the alpha value used when clearing the framebuffer
|
|
@@ -171,4 +171,3 @@ export default class WebGLCompositor {
|
|
|
171
171
|
}
|
|
172
172
|
import GLShader from "./glshader.js";
|
|
173
173
|
import VertexArrayBuffer from "./buffer/vertex.js";
|
|
174
|
-
import Vector2d from "./../../math/vector2.js";
|
|
@@ -423,7 +423,7 @@ export default class WebGLRenderer extends Renderer {
|
|
|
423
423
|
}
|
|
424
424
|
import Renderer from "./../renderer.js";
|
|
425
425
|
import Matrix2d from "./../../math/matrix2.js";
|
|
426
|
-
import WebGLCompositor from "./webgl_compositor.js";
|
|
426
|
+
import WebGLCompositor from "./compositors/webgl_compositor.js";
|
|
427
427
|
import TextureCache from "./../texture/cache.js";
|
|
428
428
|
import { TextureAtlas } from "./../texture/atlas.js";
|
|
429
429
|
import Color from "./../../math/color.js";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "melonjs",
|
|
3
|
-
"version": "14.
|
|
3
|
+
"version": "14.5.0",
|
|
4
4
|
"description": "melonJS Game Engine",
|
|
5
5
|
"homepage": "http://www.melonjs.org/",
|
|
6
6
|
"type": "module",
|
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
],
|
|
54
54
|
"dependencies": {
|
|
55
55
|
"@teppeis/multimaps": "^2.0.0",
|
|
56
|
-
"core-js": "^3.27.
|
|
56
|
+
"core-js": "^3.27.2",
|
|
57
57
|
"earcut": "2.2.4",
|
|
58
58
|
"eventemitter3": "^5.0.0",
|
|
59
59
|
"howler": "2.2.3"
|
|
@@ -61,36 +61,37 @@
|
|
|
61
61
|
"devDependencies": {
|
|
62
62
|
"@babel/eslint-parser": "^7.19.1",
|
|
63
63
|
"@babel/plugin-syntax-import-assertions": "^7.20.0",
|
|
64
|
-
"@fastify/static": "^6.
|
|
64
|
+
"@fastify/static": "^6.9.0",
|
|
65
65
|
"@melonjs/webdoc-theme": "^1.1.1",
|
|
66
|
-
"@rollup/plugin-commonjs": "^24.0.
|
|
67
|
-
"@rollup/plugin-image": "^3.0.
|
|
66
|
+
"@rollup/plugin-commonjs": "^24.0.1",
|
|
67
|
+
"@rollup/plugin-image": "^3.0.2",
|
|
68
68
|
"@rollup/plugin-node-resolve": "^15.0.1",
|
|
69
69
|
"@rollup/plugin-replace": "^5.0.2",
|
|
70
70
|
"@types/offscreencanvas": "^2019.7.0",
|
|
71
71
|
"@webdoc/cli": "^2.2.0",
|
|
72
|
-
"chromedriver": "^
|
|
72
|
+
"chromedriver": "^110.0.0",
|
|
73
73
|
"cross-env": "^7.0.3",
|
|
74
74
|
"del-cli": "^5.0.0",
|
|
75
|
-
"eslint": "^8.
|
|
76
|
-
"eslint-plugin-jsdoc": "^
|
|
77
|
-
"expect": "^29.
|
|
78
|
-
"expect-mocha-image-snapshot": "^
|
|
79
|
-
"fastify": "^4.
|
|
75
|
+
"eslint": "^8.34.0",
|
|
76
|
+
"eslint-plugin-jsdoc": "^40.0.0",
|
|
77
|
+
"expect": "^29.4.2",
|
|
78
|
+
"expect-mocha-image-snapshot": "^3.0.1",
|
|
79
|
+
"fastify": "^4.13.0",
|
|
80
80
|
"mocha": "^10.2.0",
|
|
81
81
|
"npm-self-link": "^1.1.7",
|
|
82
|
-
"puppeteer": "^19.
|
|
83
|
-
"rollup": "^3.
|
|
82
|
+
"puppeteer": "^19.6.3",
|
|
83
|
+
"rollup": "^3.15.0",
|
|
84
84
|
"rollup-plugin-bundle-size": "^1.0.3",
|
|
85
85
|
"rollup-plugin-string": "^3.0.0",
|
|
86
|
-
"terser": "^5.16.
|
|
87
|
-
"typescript": "^4.9.
|
|
86
|
+
"terser": "^5.16.3",
|
|
87
|
+
"typescript": "^4.9.5"
|
|
88
88
|
},
|
|
89
89
|
"scripts": {
|
|
90
90
|
"build": "npm run lint && rollup -c --silent",
|
|
91
|
+
"build:cd": "npm run lint && rollup -c --failAfterWarnings",
|
|
91
92
|
"dist": " npm run build && mkdirp dist && cp -fR build/*.* dist/ && npm run types",
|
|
92
93
|
"lint": "eslint src/** rollup.config.mjs",
|
|
93
|
-
"pretest": "cp -f
|
|
94
|
+
"pretest": "mkdirp tests/browser/public/lib && cp -f build/melonjs.module.js tests/browser/public/lib",
|
|
94
95
|
"test": "npm run test-node && mocha ./tests/browser/spec/*.js --reporter spec --bail --timeout 10000",
|
|
95
96
|
"test-node": "node build/melonjs.module.js",
|
|
96
97
|
"doc-prod": "mkdirp docs && webdoc --quiet --site-root melonJS/docs -R README.md",
|
|
@@ -9,24 +9,7 @@ import World from "./../physics/world.js";
|
|
|
9
9
|
import { onresize } from "./resize.js";
|
|
10
10
|
import { defaultSettings } from "./settings.js";
|
|
11
11
|
import { consoleHeader } from "./header.js";
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* Select the HTML5 Canvas renderer
|
|
15
|
-
* @constant
|
|
16
|
-
*/
|
|
17
|
-
const CANVAS = 0;
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* Select the WebGL renderer
|
|
21
|
-
* @constant
|
|
22
|
-
*/
|
|
23
|
-
const WEBGL = 1;
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
* Auto-select the renderer (Attempt WebGL first, with fallback to Canvas)
|
|
27
|
-
* @constant
|
|
28
|
-
*/
|
|
29
|
-
const AUTO = 2;
|
|
12
|
+
import { CANVAS, WEBGL, AUTO } from "../const.js";
|
|
30
13
|
|
|
31
14
|
/**
|
|
32
15
|
* @classdesc
|
|
@@ -40,7 +23,7 @@ const AUTO = 2;
|
|
|
40
23
|
* @param {number} height - The height of the canvas viewport
|
|
41
24
|
* @param {object} [options] - The optional video/renderer parameters.<br> (see Renderer(s) documentation for further specific options)
|
|
42
25
|
* @param {string|HTMLElement} [options.parent=document.body] - the DOM parent element to hold the canvas in the HTML file
|
|
43
|
-
* @param {number|Renderer} [options.renderer=
|
|
26
|
+
* @param {number|Renderer} [options.renderer=AUTO] - renderer to use (CANVAS, WEBGL, AUTO), or a custom renderer class
|
|
44
27
|
* @param {number|string} [options.scale=1.0] - enable scaling of the canvas ('auto' for automatic scaling)
|
|
45
28
|
* @param {string} [options.scaleMethod="fit"] - screen scaling modes ('fit','fill-min','fill-max','flex','flex-width','flex-height','stretch')
|
|
46
29
|
* @param {boolean} [options.preferWebGL1=false] - if true the renderer will only use WebGL 1
|
|
@@ -49,6 +32,10 @@ const AUTO = 2;
|
|
|
49
32
|
* @param {boolean} [options.antiAlias=false] - whether to enable or not video scaling interpolation
|
|
50
33
|
* @param {boolean} [options.consoleHeader=true] - whether to display melonJS version and basic device information in the console
|
|
51
34
|
* @throws Will throw an exception if it fails to instantiate a renderer
|
|
35
|
+
* @example
|
|
36
|
+
* var my game = new Application(640, 480, {renderer: me.video.AUTO}) {
|
|
37
|
+
* ....
|
|
38
|
+
* }
|
|
52
39
|
*/
|
|
53
40
|
constructor(width, height, options) {
|
|
54
41
|
|
|
@@ -4,6 +4,7 @@ import * as device from "./../system/device";
|
|
|
4
4
|
* scale the "displayed" canvas by the given scalar.
|
|
5
5
|
* this will modify the size of canvas element directly.
|
|
6
6
|
* Only use this if you are not using the automatic scaling feature.
|
|
7
|
+
* @private
|
|
7
8
|
* @param {Application} game - the game application instance triggering the resize
|
|
8
9
|
* @param {number} x - x scaling multiplier
|
|
9
10
|
* @param {number} y - y scaling multiplier
|
|
@@ -35,6 +36,7 @@ function scale(game, x, y) {
|
|
|
35
36
|
|
|
36
37
|
/**
|
|
37
38
|
* callback for window resize event
|
|
39
|
+
* @private
|
|
38
40
|
* @param {Application} game - the game application instance triggering the resize
|
|
39
41
|
*/
|
|
40
42
|
export function onresize(game) {
|
package/src/audio/audio.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// external import
|
|
2
2
|
import {Howl, Howler} from "howler";
|
|
3
3
|
import {clamp} from "./../math/math.js";
|
|
4
|
-
import
|
|
4
|
+
import { nocache, withCredentials} from "./../loader/settings.js";
|
|
5
5
|
import { isDataUrl } from "./../utils/string.js";
|
|
6
6
|
|
|
7
7
|
/**
|
|
@@ -154,7 +154,7 @@ export function load(sound, html5, onload_cb, onerror_cb) {
|
|
|
154
154
|
urls.push(sound.src);
|
|
155
155
|
} else {
|
|
156
156
|
for (var i = 0; i < audioExts.length; i++) {
|
|
157
|
-
urls.push(sound.src + sound.name + "." + audioExts[i] +
|
|
157
|
+
urls.push(sound.src + sound.name + "." + audioExts[i] + nocache);
|
|
158
158
|
}
|
|
159
159
|
}
|
|
160
160
|
|
|
@@ -162,7 +162,7 @@ export function load(sound, html5, onload_cb, onerror_cb) {
|
|
|
162
162
|
src : urls,
|
|
163
163
|
volume : Howler.volume(),
|
|
164
164
|
html5 : html5 === true,
|
|
165
|
-
xhrWithCredentials :
|
|
165
|
+
xhrWithCredentials : withCredentials,
|
|
166
166
|
/**
|
|
167
167
|
* @ignore
|
|
168
168
|
*/
|
package/src/const.js
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* constant to select the HTML5 Canvas renderer
|
|
3
|
+
* @type {number}
|
|
4
|
+
* @static
|
|
5
|
+
* @see Application
|
|
6
|
+
*/
|
|
7
|
+
export const CANVAS = 0;
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* constant to select select the WebGL renderer
|
|
11
|
+
* @type {number}
|
|
12
|
+
* @static
|
|
13
|
+
* @see Application
|
|
14
|
+
*/
|
|
15
|
+
export const WEBGL = 1;
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* constant to auto-select the renderer (Attempt WebGL first, with fallback to Canvas)
|
|
19
|
+
* @static
|
|
20
|
+
* @type (number)
|
|
21
|
+
* @see Application
|
|
22
|
+
*/
|
|
23
|
+
export const AUTO = 2;
|
package/src/entity/entity.js
CHANGED
|
@@ -53,10 +53,10 @@ import Body from "./../physics/body.js";
|
|
|
53
53
|
|
|
54
54
|
// Update anchorPoint
|
|
55
55
|
if (settings.anchorPoint) {
|
|
56
|
-
this.anchorPoint.
|
|
56
|
+
this.anchorPoint.setMuted(settings.anchorPoint.x, settings.anchorPoint.y);
|
|
57
57
|
} else {
|
|
58
58
|
// for backward compatibility
|
|
59
|
-
this.anchorPoint.
|
|
59
|
+
this.anchorPoint.setMuted(0, 0);
|
|
60
60
|
}
|
|
61
61
|
|
|
62
62
|
// set the sprite name if specified
|
|
@@ -140,6 +140,7 @@ import Body from "./../physics/body.js";
|
|
|
140
140
|
if (value instanceof Renderable) {
|
|
141
141
|
this.children[0] = value;
|
|
142
142
|
this.children[0].ancestor = this;
|
|
143
|
+
this.updateBounds();
|
|
143
144
|
} else {
|
|
144
145
|
throw new Error(value + "should extend me.Renderable");
|
|
145
146
|
}
|
|
@@ -154,17 +155,50 @@ import Body from "./../physics/body.js";
|
|
|
154
155
|
}
|
|
155
156
|
|
|
156
157
|
/**
|
|
157
|
-
* update the
|
|
158
|
+
* update the bounding box for this entity.
|
|
159
|
+
* @param {boolean} [absolute=true] - update the bounds size and position in (world) absolute coordinates
|
|
160
|
+
* @returns {Bounds} this entity bounding box Rectangle object
|
|
161
|
+
*/
|
|
162
|
+
updateBounds(absolute = true) {
|
|
163
|
+
var bounds = this.getBounds();
|
|
164
|
+
|
|
165
|
+
bounds.clear();
|
|
166
|
+
bounds.addFrame(
|
|
167
|
+
0,
|
|
168
|
+
0,
|
|
169
|
+
this.width,
|
|
170
|
+
this.height
|
|
171
|
+
);
|
|
172
|
+
|
|
173
|
+
// add each renderable bounds
|
|
174
|
+
if (this.children && this.children.length > 0) {
|
|
175
|
+
bounds.addBounds(this.children[0].getBounds());
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
if (this.body) {
|
|
179
|
+
bounds.addBounds(this.body.getBounds());
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
if (absolute === true) {
|
|
183
|
+
bounds.centerOn(this.pos.x + bounds.x + bounds.width / 2, this.pos.y + bounds.y + bounds.height / 2);
|
|
184
|
+
if (typeof this.ancestor !== "undefined" && typeof this.ancestor.addChild === "function" && this.floating !== true) {
|
|
185
|
+
bounds.translate(this.ancestor.getAbsolutePosition());
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
return bounds;
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
/**
|
|
194
|
+
* update the bounds when the body is modified
|
|
158
195
|
* @ignore
|
|
159
196
|
* @name onBodyUpdate
|
|
160
197
|
* @memberof Entity
|
|
161
198
|
* @param {Body} body - the body whose bounds to update
|
|
162
199
|
*/
|
|
163
|
-
onBodyUpdate(
|
|
164
|
-
|
|
165
|
-
this.getBounds().addBounds(body.getBounds(), true);
|
|
166
|
-
// update the bounds pos
|
|
167
|
-
this.updateBoundsPos(this.pos.x, this.pos.y);
|
|
200
|
+
onBodyUpdate() {
|
|
201
|
+
this.updateBounds();
|
|
168
202
|
}
|
|
169
203
|
|
|
170
204
|
preDraw(renderer) {
|
|
@@ -126,8 +126,7 @@ import pool from "./../system/pooling.js";
|
|
|
126
126
|
* @param {number} [y=x]
|
|
127
127
|
* @returns {Ellipse} Reference to this object for method chaining
|
|
128
128
|
*/
|
|
129
|
-
scale(x, y) {
|
|
130
|
-
y = typeof (y) !== "undefined" ? y : x;
|
|
129
|
+
scale(x, y = x) {
|
|
131
130
|
return this.setShape(
|
|
132
131
|
this.pos.x,
|
|
133
132
|
this.pos.y,
|
package/src/geometries/path2d.js
CHANGED
|
@@ -10,20 +10,14 @@ import earcut from "earcut";
|
|
|
10
10
|
constructor() {
|
|
11
11
|
/**
|
|
12
12
|
* the points defining the current path
|
|
13
|
-
* @
|
|
14
|
-
* @type {Vector2d[]}
|
|
15
|
-
* @name points
|
|
16
|
-
* @memberof Path2D#
|
|
13
|
+
* @type {Point[]}
|
|
17
14
|
*/
|
|
18
15
|
this.points = [];
|
|
19
16
|
|
|
20
17
|
/**
|
|
21
18
|
* space between interpolated points for quadratic and bezier curve approx. in pixels.
|
|
22
|
-
* @public
|
|
23
19
|
* @type {number}
|
|
24
|
-
* @name arcResolution
|
|
25
20
|
* @default 5
|
|
26
|
-
* @memberof Path2D#
|
|
27
21
|
*/
|
|
28
22
|
this.arcResolution = 5;
|
|
29
23
|
|
|
@@ -33,8 +27,6 @@ import earcut from "earcut";
|
|
|
33
27
|
|
|
34
28
|
/**
|
|
35
29
|
* begin a new path
|
|
36
|
-
* @name beginPath
|
|
37
|
-
* @memberof Path2D
|
|
38
30
|
*/
|
|
39
31
|
beginPath() {
|
|
40
32
|
// empty the cache and recycle all vectors
|
|
@@ -48,21 +40,17 @@ import earcut from "earcut";
|
|
|
48
40
|
* causes the point of the pen to move back to the start of the current path.
|
|
49
41
|
* It tries to draw a straight line from the current point to the start.
|
|
50
42
|
* If the shape has already been closed or has only one point, this function does nothing.
|
|
51
|
-
* @name closePath
|
|
52
|
-
* @memberof Path2D
|
|
53
43
|
*/
|
|
54
44
|
closePath() {
|
|
55
45
|
var points = this.points;
|
|
56
46
|
if (points.length > 1 && !points[points.length-1].equals(points[0])) {
|
|
57
|
-
points.push(pool.pull("
|
|
47
|
+
points.push(pool.pull("Point", points[0].x, points[0].y));
|
|
58
48
|
}
|
|
59
49
|
}
|
|
60
50
|
|
|
61
51
|
/**
|
|
62
52
|
* triangulate the shape defined by this path into an array of triangles
|
|
63
|
-
* @
|
|
64
|
-
* @memberof Path2D
|
|
65
|
-
* @returns {Vector2d[]}
|
|
53
|
+
* @returns {Point[]}
|
|
66
54
|
*/
|
|
67
55
|
triangulatePath() {
|
|
68
56
|
var i = 0;
|
|
@@ -70,13 +58,15 @@ import earcut from "earcut";
|
|
|
70
58
|
var vertices = this.vertices;
|
|
71
59
|
var indices = earcut(points.flatMap(p => [p.x, p.y]));
|
|
72
60
|
|
|
61
|
+
// pre-allocate vertices if necessary
|
|
62
|
+
while (vertices.length < indices.length) {
|
|
63
|
+
vertices.push(pool.pull("Point"));
|
|
64
|
+
}
|
|
65
|
+
|
|
73
66
|
// calculate all vertices
|
|
74
67
|
for (i = 0; i < indices.length; i++ ) {
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
vertices[i] = pool.pull("Vector2d");
|
|
78
|
-
}
|
|
79
|
-
vertices[i].set(points[indices[i]].x, points[indices[i]].y);
|
|
68
|
+
var point = points[indices[i]];
|
|
69
|
+
vertices[i].set(point.x, point.y);
|
|
80
70
|
}
|
|
81
71
|
|
|
82
72
|
// recycle overhead from a previous triangulation
|
|
@@ -90,31 +80,25 @@ import earcut from "earcut";
|
|
|
90
80
|
|
|
91
81
|
/**
|
|
92
82
|
* moves the starting point of the current path to the (x, y) coordinates.
|
|
93
|
-
* @name moveTo
|
|
94
|
-
* @memberof Path2D
|
|
95
83
|
* @param {number} x - the x-axis (horizontal) coordinate of the point.
|
|
96
84
|
* @param {number} y - the y-axis (vertical) coordinate of the point.
|
|
97
85
|
*/
|
|
98
86
|
moveTo(x, y) {
|
|
99
|
-
this.points.push(pool.pull("
|
|
87
|
+
this.points.push(pool.pull("Point", x, y));
|
|
100
88
|
}
|
|
101
89
|
|
|
102
90
|
/**
|
|
103
91
|
* connects the last point in the current patch to the (x, y) coordinates with a straight line.
|
|
104
|
-
* @name lineTo
|
|
105
|
-
* @memberof Path2D
|
|
106
92
|
* @param {number} x - the x-axis coordinate of the line's end point.
|
|
107
93
|
* @param {number} y - the y-axis coordinate of the line's end point.
|
|
108
94
|
*/
|
|
109
95
|
lineTo(x, y) {
|
|
110
|
-
this.points.push(pool.pull("
|
|
96
|
+
this.points.push(pool.pull("Point", x, y));
|
|
111
97
|
}
|
|
112
98
|
|
|
113
99
|
/**
|
|
114
100
|
* adds an arc to the current path which is centered at (x, y) position with the given radius,
|
|
115
101
|
* starting at startAngle and ending at endAngle going in the given direction by counterclockwise (defaulting to clockwise).
|
|
116
|
-
* @name arc
|
|
117
|
-
* @memberof Path2D
|
|
118
102
|
* @param {number} x - the horizontal coordinate of the arc's center.
|
|
119
103
|
* @param {number} y - the vertical coordinate of the arc's center.
|
|
120
104
|
* @param {number} radius - the arc's radius. Must be positive.
|
|
@@ -154,16 +138,14 @@ import earcut from "earcut";
|
|
|
154
138
|
|
|
155
139
|
var angle = startAngle;
|
|
156
140
|
for (var j = 0; j < nr_of_interpolation_points; j++) {
|
|
157
|
-
points.push(pool.pull("
|
|
141
|
+
points.push(pool.pull("Point", x + radius * Math.cos(angle), y + radius * Math.sin(angle)));
|
|
158
142
|
angle += direction * dangle;
|
|
159
143
|
}
|
|
160
|
-
points.push(pool.pull("
|
|
144
|
+
points.push(pool.pull("Point", x + radius * Math.cos(endAngle), y + radius * Math.sin(endAngle)));
|
|
161
145
|
}
|
|
162
146
|
|
|
163
147
|
/**
|
|
164
148
|
* adds a circular arc to the path with the given control points and radius, connected to the previous point by a straight line.
|
|
165
|
-
* @name arcTo
|
|
166
|
-
* @memberof Path2D
|
|
167
149
|
* @param {number} x1 - the x-axis coordinate of the first control point.
|
|
168
150
|
* @param {number} y1 - the y-axis coordinate of the first control point.
|
|
169
151
|
* @param {number} x2 - the x-axis coordinate of the second control point.
|
|
@@ -192,7 +174,7 @@ import earcut from "earcut";
|
|
|
192
174
|
var tangent_point1 = [x1 + a[0] * adj_l, y1 + a[1] * adj_l];
|
|
193
175
|
var tangent_point2 = [x1 + b[0] * adj_l, y1 + b[1] * adj_l];
|
|
194
176
|
|
|
195
|
-
points.push(pool.pull("
|
|
177
|
+
points.push(pool.pull("Point", tangent_point1[0], tangent_point1[1]));
|
|
196
178
|
|
|
197
179
|
var bisec = [(a[0] + b[0]) / 2.0, (a[1] + b[1]) / 2.0];
|
|
198
180
|
var bisec_l = Math.sqrt(Math.pow(bisec[0], 2) + Math.pow(bisec[1], 2));
|
|
@@ -210,8 +192,6 @@ import earcut from "earcut";
|
|
|
210
192
|
/**
|
|
211
193
|
* adds an elliptical arc to the path which is centered at (x, y) position with the radii radiusX and radiusY
|
|
212
194
|
* starting at startAngle and ending at endAngle going in the given direction by counterclockwise.
|
|
213
|
-
* @name ellipse
|
|
214
|
-
* @memberof Path2D
|
|
215
195
|
* @param {number} x - the x-axis (horizontal) coordinate of the ellipse's center.
|
|
216
196
|
* @param {number} y - the y-axis (vertical) coordinate of the ellipse's center.
|
|
217
197
|
* @param {number} radiusX - the ellipse's major-axis radius. Must be non-negative.
|
|
@@ -259,18 +239,16 @@ import earcut from "earcut";
|
|
|
259
239
|
var _y1 = radiusY * Math.sin(angle);
|
|
260
240
|
var _x2 = x + _x1 * cos_rotation - _y1 * sin_rotation;
|
|
261
241
|
var _y2 = y + _x1 * sin_rotation + _y1 * cos_rotation;
|
|
262
|
-
points.push(pool.pull("
|
|
242
|
+
points.push(pool.pull("Point", _x2, _y2));
|
|
263
243
|
angle += direction * dangle;
|
|
264
244
|
}
|
|
265
245
|
//var x1 = radiusX * Math.cos(endAngle);
|
|
266
246
|
//var y1 = radiusY * Math.sin(endAngle);
|
|
267
|
-
//points.push(pool.pull("
|
|
247
|
+
//points.push(pool.pull("Point", x + x1 * cos_rotation - y1 * sin_rotation, y + x1 * sin_rotation + y1 * cos_rotation));
|
|
268
248
|
}
|
|
269
249
|
|
|
270
250
|
/**
|
|
271
251
|
* creates a path for a rectangle at position (x, y) with a size that is determined by width and height.
|
|
272
|
-
* @name rect
|
|
273
|
-
* @memberof Path2D
|
|
274
252
|
* @param {number} x - the x-axis coordinate of the rectangle's starting point.
|
|
275
253
|
* @param {number} y - the y-axis coordinate of the rectangle's starting point.
|
|
276
254
|
* @param {number} width - the rectangle's width. Positive values are to the right, and negative to the left.
|
|
@@ -286,8 +264,6 @@ import earcut from "earcut";
|
|
|
286
264
|
|
|
287
265
|
/**
|
|
288
266
|
* adds an rounded rectangle to the current path.
|
|
289
|
-
* @name roundRect
|
|
290
|
-
* @memberof Path2D
|
|
291
267
|
* @param {number} x - the x-axis coordinate of the rectangle's starting point.
|
|
292
268
|
* @param {number} y - the y-axis coordinate of the rectangle's starting point.
|
|
293
269
|
* @param {number} width - the rectangle's width. Positive values are to the right, and negative to the left.
|
package/src/geometries/point.js
CHANGED
|
@@ -6,7 +6,6 @@
|
|
|
6
6
|
constructor(x = 0, y = 0) {
|
|
7
7
|
/**
|
|
8
8
|
* the position of the point on the horizontal axis
|
|
9
|
-
* @public
|
|
10
9
|
* @type {Number}
|
|
11
10
|
* @default 0
|
|
12
11
|
*/
|
|
@@ -14,7 +13,6 @@
|
|
|
14
13
|
|
|
15
14
|
/**
|
|
16
15
|
* the position of the point on the vertical axis
|
|
17
|
-
* @public
|
|
18
16
|
* @type {Number}
|
|
19
17
|
* @default 0
|
|
20
18
|
*/
|
|
@@ -48,8 +46,6 @@
|
|
|
48
46
|
*/
|
|
49
47
|
/**
|
|
50
48
|
* return true if this point is equal to the given values
|
|
51
|
-
* @name equals
|
|
52
|
-
* @memberof Point
|
|
53
49
|
* @param {number} x
|
|
54
50
|
* @param {number} y
|
|
55
51
|
* @returns {boolean}
|
|
@@ -70,7 +66,6 @@
|
|
|
70
66
|
|
|
71
67
|
/**
|
|
72
68
|
* clone this Point
|
|
73
|
-
* @name clone
|
|
74
69
|
* @returns {Point} new Point
|
|
75
70
|
*/
|
|
76
71
|
clone() {
|
package/src/geometries/poly.js
CHANGED
|
@@ -200,9 +200,7 @@ import pool from "./../system/pooling.js";
|
|
|
200
200
|
* @param {number} [y=x]
|
|
201
201
|
* @returns {Polygon} Reference to this object for method chaining
|
|
202
202
|
*/
|
|
203
|
-
scale(x, y) {
|
|
204
|
-
y = typeof (y) !== "undefined" ? y : x;
|
|
205
|
-
|
|
203
|
+
scale(x, y = x) {
|
|
206
204
|
var points = this.points;
|
|
207
205
|
var len = points.length;
|
|
208
206
|
for (var i = 0; i < len; i++) {
|
|
@@ -458,7 +456,6 @@ import pool from "./../system/pooling.js";
|
|
|
458
456
|
|
|
459
457
|
/**
|
|
460
458
|
* update the bounding box for this shape.
|
|
461
|
-
* @ignore
|
|
462
459
|
* @name updateBounds
|
|
463
460
|
* @memberof Polygon
|
|
464
461
|
* @returns {Bounds} this shape bounding box Rectangle object
|
|
@@ -77,7 +77,7 @@ import Polygon from "./poly.js";
|
|
|
77
77
|
*/
|
|
78
78
|
get right() {
|
|
79
79
|
var w = this.width;
|
|
80
|
-
return (this.
|
|
80
|
+
return (this.left + w) || w;
|
|
81
81
|
}
|
|
82
82
|
|
|
83
83
|
/**
|
|
@@ -100,7 +100,7 @@ import Polygon from "./poly.js";
|
|
|
100
100
|
*/
|
|
101
101
|
get bottom() {
|
|
102
102
|
var h = this.height;
|
|
103
|
-
return (this.
|
|
103
|
+
return (this.top + h) || h;
|
|
104
104
|
}
|
|
105
105
|
|
|
106
106
|
/**
|
|
@@ -144,13 +144,15 @@ import Polygon from "./poly.js";
|
|
|
144
144
|
*/
|
|
145
145
|
get centerX() {
|
|
146
146
|
if (isFinite(this.width)) {
|
|
147
|
-
return this.
|
|
147
|
+
return this.left + (this.width / 2);
|
|
148
148
|
} else {
|
|
149
149
|
return this.width;
|
|
150
150
|
}
|
|
151
151
|
}
|
|
152
152
|
set centerX (value) {
|
|
153
153
|
this.pos.x = value - (this.width / 2);
|
|
154
|
+
this.recalc();
|
|
155
|
+
this.updateBounds();
|
|
154
156
|
}
|
|
155
157
|
|
|
156
158
|
/**
|
|
@@ -162,13 +164,15 @@ import Polygon from "./poly.js";
|
|
|
162
164
|
*/
|
|
163
165
|
get centerY() {
|
|
164
166
|
if (isFinite(this.height)) {
|
|
165
|
-
return this.
|
|
167
|
+
return this.top + (this.height / 2);
|
|
166
168
|
} else {
|
|
167
169
|
return this.height;
|
|
168
170
|
}
|
|
169
171
|
}
|
|
170
172
|
set centerY(value) {
|
|
171
173
|
this.pos.y = value - (this.height / 2);
|
|
174
|
+
this.recalc();
|
|
175
|
+
this.updateBounds();
|
|
172
176
|
}
|
|
173
177
|
|
|
174
178
|
/**
|
|
@@ -220,7 +224,7 @@ import Polygon from "./poly.js";
|
|
|
220
224
|
* @returns {Rect} new rectangle
|
|
221
225
|
*/
|
|
222
226
|
clone() {
|
|
223
|
-
return new Rect(this.
|
|
227
|
+
return new Rect(this.left, this.top, this.width, this.height);
|
|
224
228
|
}
|
|
225
229
|
|
|
226
230
|
/**
|
|
@@ -231,7 +235,7 @@ import Polygon from "./poly.js";
|
|
|
231
235
|
* @returns {Rect} new rectangle
|
|
232
236
|
*/
|
|
233
237
|
copy(rect) {
|
|
234
|
-
return this.setShape(rect.
|
|
238
|
+
return this.setShape(rect.left, rect.top, rect.width, rect.height);
|
|
235
239
|
}
|
|
236
240
|
|
|
237
241
|
/**
|
|
@@ -348,7 +352,7 @@ import Polygon from "./poly.js";
|
|
|
348
352
|
* @returns {boolean} false if all coordinates are positive or negative Infinity or NaN; otherwise, true.
|
|
349
353
|
*/
|
|
350
354
|
isFinite() {
|
|
351
|
-
return (isFinite(this.
|
|
355
|
+
return (isFinite(this.left) && isFinite(this.top) && isFinite(this.width) && isFinite(this.height));
|
|
352
356
|
}
|
|
353
357
|
|
|
354
358
|
/**
|
|
@@ -359,7 +363,7 @@ import Polygon from "./poly.js";
|
|
|
359
363
|
*/
|
|
360
364
|
toPolygon() {
|
|
361
365
|
return pool.pull("Polygon",
|
|
362
|
-
this.
|
|
366
|
+
this.left, this.top, this.points
|
|
363
367
|
);
|
|
364
368
|
}
|
|
365
369
|
}
|
package/src/index.js
CHANGED
|
@@ -20,7 +20,7 @@ import Body from "./physics/body.js";
|
|
|
20
20
|
import Bounds from "./physics/bounds.js";
|
|
21
21
|
import Tween from "./tweens/tween.js";
|
|
22
22
|
import GLShader from "./video/webgl/glshader.js";
|
|
23
|
-
import WebGLCompositor from "./video/webgl/webgl_compositor.js";
|
|
23
|
+
import WebGLCompositor from "./video/webgl/compositors/webgl_compositor.js";
|
|
24
24
|
import Renderer from "./video/renderer.js";
|
|
25
25
|
import WebGLRenderer from "./video/webgl/webgl_renderer.js";
|
|
26
26
|
import CanvasRenderer from "./video/canvas/canvas_renderer.js";
|
|
@@ -67,7 +67,7 @@ import * as audio from "./audio/audio.js";
|
|
|
67
67
|
import collision from "./physics/collision.js";
|
|
68
68
|
import * as event from "./system/event.js";
|
|
69
69
|
import * as device from "./system/device.js";
|
|
70
|
-
import loader from "./loader/loader.js";
|
|
70
|
+
import * as loader from "./loader/loader.js";
|
|
71
71
|
import * as Math from "./math/math.js";
|
|
72
72
|
import utils from "./utils/utils.js";
|
|
73
73
|
import * as input from "./input/input.js";
|
|
@@ -175,6 +175,8 @@ export {
|
|
|
175
175
|
// Backward compatibility for deprecated method or properties
|
|
176
176
|
export * from "./lang/deprecated.js";
|
|
177
177
|
|
|
178
|
+
// export all public constants
|
|
179
|
+
export * from "./const.js";
|
|
178
180
|
|
|
179
181
|
/**
|
|
180
182
|
* a flag indicating that melonJS is fully initialized
|