melonjs 14.0.1 → 14.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/README.md +2 -0
- package/dist/melonjs.mjs/_virtual/_commonjsHelpers.js +10 -0
- package/dist/melonjs.mjs/_virtual/arraymultimap.js +10 -0
- package/dist/melonjs.mjs/_virtual/earcut.js +10 -0
- package/dist/melonjs.mjs/_virtual/howler.js +10 -0
- package/dist/melonjs.mjs/_virtual/index.js +10 -0
- package/dist/melonjs.mjs/_virtual/index2.js +10 -0
- package/dist/melonjs.mjs/_virtual/multimap.js +10 -0
- package/dist/melonjs.mjs/_virtual/setmultimap.js +10 -0
- package/dist/melonjs.mjs/application/application.js +240 -0
- package/dist/melonjs.mjs/audio/audio.js +536 -0
- package/dist/melonjs.mjs/camera/camera2d.js +732 -0
- package/dist/melonjs.mjs/entity/entity.js +248 -0
- package/dist/melonjs.mjs/game.js +29 -0
- package/dist/melonjs.mjs/geometries/ellipse.js +275 -0
- package/dist/melonjs.mjs/geometries/line.js +116 -0
- package/dist/melonjs.mjs/geometries/path2d.js +319 -0
- package/dist/melonjs.mjs/geometries/point.js +89 -0
- package/dist/melonjs.mjs/geometries/poly.js +500 -0
- package/dist/melonjs.mjs/geometries/rectangle.js +375 -0
- package/dist/melonjs.mjs/geometries/roundrect.js +168 -0
- package/dist/melonjs.mjs/index.js +248 -0
- package/dist/melonjs.mjs/input/gamepad.js +501 -0
- package/dist/melonjs.mjs/input/input.js +26 -0
- package/dist/melonjs.mjs/input/keyboard.js +470 -0
- package/dist/melonjs.mjs/input/pointer.js +393 -0
- package/dist/melonjs.mjs/input/pointerevent.js +818 -0
- package/dist/melonjs.mjs/lang/deprecated.js +157 -0
- package/dist/melonjs.mjs/level/level.js +297 -0
- package/dist/melonjs.mjs/level/tiled/TMXGroup.js +141 -0
- package/dist/melonjs.mjs/level/tiled/TMXLayer.js +448 -0
- package/dist/melonjs.mjs/level/tiled/TMXObject.js +355 -0
- package/dist/melonjs.mjs/level/tiled/TMXTile.js +194 -0
- package/dist/melonjs.mjs/level/tiled/TMXTileMap.js +639 -0
- package/dist/melonjs.mjs/level/tiled/TMXTileset.js +311 -0
- package/dist/melonjs.mjs/level/tiled/TMXTilesetGroup.js +83 -0
- package/dist/melonjs.mjs/level/tiled/TMXUtils.js +367 -0
- package/dist/melonjs.mjs/level/tiled/renderer/TMXHexagonalRenderer.js +506 -0
- package/dist/melonjs.mjs/level/tiled/renderer/TMXIsometricRenderer.js +220 -0
- package/dist/melonjs.mjs/level/tiled/renderer/TMXOrthogonalRenderer.js +157 -0
- package/dist/melonjs.mjs/level/tiled/renderer/TMXRenderer.js +125 -0
- package/dist/melonjs.mjs/level/tiled/renderer/TMXStaggeredRenderer.js +109 -0
- package/dist/melonjs.mjs/loader/loader.js +801 -0
- package/dist/melonjs.mjs/loader/loadingscreen.js +120 -0
- package/dist/melonjs.mjs/loader/melonjs_logo.png.js +11 -0
- package/dist/melonjs.mjs/math/color.js +618 -0
- package/dist/melonjs.mjs/math/math.js +218 -0
- package/dist/melonjs.mjs/math/matrix2.js +503 -0
- package/dist/melonjs.mjs/math/matrix3.js +681 -0
- package/dist/melonjs.mjs/math/observable_vector2.js +471 -0
- package/dist/melonjs.mjs/math/observable_vector3.js +561 -0
- package/dist/melonjs.mjs/math/vector2.js +528 -0
- package/dist/melonjs.mjs/math/vector3.js +569 -0
- package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/src/arraymultimap.js +73 -0
- package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/src/index.js +21 -0
- package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/src/multimap.js +324 -0
- package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/src/setmultimap.js +69 -0
- package/dist/melonjs.mjs/node_modules/earcut/src/earcut.js +691 -0
- package/dist/melonjs.mjs/node_modules/eventemitter3/index.js +350 -0
- package/dist/melonjs.mjs/node_modules/howler/dist/howler.js +3241 -0
- package/dist/melonjs.mjs/particles/emitter.js +267 -0
- package/dist/melonjs.mjs/particles/particle.js +188 -0
- package/dist/melonjs.mjs/particles/settings.js +319 -0
- package/dist/melonjs.mjs/physics/body.js +704 -0
- package/dist/melonjs.mjs/physics/bounds.js +460 -0
- package/dist/melonjs.mjs/physics/collision.js +132 -0
- package/dist/melonjs.mjs/physics/detector.js +194 -0
- package/dist/melonjs.mjs/physics/quadtree.js +391 -0
- package/dist/melonjs.mjs/physics/response.js +57 -0
- package/dist/melonjs.mjs/physics/sat.js +483 -0
- package/dist/melonjs.mjs/physics/world.js +221 -0
- package/dist/melonjs.mjs/plugin/plugin.js +141 -0
- package/dist/melonjs.mjs/renderable/collectable.js +62 -0
- package/dist/melonjs.mjs/renderable/colorlayer.js +80 -0
- package/dist/melonjs.mjs/renderable/container.js +1018 -0
- package/dist/melonjs.mjs/renderable/dragndrop.js +224 -0
- package/dist/melonjs.mjs/renderable/imagelayer.js +306 -0
- package/dist/melonjs.mjs/renderable/light2d.js +156 -0
- package/dist/melonjs.mjs/renderable/nineslicesprite.js +247 -0
- package/dist/melonjs.mjs/renderable/renderable.js +783 -0
- package/dist/melonjs.mjs/renderable/sprite.js +654 -0
- package/dist/melonjs.mjs/renderable/trigger.js +157 -0
- package/dist/melonjs.mjs/renderable/ui/uibaseelement.js +213 -0
- package/dist/melonjs.mjs/renderable/ui/uispriteelement.js +226 -0
- package/dist/melonjs.mjs/renderable/ui/uitextbutton.js +128 -0
- package/dist/melonjs.mjs/state/stage.js +237 -0
- package/dist/melonjs.mjs/state/state.js +596 -0
- package/dist/melonjs.mjs/system/device.js +909 -0
- package/dist/melonjs.mjs/system/dom.js +78 -0
- package/dist/melonjs.mjs/system/event.js +537 -0
- package/dist/melonjs.mjs/system/platform.js +41 -0
- package/dist/melonjs.mjs/system/pooling.js +209 -0
- package/dist/melonjs.mjs/system/save.js +157 -0
- package/dist/melonjs.mjs/system/timer.js +286 -0
- package/dist/melonjs.mjs/text/bitmaptext.js +364 -0
- package/dist/melonjs.mjs/text/bitmaptextdata.js +199 -0
- package/dist/melonjs.mjs/text/glyph.js +66 -0
- package/dist/melonjs.mjs/text/text.js +453 -0
- package/dist/melonjs.mjs/text/textmetrics.js +176 -0
- package/dist/melonjs.mjs/text/textstyle.js +23 -0
- package/dist/melonjs.mjs/tweens/easing.js +336 -0
- package/dist/melonjs.mjs/tweens/interpolation.js +112 -0
- package/dist/melonjs.mjs/tweens/tween.js +480 -0
- package/dist/melonjs.mjs/utils/agent.js +76 -0
- package/dist/melonjs.mjs/utils/array.js +63 -0
- package/dist/melonjs.mjs/utils/file.js +42 -0
- package/dist/melonjs.mjs/utils/function.js +70 -0
- package/dist/melonjs.mjs/utils/string.js +82 -0
- package/dist/melonjs.mjs/utils/utils.js +173 -0
- package/dist/melonjs.mjs/video/canvas/canvas_renderer.js +807 -0
- package/dist/melonjs.mjs/video/renderer.js +411 -0
- package/dist/melonjs.mjs/video/texture/atlas.js +519 -0
- package/dist/melonjs.mjs/video/texture/cache.js +143 -0
- package/dist/melonjs.mjs/video/texture/canvas_texture.js +144 -0
- package/dist/melonjs.mjs/video/video.js +462 -0
- package/dist/melonjs.mjs/video/webgl/buffer/vertex.js +143 -0
- package/dist/melonjs.mjs/video/webgl/glshader.js +168 -0
- package/dist/melonjs.mjs/video/webgl/shaders/primitive.frag.js +10 -0
- package/dist/melonjs.mjs/video/webgl/shaders/primitive.vert.js +10 -0
- package/dist/melonjs.mjs/video/webgl/shaders/quad.frag.js +10 -0
- package/dist/melonjs.mjs/video/webgl/shaders/quad.vert.js +10 -0
- package/dist/melonjs.mjs/video/webgl/utils/attributes.js +25 -0
- package/dist/melonjs.mjs/video/webgl/utils/precision.js +20 -0
- package/dist/melonjs.mjs/video/webgl/utils/program.js +67 -0
- package/dist/melonjs.mjs/video/webgl/utils/string.js +25 -0
- package/dist/melonjs.mjs/video/webgl/utils/uniforms.js +92 -0
- package/dist/melonjs.mjs/video/webgl/webgl_compositor.js +495 -0
- package/dist/melonjs.mjs/video/webgl/webgl_renderer.js +1036 -0
- package/dist/melonjs.module.d.ts +1163 -1163
- package/dist/melonjs.module.js +1903 -3274
- package/package.json +22 -17
- package/src/application/application.js +3 -3
- package/src/audio/audio.js +32 -32
- package/src/camera/camera2d.js +31 -31
- package/src/entity/entity.js +17 -17
- package/src/geometries/ellipse.js +16 -16
- package/src/geometries/line.js +5 -5
- package/src/geometries/path2d.js +32 -32
- package/src/geometries/poly.js +15 -15
- package/src/geometries/rectangle.js +18 -18
- package/src/geometries/roundrect.js +8 -8
- package/src/input/gamepad.js +15 -15
- package/src/input/keyboard.js +12 -12
- package/src/input/pointer.js +6 -6
- package/src/input/pointerevent.js +12 -12
- package/src/lang/deprecated.js +12 -12
- package/src/level/level.js +25 -25
- package/src/level/tiled/TMXLayer.js +22 -22
- package/src/level/tiled/TMXTile.js +5 -5
- package/src/level/tiled/TMXTileMap.js +6 -6
- package/src/level/tiled/TMXTileset.js +2 -2
- package/src/level/tiled/TMXUtils.js +5 -5
- package/src/level/tiled/renderer/TMXHexagonalRenderer.js +2 -2
- package/src/level/tiled/renderer/TMXIsometricRenderer.js +2 -2
- package/src/level/tiled/renderer/TMXOrthogonalRenderer.js +1 -1
- package/src/level/tiled/renderer/TMXRenderer.js +19 -19
- package/src/loader/loader.js +20 -20
- package/src/math/color.js +20 -20
- package/src/math/math.js +16 -16
- package/src/math/matrix2.js +16 -16
- package/src/math/matrix3.js +25 -25
- package/src/math/observable_vector2.js +14 -14
- package/src/math/observable_vector3.js +16 -16
- package/src/math/vector2.js +9 -9
- package/src/math/vector3.js +10 -10
- package/src/particles/emitter.js +6 -6
- package/src/particles/particle.js +2 -2
- package/src/physics/body.js +28 -28
- package/src/physics/bounds.js +8 -8
- package/src/physics/collision.js +2 -2
- package/src/physics/detector.js +6 -6
- package/src/physics/quadtree.js +11 -11
- package/src/physics/sat.js +31 -31
- package/src/physics/world.js +5 -5
- package/src/plugin/plugin.js +5 -5
- package/src/renderable/collectable.js +3 -3
- package/src/renderable/colorlayer.js +5 -5
- package/src/renderable/container.js +21 -21
- package/src/renderable/dragndrop.js +14 -14
- package/src/renderable/imagelayer.js +13 -13
- package/src/renderable/light2d.js +3 -3
- package/src/renderable/nineslicesprite.js +16 -16
- package/src/renderable/renderable.js +23 -23
- package/src/renderable/sprite.js +28 -28
- package/src/renderable/trigger.js +15 -15
- package/src/renderable/ui/uibaseelement.js +7 -7
- package/src/renderable/ui/uispriteelement.js +6 -6
- package/src/renderable/ui/uitextbutton.js +13 -13
- package/src/state/stage.js +7 -7
- package/src/state/state.js +17 -17
- package/src/system/device.js +11 -11
- package/src/system/event.js +10 -10
- package/src/system/pooling.js +9 -9
- package/src/system/save.js +2 -2
- package/src/system/timer.js +10 -10
- package/src/text/bitmaptext.js +18 -18
- package/src/text/bitmaptextdata.js +2 -2
- package/src/text/text.js +23 -23
- package/src/text/textmetrics.js +8 -8
- package/src/tweens/tween.js +19 -19
- package/src/utils/agent.js +5 -5
- package/src/utils/array.js +4 -4
- package/src/utils/file.js +2 -2
- package/src/utils/function.js +6 -6
- package/src/utils/string.js +5 -5
- package/src/utils/utils.js +4 -4
- package/src/video/canvas/canvas_renderer.js +70 -70
- package/src/video/renderer.js +26 -26
- package/src/video/texture/atlas.js +22 -22
- package/src/video/texture/canvas_texture.js +9 -9
- package/src/video/video.js +17 -17
- package/src/video/webgl/glshader.js +10 -10
- package/src/video/webgl/webgl_compositor.js +41 -41
- package/src/video/webgl/webgl_renderer.js +75 -75
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* melonJS Game Engine - v14.1.0
|
|
3
|
+
* http://www.melonjs.org
|
|
4
|
+
* melonjs is licensed under the MIT License.
|
|
5
|
+
* http://www.opensource.org/licenses/mit-license
|
|
6
|
+
* @copyright (C) 2011 - 2022 Olivier Biot (AltByte Pte Ltd)
|
|
7
|
+
*/
|
|
8
|
+
import utils from '../utils/utils.js';
|
|
9
|
+
import { version } from '../index.js';
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* This namespace is a container for all registered plugins.
|
|
13
|
+
* @see plugin.register
|
|
14
|
+
* @namespace plugins
|
|
15
|
+
*/
|
|
16
|
+
var plugins = {};
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
class BasePlugin {
|
|
20
|
+
|
|
21
|
+
constructor() {
|
|
22
|
+
/**
|
|
23
|
+
* define the minimum required version of melonJS<br>
|
|
24
|
+
* this can be overridden by the plugin
|
|
25
|
+
* @public
|
|
26
|
+
* @type {string}
|
|
27
|
+
* @default "14.1.0"
|
|
28
|
+
* @name plugin.Base#version
|
|
29
|
+
*/
|
|
30
|
+
this.version = "14.1.0";
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* @namespace plugin
|
|
36
|
+
*/
|
|
37
|
+
var plugin = {
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* a base Object for plugin <br>
|
|
41
|
+
* plugin must be installed using the register function
|
|
42
|
+
* @see plugin
|
|
43
|
+
* @class
|
|
44
|
+
* @name Base
|
|
45
|
+
* @memberof plugin
|
|
46
|
+
*/
|
|
47
|
+
Base : BasePlugin,
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* patch a melonJS function
|
|
51
|
+
* @name patch
|
|
52
|
+
* @memberof plugin
|
|
53
|
+
* @public
|
|
54
|
+
* @param {object} proto - target object
|
|
55
|
+
* @param {string} name - target function
|
|
56
|
+
* @param {Function} fn - replacement function
|
|
57
|
+
* @example
|
|
58
|
+
* // redefine the me.game.update function with a new one
|
|
59
|
+
* me.plugin.patch(me.game, "update", function () {
|
|
60
|
+
* // display something in the console
|
|
61
|
+
* console.log("duh");
|
|
62
|
+
* // call the original me.game.update function
|
|
63
|
+
* this._patched();
|
|
64
|
+
* });
|
|
65
|
+
*/
|
|
66
|
+
patch : function (proto, name, fn) {
|
|
67
|
+
// use the object prototype if possible
|
|
68
|
+
if (typeof proto.prototype !== "undefined") {
|
|
69
|
+
proto = proto.prototype;
|
|
70
|
+
}
|
|
71
|
+
// reuse the logic behind object extends
|
|
72
|
+
if (typeof(proto[name]) === "function") {
|
|
73
|
+
// save the original function
|
|
74
|
+
var _parent = proto[name];
|
|
75
|
+
// override the function with the new one
|
|
76
|
+
Object.defineProperty(proto, name, {
|
|
77
|
+
"configurable" : true,
|
|
78
|
+
"value" : (function (name, fn) {
|
|
79
|
+
return function () {
|
|
80
|
+
this._patched = _parent;
|
|
81
|
+
var ret = fn.apply(this, arguments);
|
|
82
|
+
this._patched = null;
|
|
83
|
+
return ret;
|
|
84
|
+
};
|
|
85
|
+
})(name, fn)
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
throw new Error(name + " is not an existing function");
|
|
90
|
+
}
|
|
91
|
+
},
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* Register a plugin.
|
|
95
|
+
* @name register
|
|
96
|
+
* @memberof plugin
|
|
97
|
+
* @see Base
|
|
98
|
+
* @public
|
|
99
|
+
* @param {plugin.Base} pluginObj - Plugin object to instantiate and register
|
|
100
|
+
* @param {string} name
|
|
101
|
+
* @param {object} [...arguments] - all extra parameters will be passed to the plugin constructor
|
|
102
|
+
* @example
|
|
103
|
+
* // register a new plugin
|
|
104
|
+
* me.plugin.register(TestPlugin, "testPlugin");
|
|
105
|
+
* // the plugin then also become available
|
|
106
|
+
* // under then me.plugins namespace
|
|
107
|
+
* me.plugins.testPlugin.myfunction ();
|
|
108
|
+
*/
|
|
109
|
+
register : function (pluginObj, name) {
|
|
110
|
+
// ensure me.plugins[name] is not already "used"
|
|
111
|
+
if (plugins[name]) {
|
|
112
|
+
throw new Error("plugin " + name + " already registered");
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
// get extra arguments
|
|
116
|
+
var _args = [];
|
|
117
|
+
if (arguments.length > 2) {
|
|
118
|
+
// store extra arguments if any
|
|
119
|
+
_args = Array.prototype.slice.call(arguments, 1);
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
// try to instantiate the plugin
|
|
123
|
+
_args[0] = pluginObj;
|
|
124
|
+
var instance = new (pluginObj.bind.apply(pluginObj, _args))();
|
|
125
|
+
|
|
126
|
+
// inheritance check
|
|
127
|
+
if (typeof instance === "undefined" || !(instance instanceof plugin.Base)) {
|
|
128
|
+
throw new Error("Plugin should extend the me.plugin.Base Class !");
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
// compatibility testing
|
|
132
|
+
if (utils.checkVersion(instance.version) > 0) {
|
|
133
|
+
throw new Error("Plugin version mismatch, expected: " + instance.version + ", got: " + version);
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
// create a reference to the new plugin
|
|
137
|
+
plugins[name] = instance;
|
|
138
|
+
}
|
|
139
|
+
};
|
|
140
|
+
|
|
141
|
+
export { plugin, plugins };
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* melonJS Game Engine - v14.1.0
|
|
3
|
+
* http://www.melonjs.org
|
|
4
|
+
* melonjs is licensed under the MIT License.
|
|
5
|
+
* http://www.opensource.org/licenses/mit-license
|
|
6
|
+
* @copyright (C) 2011 - 2022 Olivier Biot (AltByte Pte Ltd)
|
|
7
|
+
*/
|
|
8
|
+
import Sprite from './sprite.js';
|
|
9
|
+
import Body from '../physics/body.js';
|
|
10
|
+
import collision from '../physics/collision.js';
|
|
11
|
+
import pool from '../system/pooling.js';
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* @classdesc
|
|
15
|
+
* a basic collectable helper class for immovable object (e.g. a coin)
|
|
16
|
+
* @augments Sprite
|
|
17
|
+
*/
|
|
18
|
+
class Collectable extends Sprite {
|
|
19
|
+
/**
|
|
20
|
+
* @param {number} x - the x coordinates of the collectable
|
|
21
|
+
* @param {number} y - the y coordinates of the collectable
|
|
22
|
+
* @param {object} settings - See {@link Sprite}
|
|
23
|
+
*/
|
|
24
|
+
constructor(x, y, settings) {
|
|
25
|
+
|
|
26
|
+
// call the super constructor
|
|
27
|
+
super(x, y, settings);
|
|
28
|
+
|
|
29
|
+
this.name = settings.name;
|
|
30
|
+
this.type = settings.type;
|
|
31
|
+
this.id = settings.id;
|
|
32
|
+
|
|
33
|
+
// add and configure the physic body
|
|
34
|
+
var shape = settings.shapes;
|
|
35
|
+
if (typeof shape === "undefined") {
|
|
36
|
+
shape = pool.pull("Polygon", 0, 0, [
|
|
37
|
+
pool.pull("Vector2d", 0, 0),
|
|
38
|
+
pool.pull("Vector2d", this.width, 0),
|
|
39
|
+
pool.pull("Vector2d", this.width, this.height)
|
|
40
|
+
]);
|
|
41
|
+
}
|
|
42
|
+
this.body = new Body(this, shape);
|
|
43
|
+
this.body.collisionType = collision.types.COLLECTABLE_OBJECT;
|
|
44
|
+
// by default only collides with PLAYER_OBJECT
|
|
45
|
+
this.body.setCollisionMask(collision.types.PLAYER_OBJECT);
|
|
46
|
+
this.body.setStatic(true);
|
|
47
|
+
|
|
48
|
+
// Update anchorPoint
|
|
49
|
+
if (settings.anchorPoint) {
|
|
50
|
+
this.anchorPoint.set(settings.anchorPoint.x, settings.anchorPoint.y);
|
|
51
|
+
} else {
|
|
52
|
+
// for backward compatibility
|
|
53
|
+
this.anchorPoint.set(0, 0);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
var Collectable$1 = Collectable;
|
|
61
|
+
|
|
62
|
+
export { Collectable$1 as default };
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* melonJS Game Engine - v14.1.0
|
|
3
|
+
* http://www.melonjs.org
|
|
4
|
+
* melonjs is licensed under the MIT License.
|
|
5
|
+
* http://www.opensource.org/licenses/mit-license
|
|
6
|
+
* @copyright (C) 2011 - 2022 Olivier Biot (AltByte Pte Ltd)
|
|
7
|
+
*/
|
|
8
|
+
import pool from '../system/pooling.js';
|
|
9
|
+
import Renderable from './renderable.js';
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* @classdesc
|
|
13
|
+
* a generic Color Layer Object. Fills the entire Canvas with the color not just the container the object belongs to.
|
|
14
|
+
* @augments Renderable
|
|
15
|
+
*/
|
|
16
|
+
class ColorLayer extends Renderable {
|
|
17
|
+
/**
|
|
18
|
+
* @param {string} name - Layer name
|
|
19
|
+
* @param {Color|string} color - CSS color
|
|
20
|
+
* @param {number} [z = 0] - z-index position
|
|
21
|
+
*/
|
|
22
|
+
constructor(name, color, z) {
|
|
23
|
+
// parent constructor
|
|
24
|
+
super(0, 0, Infinity, Infinity);
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* the layer color component
|
|
28
|
+
* @public
|
|
29
|
+
* @type {Color}
|
|
30
|
+
* @name color
|
|
31
|
+
* @memberof ColorLayer#
|
|
32
|
+
*/
|
|
33
|
+
this.color = pool.pull("Color").parseCSS(color);
|
|
34
|
+
|
|
35
|
+
this.onResetEvent(name, color, z);
|
|
36
|
+
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
onResetEvent(name, color, z = 0) {
|
|
40
|
+
// apply given parameters
|
|
41
|
+
this.name = name;
|
|
42
|
+
this.pos.z = z;
|
|
43
|
+
this.floating = true;
|
|
44
|
+
// string (#RGB, #ARGB, #RRGGBB, #AARRGGBB)
|
|
45
|
+
this.color.parseCSS(color);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* draw this color layer (automatically called by melonJS)
|
|
50
|
+
* @name draw
|
|
51
|
+
* @memberof ColorLayer
|
|
52
|
+
* @protected
|
|
53
|
+
* @param {CanvasRenderer|WebGLRenderer} renderer - a renderer instance
|
|
54
|
+
* @param {Camera2d} [viewport] - the viewport to (re)draw
|
|
55
|
+
*/
|
|
56
|
+
draw(renderer, viewport) {
|
|
57
|
+
renderer.save();
|
|
58
|
+
renderer.clipRect(
|
|
59
|
+
0, 0,
|
|
60
|
+
viewport.width, viewport.height
|
|
61
|
+
);
|
|
62
|
+
renderer.clearColor(this.color);
|
|
63
|
+
renderer.restore();
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* Destroy function
|
|
68
|
+
* @ignore
|
|
69
|
+
*/
|
|
70
|
+
destroy() {
|
|
71
|
+
pool.push(this.color);
|
|
72
|
+
this.color = undefined;
|
|
73
|
+
super.destroy();
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
var ColorLayer$1 = ColorLayer;
|
|
79
|
+
|
|
80
|
+
export { ColorLayer$1 as default };
|