melonjs 14.0.2 → 14.1.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/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 +238 -0
- package/dist/melonjs.mjs/audio/audio.js +536 -0
- package/dist/melonjs.mjs/camera/camera2d.js +731 -0
- package/dist/melonjs.mjs/entity/entity.js +247 -0
- package/dist/melonjs.mjs/game.js +29 -0
- package/dist/melonjs.mjs/geometries/ellipse.js +274 -0
- package/dist/melonjs.mjs/geometries/line.js +115 -0
- package/dist/melonjs.mjs/geometries/path2d.js +318 -0
- package/dist/melonjs.mjs/geometries/point.js +88 -0
- package/dist/melonjs.mjs/geometries/poly.js +498 -0
- package/dist/melonjs.mjs/geometries/rectangle.js +374 -0
- package/dist/melonjs.mjs/geometries/roundrect.js +167 -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 +446 -0
- package/dist/melonjs.mjs/level/tiled/TMXObject.js +355 -0
- package/dist/melonjs.mjs/level/tiled/TMXTile.js +193 -0
- package/dist/melonjs.mjs/level/tiled/TMXTileMap.js +636 -0
- package/dist/melonjs.mjs/level/tiled/TMXTileset.js +309 -0
- package/dist/melonjs.mjs/level/tiled/TMXTilesetGroup.js +81 -0
- package/dist/melonjs.mjs/level/tiled/TMXUtils.js +367 -0
- package/dist/melonjs.mjs/level/tiled/renderer/TMXHexagonalRenderer.js +504 -0
- package/dist/melonjs.mjs/level/tiled/renderer/TMXIsometricRenderer.js +218 -0
- package/dist/melonjs.mjs/level/tiled/renderer/TMXOrthogonalRenderer.js +155 -0
- package/dist/melonjs.mjs/level/tiled/renderer/TMXRenderer.js +124 -0
- package/dist/melonjs.mjs/level/tiled/renderer/TMXStaggeredRenderer.js +107 -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 +616 -0
- package/dist/melonjs.mjs/math/math.js +218 -0
- package/dist/melonjs.mjs/math/matrix2.js +501 -0
- package/dist/melonjs.mjs/math/matrix3.js +679 -0
- package/dist/melonjs.mjs/math/observable_vector2.js +469 -0
- package/dist/melonjs.mjs/math/observable_vector3.js +559 -0
- package/dist/melonjs.mjs/math/vector2.js +526 -0
- package/dist/melonjs.mjs/math/vector3.js +567 -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 +265 -0
- package/dist/melonjs.mjs/particles/particle.js +186 -0
- package/dist/melonjs.mjs/particles/settings.js +319 -0
- package/dist/melonjs.mjs/physics/body.js +702 -0
- package/dist/melonjs.mjs/physics/bounds.js +459 -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 +394 -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 +219 -0
- package/dist/melonjs.mjs/plugin/plugin.js +141 -0
- package/dist/melonjs.mjs/renderable/collectable.js +60 -0
- package/dist/melonjs.mjs/renderable/colorlayer.js +78 -0
- package/dist/melonjs.mjs/renderable/container.js +1016 -0
- package/dist/melonjs.mjs/renderable/dragndrop.js +224 -0
- package/dist/melonjs.mjs/renderable/imagelayer.js +305 -0
- package/dist/melonjs.mjs/renderable/light2d.js +155 -0
- package/dist/melonjs.mjs/renderable/nineslicesprite.js +246 -0
- package/dist/melonjs.mjs/renderable/renderable.js +781 -0
- package/dist/melonjs.mjs/renderable/sprite.js +653 -0
- package/dist/melonjs.mjs/renderable/trigger.js +156 -0
- package/dist/melonjs.mjs/renderable/ui/uibaseelement.js +212 -0
- package/dist/melonjs.mjs/renderable/ui/uispriteelement.js +225 -0
- package/dist/melonjs.mjs/renderable/ui/uitextbutton.js +127 -0
- package/dist/melonjs.mjs/state/stage.js +236 -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 +363 -0
- package/dist/melonjs.mjs/text/bitmaptextdata.js +198 -0
- package/dist/melonjs.mjs/text/glyph.js +65 -0
- package/dist/melonjs.mjs/text/text.js +452 -0
- package/dist/melonjs.mjs/text/textmetrics.js +175 -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 +479 -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 +806 -0
- package/dist/melonjs.mjs/video/renderer.js +410 -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 +142 -0
- package/dist/melonjs.mjs/video/webgl/glshader.js +167 -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 +494 -0
- package/dist/melonjs.mjs/video/webgl/webgl_renderer.js +1035 -0
- package/dist/melonjs.module.d.ts +1298 -1359
- package/dist/melonjs.module.js +2072 -3520
- package/package.json +21 -16
- package/src/application/application.js +4 -5
- package/src/audio/audio.js +32 -32
- package/src/camera/camera2d.js +32 -33
- package/src/entity/entity.js +18 -19
- package/src/geometries/ellipse.js +17 -18
- package/src/geometries/line.js +6 -7
- package/src/geometries/path2d.js +33 -34
- package/src/geometries/point.js +1 -2
- package/src/geometries/poly.js +16 -18
- package/src/geometries/rectangle.js +19 -20
- package/src/geometries/roundrect.js +9 -10
- 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 +23 -24
- package/src/level/tiled/TMXTile.js +6 -7
- package/src/level/tiled/TMXTileMap.js +8 -10
- package/src/level/tiled/TMXTileset.js +3 -4
- package/src/level/tiled/TMXTilesetGroup.js +1 -2
- package/src/level/tiled/TMXUtils.js +5 -5
- package/src/level/tiled/renderer/TMXHexagonalRenderer.js +3 -4
- package/src/level/tiled/renderer/TMXIsometricRenderer.js +3 -4
- package/src/level/tiled/renderer/TMXOrthogonalRenderer.js +2 -3
- package/src/level/tiled/renderer/TMXRenderer.js +20 -21
- package/src/level/tiled/renderer/TMXStaggeredRenderer.js +1 -2
- package/src/loader/loader.js +20 -20
- package/src/math/color.js +21 -22
- package/src/math/math.js +16 -16
- package/src/math/matrix2.js +17 -18
- package/src/math/matrix3.js +26 -27
- package/src/math/observable_vector2.js +15 -16
- package/src/math/observable_vector3.js +17 -18
- package/src/math/vector2.js +10 -11
- package/src/math/vector3.js +11 -12
- package/src/particles/emitter.js +7 -8
- package/src/particles/particle.js +3 -4
- package/src/physics/body.js +29 -30
- package/src/physics/bounds.js +10 -10
- package/src/physics/collision.js +2 -2
- package/src/physics/detector.js +6 -6
- package/src/physics/quadtree.js +18 -23
- package/src/physics/sat.js +31 -31
- package/src/physics/world.js +6 -7
- package/src/plugin/plugin.js +5 -5
- package/src/renderable/collectable.js +4 -6
- package/src/renderable/colorlayer.js +6 -8
- package/src/renderable/container.js +25 -27
- package/src/renderable/dragndrop.js +14 -14
- package/src/renderable/imagelayer.js +14 -15
- package/src/renderable/light2d.js +4 -5
- package/src/renderable/nineslicesprite.js +17 -18
- package/src/renderable/renderable.js +26 -28
- package/src/renderable/sprite.js +29 -30
- package/src/renderable/trigger.js +16 -17
- package/src/renderable/ui/uibaseelement.js +8 -9
- package/src/renderable/ui/uispriteelement.js +8 -8
- package/src/renderable/ui/uitextbutton.js +15 -15
- package/src/state/stage.js +8 -9
- 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 +19 -20
- package/src/text/bitmaptextdata.js +3 -4
- package/src/text/glyph.js +1 -2
- package/src/text/text.js +24 -25
- package/src/text/textmetrics.js +9 -10
- package/src/tweens/tween.js +20 -21
- 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 +72 -73
- package/src/video/renderer.js +27 -28
- 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/buffer/vertex.js +1 -2
- package/src/video/webgl/glshader.js +12 -12
- package/src/video/webgl/webgl_compositor.js +42 -43
- package/src/video/webgl/webgl_renderer.js +76 -77
|
@@ -0,0 +1,393 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* melonJS Game Engine - v14.1.1
|
|
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 Vector2d from '../math/vector2.js';
|
|
9
|
+
import Bounds from '../physics/bounds.js';
|
|
10
|
+
import game from '../game.js';
|
|
11
|
+
import { globalToLocal, locked } from './pointerevent.js';
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* a temporary vector object
|
|
15
|
+
* @ignore
|
|
16
|
+
*/
|
|
17
|
+
var tmpVec = new Vector2d();
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* @classdesc
|
|
21
|
+
* a pointer object, representing a single finger on a touch enabled device.
|
|
22
|
+
* @class Pointer
|
|
23
|
+
* @augments Bounds
|
|
24
|
+
*/
|
|
25
|
+
class Pointer extends Bounds {
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* @ignore
|
|
29
|
+
*/
|
|
30
|
+
constructor(x = 0, y = 0, w = 1, h = 1) {
|
|
31
|
+
|
|
32
|
+
// parent constructor
|
|
33
|
+
super();
|
|
34
|
+
|
|
35
|
+
// initial coordinates/size
|
|
36
|
+
this.setMinMax(x, y, x + w, y + h);
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* constant for left button
|
|
40
|
+
* @public
|
|
41
|
+
* @type {number}
|
|
42
|
+
* @name LEFT
|
|
43
|
+
* @memberof Pointer
|
|
44
|
+
*/
|
|
45
|
+
this.LEFT = 0;
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* constant for middle button
|
|
49
|
+
* @public
|
|
50
|
+
* @type {number}
|
|
51
|
+
* @name MIDDLE
|
|
52
|
+
* @memberof Pointer
|
|
53
|
+
*/
|
|
54
|
+
this.MIDDLE = 1;
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* constant for right button
|
|
58
|
+
* @public
|
|
59
|
+
* @type {number}
|
|
60
|
+
* @name RIGHT
|
|
61
|
+
* @memberof Pointer
|
|
62
|
+
*/
|
|
63
|
+
this.RIGHT = 2;
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* the originating Event Object
|
|
67
|
+
* @public
|
|
68
|
+
* @type {PointerEvent|TouchEvent|MouseEvent}
|
|
69
|
+
* @name event
|
|
70
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/API/PointerEvent
|
|
71
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/API/TouchEvent
|
|
72
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent
|
|
73
|
+
* @memberof Pointer
|
|
74
|
+
*/
|
|
75
|
+
this.event = undefined;
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* a string containing the event's type.
|
|
79
|
+
* @public
|
|
80
|
+
* @type {string}
|
|
81
|
+
* @name type
|
|
82
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/API/Event/type
|
|
83
|
+
* @memberof Pointer
|
|
84
|
+
*/
|
|
85
|
+
this.type = undefined;
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* the button property indicates which button was pressed on the mouse to trigger the event.
|
|
90
|
+
* @public
|
|
91
|
+
* @type {number}
|
|
92
|
+
* @name button
|
|
93
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/button
|
|
94
|
+
* @memberof Pointer
|
|
95
|
+
*/
|
|
96
|
+
this.button = 0;
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* indicates whether or not the pointer device that created the event is the primary pointer.
|
|
100
|
+
* @public
|
|
101
|
+
* @type {boolean}
|
|
102
|
+
* @name isPrimary
|
|
103
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/API/PointerEvent/isPrimary
|
|
104
|
+
* @memberof Pointer
|
|
105
|
+
*/
|
|
106
|
+
this.isPrimary = false;
|
|
107
|
+
|
|
108
|
+
/**
|
|
109
|
+
* the horizontal coordinate at which the event occurred, relative to the left edge of the entire document.
|
|
110
|
+
* @public
|
|
111
|
+
* @type {number}
|
|
112
|
+
* @name pageX
|
|
113
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/pageX
|
|
114
|
+
* @memberof Pointer
|
|
115
|
+
*/
|
|
116
|
+
this.pageX = 0;
|
|
117
|
+
|
|
118
|
+
/**
|
|
119
|
+
* the vertical coordinate at which the event occurred, relative to the left edge of the entire document.
|
|
120
|
+
* @public
|
|
121
|
+
* @type {number}
|
|
122
|
+
* @name pageY
|
|
123
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/pageY
|
|
124
|
+
* @memberof Pointer
|
|
125
|
+
*/
|
|
126
|
+
this.pageY = 0;
|
|
127
|
+
|
|
128
|
+
/**
|
|
129
|
+
* the horizontal coordinate within the application's client area at which the event occurred
|
|
130
|
+
* @public
|
|
131
|
+
* @type {number}
|
|
132
|
+
* @name clientX
|
|
133
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/clientX
|
|
134
|
+
* @memberof Pointer
|
|
135
|
+
*/
|
|
136
|
+
this.clientX = 0;
|
|
137
|
+
|
|
138
|
+
/**
|
|
139
|
+
* the vertical coordinate within the application's client area at which the event occurred
|
|
140
|
+
* @public
|
|
141
|
+
* @type {number}
|
|
142
|
+
* @name clientY
|
|
143
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/clientY
|
|
144
|
+
* @memberof Pointer
|
|
145
|
+
*/
|
|
146
|
+
this.clientY = 0;
|
|
147
|
+
|
|
148
|
+
/**
|
|
149
|
+
* the difference in the X coordinate of the pointer since the previous move event
|
|
150
|
+
* @public
|
|
151
|
+
* @type {number}
|
|
152
|
+
* @name movementX
|
|
153
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/movementX
|
|
154
|
+
* @memberof Pointer
|
|
155
|
+
*/
|
|
156
|
+
this.movementX = 0;
|
|
157
|
+
|
|
158
|
+
/**
|
|
159
|
+
* the difference in the Y coordinate of the pointer since the previous move event
|
|
160
|
+
* @public
|
|
161
|
+
* @type {number}
|
|
162
|
+
* @name movementY
|
|
163
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/movementY
|
|
164
|
+
* @memberof Pointer
|
|
165
|
+
*/
|
|
166
|
+
this.movementY = 0;
|
|
167
|
+
|
|
168
|
+
/**
|
|
169
|
+
* an unsigned long representing the unit of the delta values scroll amount
|
|
170
|
+
* @public
|
|
171
|
+
* @type {number}
|
|
172
|
+
* @name deltaMode
|
|
173
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/API/WheelEvent/deltaMode
|
|
174
|
+
* @memberof Pointer
|
|
175
|
+
*/
|
|
176
|
+
this.deltaMode = 0;
|
|
177
|
+
|
|
178
|
+
/**
|
|
179
|
+
* a double representing the horizontal scroll amount in the Wheel Event deltaMode unit.
|
|
180
|
+
* @public
|
|
181
|
+
* @type {number}
|
|
182
|
+
* @name deltaX
|
|
183
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/API/WheelEvent/deltaX
|
|
184
|
+
* @memberof Pointer
|
|
185
|
+
*/
|
|
186
|
+
this.deltaX = 0;
|
|
187
|
+
|
|
188
|
+
/**
|
|
189
|
+
* a double representing the vertical scroll amount in the Wheel Event deltaMode unit.
|
|
190
|
+
* @public
|
|
191
|
+
* @type {number}
|
|
192
|
+
* @name deltaY
|
|
193
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/API/WheelEvent/deltaY
|
|
194
|
+
* @memberof Pointer
|
|
195
|
+
*/
|
|
196
|
+
this.deltaY = 0;
|
|
197
|
+
|
|
198
|
+
/**
|
|
199
|
+
* a double representing the scroll amount in the z-axis, in the Wheel Event deltaMode unit.
|
|
200
|
+
* @public
|
|
201
|
+
* @type {number}
|
|
202
|
+
* @name deltaZ
|
|
203
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/API/WheelEvent/deltaZ
|
|
204
|
+
* @memberof Pointer
|
|
205
|
+
*/
|
|
206
|
+
this.deltaZ = 0;
|
|
207
|
+
|
|
208
|
+
/**
|
|
209
|
+
* Event normalized X coordinate within the game canvas itself<br>
|
|
210
|
+
* <img src="images/event_coord.png"/>
|
|
211
|
+
* @public
|
|
212
|
+
* @type {number}
|
|
213
|
+
* @name gameX
|
|
214
|
+
* @memberof Pointer
|
|
215
|
+
*/
|
|
216
|
+
this.gameX = 0;
|
|
217
|
+
|
|
218
|
+
/**
|
|
219
|
+
* Event normalized Y coordinate within the game canvas itself<br>
|
|
220
|
+
* <img src="images/event_coord.png"/>
|
|
221
|
+
* @public
|
|
222
|
+
* @type {number}
|
|
223
|
+
* @name gameY
|
|
224
|
+
* @memberof Pointer
|
|
225
|
+
*/
|
|
226
|
+
this.gameY = 0;
|
|
227
|
+
|
|
228
|
+
/**
|
|
229
|
+
* Event X coordinate relative to the viewport
|
|
230
|
+
* @public
|
|
231
|
+
* @type {number}
|
|
232
|
+
* @name gameScreenX
|
|
233
|
+
* @memberof Pointer
|
|
234
|
+
*/
|
|
235
|
+
this.gameScreenX = 0;
|
|
236
|
+
|
|
237
|
+
/**
|
|
238
|
+
* Event Y coordinate relative to the viewport
|
|
239
|
+
* @public
|
|
240
|
+
* @type {number}
|
|
241
|
+
* @name gameScreenY
|
|
242
|
+
* @memberof Pointer
|
|
243
|
+
*/
|
|
244
|
+
this.gameScreenY = 0;
|
|
245
|
+
|
|
246
|
+
/**
|
|
247
|
+
* Event X coordinate relative to the map
|
|
248
|
+
* @public
|
|
249
|
+
* @type {number}
|
|
250
|
+
* @name gameWorldX
|
|
251
|
+
* @memberof Pointer
|
|
252
|
+
*/
|
|
253
|
+
this.gameWorldX = 0;
|
|
254
|
+
|
|
255
|
+
/**
|
|
256
|
+
* Event Y coordinate relative to the map
|
|
257
|
+
* @public
|
|
258
|
+
* @type {number}
|
|
259
|
+
* @name gameWorldY
|
|
260
|
+
* @memberof Pointer
|
|
261
|
+
*/
|
|
262
|
+
this.gameWorldY = 0;
|
|
263
|
+
|
|
264
|
+
/**
|
|
265
|
+
* Event X coordinate relative to the holding container
|
|
266
|
+
* @public
|
|
267
|
+
* @type {number}
|
|
268
|
+
* @name gameLocalX
|
|
269
|
+
* @memberof Pointer
|
|
270
|
+
*/
|
|
271
|
+
this.gameLocalX = 0;
|
|
272
|
+
|
|
273
|
+
/**
|
|
274
|
+
* Event Y coordinate relative to the holding container
|
|
275
|
+
* @public
|
|
276
|
+
* @type {number}
|
|
277
|
+
* @name gameLocalY
|
|
278
|
+
* @memberof Pointer
|
|
279
|
+
*/
|
|
280
|
+
this.gameLocalY = 0;
|
|
281
|
+
|
|
282
|
+
/**
|
|
283
|
+
* The unique identifier of the contact for a touch, mouse or pen
|
|
284
|
+
* @public
|
|
285
|
+
* @type {number}
|
|
286
|
+
* @name pointerId
|
|
287
|
+
* @memberof Pointer
|
|
288
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/API/PointerEvent/pointerId
|
|
289
|
+
*/
|
|
290
|
+
this.pointerId = undefined;
|
|
291
|
+
|
|
292
|
+
/**
|
|
293
|
+
* true if not originally a pointer event
|
|
294
|
+
* @public
|
|
295
|
+
* @type {boolean}
|
|
296
|
+
* @name isNormalized
|
|
297
|
+
* @memberof Pointer
|
|
298
|
+
*/
|
|
299
|
+
this.isNormalized = false;
|
|
300
|
+
|
|
301
|
+
/**
|
|
302
|
+
* true if the pointer is currently locked
|
|
303
|
+
* @public
|
|
304
|
+
* @type {boolean}
|
|
305
|
+
* @name locked
|
|
306
|
+
* @memberof Pointer
|
|
307
|
+
*/
|
|
308
|
+
this.locked = false;
|
|
309
|
+
|
|
310
|
+
// bind list for mouse buttons
|
|
311
|
+
this.bind = [ 0, 0, 0 ];
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
/**
|
|
315
|
+
* initialize the Pointer object using the given Event Object
|
|
316
|
+
* @name Pointer#set
|
|
317
|
+
* @private
|
|
318
|
+
* @param {Event} event - the original Event object
|
|
319
|
+
* @param {number} [pageX=0] - the horizontal coordinate at which the event occurred, relative to the left edge of the entire document
|
|
320
|
+
* @param {number} [pageY=0] - the vertical coordinate at which the event occurred, relative to the left edge of the entire document
|
|
321
|
+
* @param {number} [clientX=0] - the horizontal coordinate within the application's client area at which the event occurred
|
|
322
|
+
* @param {number} [clientY=0] - the vertical coordinate within the application's client area at which the event occurred
|
|
323
|
+
* @param {number} [pointerId=1] - the Pointer, Touch or Mouse event Id (1)
|
|
324
|
+
*/
|
|
325
|
+
setEvent(event, pageX = 0, pageY = 0, clientX = 0, clientY = 0, pointerId = 1) {
|
|
326
|
+
// the original event object
|
|
327
|
+
this.event = event;
|
|
328
|
+
|
|
329
|
+
this.pageX = pageX;
|
|
330
|
+
this.pageY = pageY;
|
|
331
|
+
this.clientX = clientX;
|
|
332
|
+
this.clientY = clientY;
|
|
333
|
+
|
|
334
|
+
// translate to local coordinates
|
|
335
|
+
globalToLocal(this.pageX, this.pageY, tmpVec);
|
|
336
|
+
this.gameScreenX = this.x = tmpVec.x;
|
|
337
|
+
this.gameScreenY = this.y = tmpVec.y;
|
|
338
|
+
|
|
339
|
+
// true if not originally a pointer event
|
|
340
|
+
this.isNormalized = (typeof globalThis.PointerEvent !== "undefined" && !(event instanceof globalThis.PointerEvent));
|
|
341
|
+
|
|
342
|
+
this.locked = locked;
|
|
343
|
+
this.movementX = event.movementX || 0;
|
|
344
|
+
this.movementY = event.movementY || 0;
|
|
345
|
+
|
|
346
|
+
if (event.type === "wheel") {
|
|
347
|
+
this.deltaMode = event.deltaMode || 0;
|
|
348
|
+
this.deltaX = event.deltaX || 0;
|
|
349
|
+
this.deltaY = event.deltaY || 0;
|
|
350
|
+
this.deltaZ = event.deltaZ || 0;
|
|
351
|
+
} else {
|
|
352
|
+
this.deltaMode = 0;
|
|
353
|
+
this.deltaX = 0;
|
|
354
|
+
this.deltaY = 0;
|
|
355
|
+
this.deltaZ = 0;
|
|
356
|
+
}
|
|
357
|
+
|
|
358
|
+
this.pointerId = pointerId;
|
|
359
|
+
|
|
360
|
+
this.isPrimary = (typeof event.isPrimary !== "undefined") ? event.isPrimary : true;
|
|
361
|
+
|
|
362
|
+
// in case of touch events, button is not defined
|
|
363
|
+
this.button = event.button || 0;
|
|
364
|
+
|
|
365
|
+
this.type = event.type;
|
|
366
|
+
|
|
367
|
+
// get the current screen to game world offset
|
|
368
|
+
if (typeof game.viewport !== "undefined") {
|
|
369
|
+
game.viewport.localToWorld(this.gameScreenX, this.gameScreenY, tmpVec);
|
|
370
|
+
}
|
|
371
|
+
|
|
372
|
+
/* Initialize the two coordinate space properties. */
|
|
373
|
+
this.gameWorldX = tmpVec.x;
|
|
374
|
+
this.gameWorldY = tmpVec.y;
|
|
375
|
+
|
|
376
|
+
// get the pointer size
|
|
377
|
+
if (this.isNormalized === false) {
|
|
378
|
+
// native PointerEvent
|
|
379
|
+
this.width = event.width || 1;
|
|
380
|
+
this.height = event.height || 1;
|
|
381
|
+
} else if (typeof(event.radiusX) === "number") {
|
|
382
|
+
// TouchEvent
|
|
383
|
+
this.width = (event.radiusX * 2) || 1;
|
|
384
|
+
this.height = (event.radiusY * 2) || 1;
|
|
385
|
+
} else {
|
|
386
|
+
this.width = this.height = 1;
|
|
387
|
+
}
|
|
388
|
+
}
|
|
389
|
+
}
|
|
390
|
+
|
|
391
|
+
var Pointer$1 = Pointer;
|
|
392
|
+
|
|
393
|
+
export { Pointer$1 as default };
|