melonjs 9.1.0 → 10.0.1
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/{LICENSE → LICENSE.md} +0 -0
- package/README.md +93 -57
- package/dist/melonjs.js +10334 -11179
- package/dist/melonjs.min.js +4 -10
- package/dist/melonjs.module.d.ts +13206 -0
- package/dist/melonjs.module.js +9913 -10872
- package/package.json +19 -14
- package/src/audio/audio.js +477 -553
- package/src/camera/camera2d.js +67 -65
- package/src/entity/draggable.js +26 -35
- package/src/entity/droptarget.js +17 -14
- package/src/entity/entity.js +59 -79
- package/src/game.js +194 -204
- package/src/index.js +12 -30
- package/src/input/gamepad.js +8 -19
- package/src/input/keyboard.js +4 -4
- package/src/input/pointer.js +14 -12
- package/src/input/pointerevent.js +15 -13
- package/src/lang/deprecated.js +2 -887
- package/src/level/level.js +3 -3
- package/src/level/tiled/TMXGroup.js +7 -11
- package/src/level/tiled/TMXLayer.js +33 -32
- package/src/level/tiled/TMXTileMap.js +15 -19
- package/src/level/tiled/TMXTileset.js +5 -5
- package/src/level/tiled/TMXUtils.js +3 -3
- package/src/level/tiled/renderer/TMXRenderer.js +4 -0
- package/src/loader/loader.js +8 -23
- package/src/loader/loadingscreen.js +51 -60
- package/src/math/matrix3.js +1 -1
- package/src/particles/emitter.js +36 -39
- package/src/particles/particle.js +27 -12
- package/src/particles/particlecontainer.js +17 -16
- package/src/physics/body.js +80 -118
- package/src/physics/collision.js +5 -235
- package/src/physics/detector.js +235 -0
- package/src/physics/quadtree.js +14 -14
- package/src/physics/world.js +84 -18
- package/src/plugin/plugin.js +26 -24
- package/src/polyfill/console.js +9 -14
- package/src/renderable/GUI.js +48 -62
- package/src/renderable/collectable.js +11 -4
- package/src/renderable/colorlayer.js +28 -26
- package/src/renderable/container.js +120 -96
- package/src/renderable/imagelayer.js +94 -93
- package/src/renderable/renderable.js +164 -138
- package/src/renderable/sprite.js +42 -44
- package/src/renderable/trigger.js +24 -17
- package/src/shapes/ellipse.js +27 -27
- package/src/shapes/line.js +12 -8
- package/src/shapes/poly.js +77 -49
- package/src/shapes/rectangle.js +193 -268
- package/src/state/stage.js +23 -25
- package/src/state/state.js +35 -86
- package/src/system/device.js +233 -285
- package/src/system/event.js +485 -432
- package/src/system/pooling.js +61 -54
- package/src/system/save.js +17 -16
- package/src/system/timer.js +34 -38
- package/src/text/bitmaptext.js +44 -46
- package/src/text/text.js +39 -34
- package/src/tweens/easing.js +0 -2
- package/src/tweens/interpolation.js +3 -8
- package/src/tweens/tween.js +332 -351
- package/src/utils/function.js +6 -8
- package/src/utils/utils.js +34 -30
- package/src/video/canvas/canvas_renderer.js +13 -8
- package/src/video/renderer.js +8 -7
- package/src/video/texture.js +8 -8
- package/src/video/texture_cache.js +5 -5
- package/src/video/video.js +373 -403
- package/src/video/webgl/glshader.js +2 -2
- package/src/video/webgl/webgl_compositor.js +14 -8
- package/src/video/webgl/webgl_renderer.js +21 -19
- package/plugins/debug/debugPanel.js +0 -770
- package/plugins/debug/font/PressStart2P.fnt +0 -100
- package/plugins/debug/font/PressStart2P.ltr +0 -1
- package/plugins/debug/font/PressStart2P.png +0 -0
- package/plugins/debug/particleDebugPanel.js +0 -303
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import event from "./../../system/event.js";
|
|
1
|
+
import * as event from "./../../system/event.js";
|
|
2
2
|
import device from "./../../system/device.js";
|
|
3
3
|
|
|
4
4
|
/**
|
|
@@ -286,7 +286,7 @@ class GLShader {
|
|
|
286
286
|
this.uniforms = extractUniforms(this.gl, this);
|
|
287
287
|
|
|
288
288
|
// destroy the shader on context lost (will be recreated on context restore)
|
|
289
|
-
event.
|
|
289
|
+
event.on(event.WEBGL_ONCONTEXT_LOST, this.destroy, this);
|
|
290
290
|
|
|
291
291
|
return this;
|
|
292
292
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import Vector2d from "./../../math/vector2.js";
|
|
2
2
|
import GLShader from "./glshader.js";
|
|
3
|
-
import event from "./../../system/event.js";
|
|
3
|
+
import * as event from "./../../system/event.js";
|
|
4
4
|
import { isPowerOfTwo } from "./../../math/math.js";
|
|
5
5
|
|
|
6
6
|
import primitiveVertex from "./shaders/primitive.vert";
|
|
@@ -39,6 +39,14 @@ var MAX_LENGTH = 16000;
|
|
|
39
39
|
class WebGLCompositor {
|
|
40
40
|
|
|
41
41
|
constructor (renderer) {
|
|
42
|
+
this.init(renderer);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Initialize the compositor
|
|
47
|
+
* @ignore
|
|
48
|
+
*/
|
|
49
|
+
init (renderer) {
|
|
42
50
|
// local reference
|
|
43
51
|
var gl = renderer.gl;
|
|
44
52
|
|
|
@@ -133,12 +141,10 @@ class WebGLCompositor {
|
|
|
133
141
|
gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, this.createIB(), gl.STATIC_DRAW);
|
|
134
142
|
|
|
135
143
|
// register to the CANVAS resize channel
|
|
136
|
-
event.
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
}).bind(this)
|
|
141
|
-
);
|
|
144
|
+
event.on(event.CANVAS_ONRESIZE, (width, height) => {
|
|
145
|
+
this.flush();
|
|
146
|
+
this.setViewport(0, 0, width, height);
|
|
147
|
+
});
|
|
142
148
|
|
|
143
149
|
this.reset();
|
|
144
150
|
}
|
|
@@ -507,7 +513,7 @@ class WebGLCompositor {
|
|
|
507
513
|
* @memberOf me.WebGLCompositor
|
|
508
514
|
* @function
|
|
509
515
|
* @param {GLENUM} [mode=gl.TRIANGLES] primitive type to render (gl.POINTS, gl.LINE_STRIP, gl.LINE_LOOP, gl.LINES, gl.TRIANGLE_STRIP, gl.TRIANGLE_FAN, gl.TRIANGLES)
|
|
510
|
-
* @param {me.Vector2d[]} verts vertices
|
|
516
|
+
* @param {me.Vector2d[]} [verts=[]] vertices
|
|
511
517
|
* @param {Number} [vertexCount=verts.length] amount of points defined in the points array
|
|
512
518
|
*/
|
|
513
519
|
drawVertices(mode, verts, vertexCount) {
|
|
@@ -5,8 +5,8 @@ import WebGLCompositor from "./webgl_compositor.js";
|
|
|
5
5
|
import Renderer from "./../renderer.js";
|
|
6
6
|
import TextureCache from "./../texture_cache.js";
|
|
7
7
|
import {Texture, createAtlas } from "./../texture.js";
|
|
8
|
-
import
|
|
9
|
-
import event from "./../../system/event.js";
|
|
8
|
+
import { createCanvas, renderer } from "./../video.js";
|
|
9
|
+
import * as event from "./../../system/event.js";
|
|
10
10
|
import pool from "./../../system/pooling.js";
|
|
11
11
|
import { isPowerOfTwo, nextPowerOfTwo, TAU } from "./../../math/math.js";
|
|
12
12
|
|
|
@@ -154,18 +154,16 @@ class WebGLRenderer extends Renderer {
|
|
|
154
154
|
// to simulate context lost and restore :
|
|
155
155
|
// var ctx = me.video.renderer.context.getExtension('WEBGL_lose_context');
|
|
156
156
|
// ctx.loseContext()
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
event.
|
|
161
|
-
renderer.isContextValid = false;
|
|
162
|
-
event.publish(event.WEBGL_ONCONTEXT_LOST, [ renderer ]);
|
|
157
|
+
this.getScreenCanvas().addEventListener("webglcontextlost", (e) => {
|
|
158
|
+
e.preventDefault();
|
|
159
|
+
this.isContextValid = false;
|
|
160
|
+
event.emit(event.WEBGL_ONCONTEXT_LOST, this);
|
|
163
161
|
}, false );
|
|
164
162
|
// ctx.restoreContext()
|
|
165
|
-
this.getScreenCanvas().addEventListener("webglcontextrestored",
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
event.
|
|
163
|
+
this.getScreenCanvas().addEventListener("webglcontextrestored", () => {
|
|
164
|
+
this.reset();
|
|
165
|
+
this.isContextValid = true;
|
|
166
|
+
event.emit(event.WEBGL_ONCONTEXT_RESTORED, this);
|
|
169
167
|
}, false );
|
|
170
168
|
|
|
171
169
|
return this;
|
|
@@ -236,7 +234,7 @@ class WebGLRenderer extends Renderer {
|
|
|
236
234
|
}
|
|
237
235
|
}
|
|
238
236
|
|
|
239
|
-
var image =
|
|
237
|
+
var image = createCanvas(width, height, true);
|
|
240
238
|
|
|
241
239
|
/**
|
|
242
240
|
* @ignore
|
|
@@ -272,7 +270,7 @@ class WebGLRenderer extends Renderer {
|
|
|
272
270
|
*/
|
|
273
271
|
createPattern(image, repeat) {
|
|
274
272
|
|
|
275
|
-
if (
|
|
273
|
+
if (renderer.WebGLVersion === 1 && (!isPowerOfTwo(image.width) || !isPowerOfTwo(image.height))) {
|
|
276
274
|
var src = typeof image.src !== "undefined" ? image.src : image;
|
|
277
275
|
throw new Error(
|
|
278
276
|
"[WebGL Renderer] " + src + " is not a POT texture " +
|
|
@@ -694,8 +692,9 @@ class WebGLRenderer extends Renderer {
|
|
|
694
692
|
* @param {Number} start start angle in radians
|
|
695
693
|
* @param {Number} end end angle in radians
|
|
696
694
|
* @param {Boolean} [antiClockwise=false] draw arc anti-clockwise
|
|
695
|
+
* @param {Boolean} [fill=false]
|
|
697
696
|
*/
|
|
698
|
-
strokeArc(x, y, radius, start, end, antiClockwise, fill) {
|
|
697
|
+
strokeArc(x, y, radius, start, end, antiClockwise = false, fill) {
|
|
699
698
|
if (fill === true ) {
|
|
700
699
|
this.fillArc(x, y, radius, start, end, antiClockwise);
|
|
701
700
|
} else {
|
|
@@ -738,7 +737,7 @@ class WebGLRenderer extends Renderer {
|
|
|
738
737
|
* @param {Number} end end angle in radians
|
|
739
738
|
* @param {Boolean} [antiClockwise=false] draw arc anti-clockwise
|
|
740
739
|
*/
|
|
741
|
-
fillArc(x, y, radius, start, end
|
|
740
|
+
fillArc(x, y, radius, start, end /*, antiClockwise = false*/) {
|
|
742
741
|
// XXX to be optimzed using a specific shader
|
|
743
742
|
var points = this._glPoints;
|
|
744
743
|
var i, index = 0;
|
|
@@ -778,8 +777,9 @@ class WebGLRenderer extends Renderer {
|
|
|
778
777
|
* @param {Number} y ellipse center point y-axis
|
|
779
778
|
* @param {Number} w horizontal radius of the ellipse
|
|
780
779
|
* @param {Number} h vertical radius of the ellipse
|
|
780
|
+
* @param {Boolean} [fill=false] also fill the shape with the current color if true
|
|
781
781
|
*/
|
|
782
|
-
strokeEllipse(x, y, w, h, fill) {
|
|
782
|
+
strokeEllipse(x, y, w, h, fill = false) {
|
|
783
783
|
if (fill === true ) {
|
|
784
784
|
this.fillEllipse(x, y, w, h);
|
|
785
785
|
} else {
|
|
@@ -880,8 +880,9 @@ class WebGLRenderer extends Renderer {
|
|
|
880
880
|
* @memberOf me.WebGLRenderer.prototype
|
|
881
881
|
* @function
|
|
882
882
|
* @param {me.Polygon} poly the shape to draw
|
|
883
|
+
* @param {Boolean} [fill=false] also fill the shape with the current color if true
|
|
883
884
|
*/
|
|
884
|
-
strokePolygon(poly, fill) {
|
|
885
|
+
strokePolygon(poly, fill = false) {
|
|
885
886
|
if (fill === true ) {
|
|
886
887
|
this.fillPolygon(poly);
|
|
887
888
|
} else {
|
|
@@ -940,8 +941,9 @@ class WebGLRenderer extends Renderer {
|
|
|
940
941
|
* @param {Number} y
|
|
941
942
|
* @param {Number} width
|
|
942
943
|
* @param {Number} height
|
|
944
|
+
* @param {Boolean} [fill=false] also fill the shape with the current color if true
|
|
943
945
|
*/
|
|
944
|
-
strokeRect(x, y, width, height, fill) {
|
|
946
|
+
strokeRect(x, y, width, height, fill = false) {
|
|
945
947
|
if (fill === true ) {
|
|
946
948
|
this.fillRect(x, y, width, height);
|
|
947
949
|
} else {
|