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.
Files changed (214) hide show
  1. package/README.md +2 -0
  2. package/dist/melonjs.mjs/_virtual/_commonjsHelpers.js +10 -0
  3. package/dist/melonjs.mjs/_virtual/arraymultimap.js +10 -0
  4. package/dist/melonjs.mjs/_virtual/earcut.js +10 -0
  5. package/dist/melonjs.mjs/_virtual/howler.js +10 -0
  6. package/dist/melonjs.mjs/_virtual/index.js +10 -0
  7. package/dist/melonjs.mjs/_virtual/index2.js +10 -0
  8. package/dist/melonjs.mjs/_virtual/multimap.js +10 -0
  9. package/dist/melonjs.mjs/_virtual/setmultimap.js +10 -0
  10. package/dist/melonjs.mjs/application/application.js +240 -0
  11. package/dist/melonjs.mjs/audio/audio.js +536 -0
  12. package/dist/melonjs.mjs/camera/camera2d.js +732 -0
  13. package/dist/melonjs.mjs/entity/entity.js +248 -0
  14. package/dist/melonjs.mjs/game.js +29 -0
  15. package/dist/melonjs.mjs/geometries/ellipse.js +275 -0
  16. package/dist/melonjs.mjs/geometries/line.js +116 -0
  17. package/dist/melonjs.mjs/geometries/path2d.js +319 -0
  18. package/dist/melonjs.mjs/geometries/point.js +89 -0
  19. package/dist/melonjs.mjs/geometries/poly.js +500 -0
  20. package/dist/melonjs.mjs/geometries/rectangle.js +375 -0
  21. package/dist/melonjs.mjs/geometries/roundrect.js +168 -0
  22. package/dist/melonjs.mjs/index.js +248 -0
  23. package/dist/melonjs.mjs/input/gamepad.js +501 -0
  24. package/dist/melonjs.mjs/input/input.js +26 -0
  25. package/dist/melonjs.mjs/input/keyboard.js +470 -0
  26. package/dist/melonjs.mjs/input/pointer.js +393 -0
  27. package/dist/melonjs.mjs/input/pointerevent.js +818 -0
  28. package/dist/melonjs.mjs/lang/deprecated.js +157 -0
  29. package/dist/melonjs.mjs/level/level.js +297 -0
  30. package/dist/melonjs.mjs/level/tiled/TMXGroup.js +141 -0
  31. package/dist/melonjs.mjs/level/tiled/TMXLayer.js +448 -0
  32. package/dist/melonjs.mjs/level/tiled/TMXObject.js +355 -0
  33. package/dist/melonjs.mjs/level/tiled/TMXTile.js +194 -0
  34. package/dist/melonjs.mjs/level/tiled/TMXTileMap.js +639 -0
  35. package/dist/melonjs.mjs/level/tiled/TMXTileset.js +311 -0
  36. package/dist/melonjs.mjs/level/tiled/TMXTilesetGroup.js +83 -0
  37. package/dist/melonjs.mjs/level/tiled/TMXUtils.js +367 -0
  38. package/dist/melonjs.mjs/level/tiled/renderer/TMXHexagonalRenderer.js +506 -0
  39. package/dist/melonjs.mjs/level/tiled/renderer/TMXIsometricRenderer.js +220 -0
  40. package/dist/melonjs.mjs/level/tiled/renderer/TMXOrthogonalRenderer.js +157 -0
  41. package/dist/melonjs.mjs/level/tiled/renderer/TMXRenderer.js +125 -0
  42. package/dist/melonjs.mjs/level/tiled/renderer/TMXStaggeredRenderer.js +109 -0
  43. package/dist/melonjs.mjs/loader/loader.js +801 -0
  44. package/dist/melonjs.mjs/loader/loadingscreen.js +120 -0
  45. package/dist/melonjs.mjs/loader/melonjs_logo.png.js +11 -0
  46. package/dist/melonjs.mjs/math/color.js +618 -0
  47. package/dist/melonjs.mjs/math/math.js +218 -0
  48. package/dist/melonjs.mjs/math/matrix2.js +503 -0
  49. package/dist/melonjs.mjs/math/matrix3.js +681 -0
  50. package/dist/melonjs.mjs/math/observable_vector2.js +471 -0
  51. package/dist/melonjs.mjs/math/observable_vector3.js +561 -0
  52. package/dist/melonjs.mjs/math/vector2.js +528 -0
  53. package/dist/melonjs.mjs/math/vector3.js +569 -0
  54. package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/src/arraymultimap.js +73 -0
  55. package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/src/index.js +21 -0
  56. package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/src/multimap.js +324 -0
  57. package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/src/setmultimap.js +69 -0
  58. package/dist/melonjs.mjs/node_modules/earcut/src/earcut.js +691 -0
  59. package/dist/melonjs.mjs/node_modules/eventemitter3/index.js +350 -0
  60. package/dist/melonjs.mjs/node_modules/howler/dist/howler.js +3241 -0
  61. package/dist/melonjs.mjs/particles/emitter.js +267 -0
  62. package/dist/melonjs.mjs/particles/particle.js +188 -0
  63. package/dist/melonjs.mjs/particles/settings.js +319 -0
  64. package/dist/melonjs.mjs/physics/body.js +704 -0
  65. package/dist/melonjs.mjs/physics/bounds.js +460 -0
  66. package/dist/melonjs.mjs/physics/collision.js +132 -0
  67. package/dist/melonjs.mjs/physics/detector.js +194 -0
  68. package/dist/melonjs.mjs/physics/quadtree.js +391 -0
  69. package/dist/melonjs.mjs/physics/response.js +57 -0
  70. package/dist/melonjs.mjs/physics/sat.js +483 -0
  71. package/dist/melonjs.mjs/physics/world.js +221 -0
  72. package/dist/melonjs.mjs/plugin/plugin.js +141 -0
  73. package/dist/melonjs.mjs/renderable/collectable.js +62 -0
  74. package/dist/melonjs.mjs/renderable/colorlayer.js +80 -0
  75. package/dist/melonjs.mjs/renderable/container.js +1018 -0
  76. package/dist/melonjs.mjs/renderable/dragndrop.js +224 -0
  77. package/dist/melonjs.mjs/renderable/imagelayer.js +306 -0
  78. package/dist/melonjs.mjs/renderable/light2d.js +156 -0
  79. package/dist/melonjs.mjs/renderable/nineslicesprite.js +247 -0
  80. package/dist/melonjs.mjs/renderable/renderable.js +783 -0
  81. package/dist/melonjs.mjs/renderable/sprite.js +654 -0
  82. package/dist/melonjs.mjs/renderable/trigger.js +157 -0
  83. package/dist/melonjs.mjs/renderable/ui/uibaseelement.js +213 -0
  84. package/dist/melonjs.mjs/renderable/ui/uispriteelement.js +226 -0
  85. package/dist/melonjs.mjs/renderable/ui/uitextbutton.js +128 -0
  86. package/dist/melonjs.mjs/state/stage.js +237 -0
  87. package/dist/melonjs.mjs/state/state.js +596 -0
  88. package/dist/melonjs.mjs/system/device.js +909 -0
  89. package/dist/melonjs.mjs/system/dom.js +78 -0
  90. package/dist/melonjs.mjs/system/event.js +537 -0
  91. package/dist/melonjs.mjs/system/platform.js +41 -0
  92. package/dist/melonjs.mjs/system/pooling.js +209 -0
  93. package/dist/melonjs.mjs/system/save.js +157 -0
  94. package/dist/melonjs.mjs/system/timer.js +286 -0
  95. package/dist/melonjs.mjs/text/bitmaptext.js +364 -0
  96. package/dist/melonjs.mjs/text/bitmaptextdata.js +199 -0
  97. package/dist/melonjs.mjs/text/glyph.js +66 -0
  98. package/dist/melonjs.mjs/text/text.js +453 -0
  99. package/dist/melonjs.mjs/text/textmetrics.js +176 -0
  100. package/dist/melonjs.mjs/text/textstyle.js +23 -0
  101. package/dist/melonjs.mjs/tweens/easing.js +336 -0
  102. package/dist/melonjs.mjs/tweens/interpolation.js +112 -0
  103. package/dist/melonjs.mjs/tweens/tween.js +480 -0
  104. package/dist/melonjs.mjs/utils/agent.js +76 -0
  105. package/dist/melonjs.mjs/utils/array.js +63 -0
  106. package/dist/melonjs.mjs/utils/file.js +42 -0
  107. package/dist/melonjs.mjs/utils/function.js +70 -0
  108. package/dist/melonjs.mjs/utils/string.js +82 -0
  109. package/dist/melonjs.mjs/utils/utils.js +173 -0
  110. package/dist/melonjs.mjs/video/canvas/canvas_renderer.js +807 -0
  111. package/dist/melonjs.mjs/video/renderer.js +411 -0
  112. package/dist/melonjs.mjs/video/texture/atlas.js +519 -0
  113. package/dist/melonjs.mjs/video/texture/cache.js +143 -0
  114. package/dist/melonjs.mjs/video/texture/canvas_texture.js +144 -0
  115. package/dist/melonjs.mjs/video/video.js +462 -0
  116. package/dist/melonjs.mjs/video/webgl/buffer/vertex.js +143 -0
  117. package/dist/melonjs.mjs/video/webgl/glshader.js +168 -0
  118. package/dist/melonjs.mjs/video/webgl/shaders/primitive.frag.js +10 -0
  119. package/dist/melonjs.mjs/video/webgl/shaders/primitive.vert.js +10 -0
  120. package/dist/melonjs.mjs/video/webgl/shaders/quad.frag.js +10 -0
  121. package/dist/melonjs.mjs/video/webgl/shaders/quad.vert.js +10 -0
  122. package/dist/melonjs.mjs/video/webgl/utils/attributes.js +25 -0
  123. package/dist/melonjs.mjs/video/webgl/utils/precision.js +20 -0
  124. package/dist/melonjs.mjs/video/webgl/utils/program.js +67 -0
  125. package/dist/melonjs.mjs/video/webgl/utils/string.js +25 -0
  126. package/dist/melonjs.mjs/video/webgl/utils/uniforms.js +92 -0
  127. package/dist/melonjs.mjs/video/webgl/webgl_compositor.js +495 -0
  128. package/dist/melonjs.mjs/video/webgl/webgl_renderer.js +1036 -0
  129. package/dist/melonjs.module.d.ts +1163 -1163
  130. package/dist/melonjs.module.js +1903 -3274
  131. package/package.json +22 -17
  132. package/src/application/application.js +3 -3
  133. package/src/audio/audio.js +32 -32
  134. package/src/camera/camera2d.js +31 -31
  135. package/src/entity/entity.js +17 -17
  136. package/src/geometries/ellipse.js +16 -16
  137. package/src/geometries/line.js +5 -5
  138. package/src/geometries/path2d.js +32 -32
  139. package/src/geometries/poly.js +15 -15
  140. package/src/geometries/rectangle.js +18 -18
  141. package/src/geometries/roundrect.js +8 -8
  142. package/src/input/gamepad.js +15 -15
  143. package/src/input/keyboard.js +12 -12
  144. package/src/input/pointer.js +6 -6
  145. package/src/input/pointerevent.js +12 -12
  146. package/src/lang/deprecated.js +12 -12
  147. package/src/level/level.js +25 -25
  148. package/src/level/tiled/TMXLayer.js +22 -22
  149. package/src/level/tiled/TMXTile.js +5 -5
  150. package/src/level/tiled/TMXTileMap.js +6 -6
  151. package/src/level/tiled/TMXTileset.js +2 -2
  152. package/src/level/tiled/TMXUtils.js +5 -5
  153. package/src/level/tiled/renderer/TMXHexagonalRenderer.js +2 -2
  154. package/src/level/tiled/renderer/TMXIsometricRenderer.js +2 -2
  155. package/src/level/tiled/renderer/TMXOrthogonalRenderer.js +1 -1
  156. package/src/level/tiled/renderer/TMXRenderer.js +19 -19
  157. package/src/loader/loader.js +20 -20
  158. package/src/math/color.js +20 -20
  159. package/src/math/math.js +16 -16
  160. package/src/math/matrix2.js +16 -16
  161. package/src/math/matrix3.js +25 -25
  162. package/src/math/observable_vector2.js +14 -14
  163. package/src/math/observable_vector3.js +16 -16
  164. package/src/math/vector2.js +9 -9
  165. package/src/math/vector3.js +10 -10
  166. package/src/particles/emitter.js +6 -6
  167. package/src/particles/particle.js +2 -2
  168. package/src/physics/body.js +28 -28
  169. package/src/physics/bounds.js +8 -8
  170. package/src/physics/collision.js +2 -2
  171. package/src/physics/detector.js +6 -6
  172. package/src/physics/quadtree.js +11 -11
  173. package/src/physics/sat.js +31 -31
  174. package/src/physics/world.js +5 -5
  175. package/src/plugin/plugin.js +5 -5
  176. package/src/renderable/collectable.js +3 -3
  177. package/src/renderable/colorlayer.js +5 -5
  178. package/src/renderable/container.js +21 -21
  179. package/src/renderable/dragndrop.js +14 -14
  180. package/src/renderable/imagelayer.js +13 -13
  181. package/src/renderable/light2d.js +3 -3
  182. package/src/renderable/nineslicesprite.js +16 -16
  183. package/src/renderable/renderable.js +23 -23
  184. package/src/renderable/sprite.js +28 -28
  185. package/src/renderable/trigger.js +15 -15
  186. package/src/renderable/ui/uibaseelement.js +7 -7
  187. package/src/renderable/ui/uispriteelement.js +6 -6
  188. package/src/renderable/ui/uitextbutton.js +13 -13
  189. package/src/state/stage.js +7 -7
  190. package/src/state/state.js +17 -17
  191. package/src/system/device.js +11 -11
  192. package/src/system/event.js +10 -10
  193. package/src/system/pooling.js +9 -9
  194. package/src/system/save.js +2 -2
  195. package/src/system/timer.js +10 -10
  196. package/src/text/bitmaptext.js +18 -18
  197. package/src/text/bitmaptextdata.js +2 -2
  198. package/src/text/text.js +23 -23
  199. package/src/text/textmetrics.js +8 -8
  200. package/src/tweens/tween.js +19 -19
  201. package/src/utils/agent.js +5 -5
  202. package/src/utils/array.js +4 -4
  203. package/src/utils/file.js +2 -2
  204. package/src/utils/function.js +6 -6
  205. package/src/utils/string.js +5 -5
  206. package/src/utils/utils.js +4 -4
  207. package/src/video/canvas/canvas_renderer.js +70 -70
  208. package/src/video/renderer.js +26 -26
  209. package/src/video/texture/atlas.js +22 -22
  210. package/src/video/texture/canvas_texture.js +9 -9
  211. package/src/video/video.js +17 -17
  212. package/src/video/webgl/glshader.js +10 -10
  213. package/src/video/webgl/webgl_compositor.js +41 -41
  214. package/src/video/webgl/webgl_renderer.js +75 -75
@@ -0,0 +1,336 @@
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
+ /*
9
+ * Tween.js - Licensed under the MIT license
10
+ * https://github.com/tweenjs/tween.js
11
+ */
12
+
13
+ /* eslint-disable quotes, keyword-spacing, comma-spacing, no-return-assign */
14
+
15
+ /**
16
+ * Easing Function :<br>
17
+ * <p>
18
+ * Easing.Linear.None<br>
19
+ * Easing.Quadratic.In<br>
20
+ * Easing.Quadratic.Out<br>
21
+ * Easing.Quadratic.InOut<br>
22
+ * Easing.Cubic.In<br>
23
+ * Easing.Cubic.Out<br>
24
+ * Easing.Cubic.InOut<br>
25
+ * Easing.Quartic.In<br>
26
+ * Easing.Quartic.Out<br>
27
+ * Easing.Quartic.InOut<br>
28
+ * Easing.Quintic.In<br>
29
+ * Easing.Quintic.Out<br>
30
+ * Easing.Quintic.InOut<br>
31
+ * Easing.Sinusoidal.In<br>
32
+ * Easing.Sinusoidal.Out<br>
33
+ * Easing.Sinusoidal.InOut<br>
34
+ * Easing.Exponential.In<br>
35
+ * Easing.Exponential.Out<br>
36
+ * Easing.Exponential.InOut<br>
37
+ * Easing.Circular.In<br>
38
+ * Easing.Circular.Out<br>
39
+ * Easing.Circular.InOut<br>
40
+ * Easing.Elastic.In<br>
41
+ * Easing.Elastic.Out<br>
42
+ * Easing.Elastic.InOut<br>
43
+ * Easing.Back.In<br>
44
+ * Easing.Back.Out<br>
45
+ * Easing.Back.InOut<br>
46
+ * Easing.Bounce.In<br>
47
+ * Easing.Bounce.Out<br>
48
+ * Easing.Bounce.InOut
49
+ * </p>
50
+ * @public
51
+ * @constant
52
+ * @enum {Function}
53
+ * @name Easing
54
+ * @memberof Tween
55
+ */
56
+ let Easing = {
57
+
58
+ Linear: {
59
+ /** @ignore */
60
+ None: function ( k ) {
61
+
62
+ return k;
63
+
64
+ }
65
+
66
+ },
67
+
68
+ Quadratic: {
69
+ /** @ignore */
70
+ In: function ( k ) {
71
+
72
+ return k * k;
73
+
74
+ },
75
+ /** @ignore */
76
+ Out: function ( k ) {
77
+
78
+ return k * ( 2 - k );
79
+
80
+ },
81
+ /** @ignore */
82
+ InOut: function ( k ) {
83
+
84
+ if ( ( k *= 2 ) < 1 ) return 0.5 * k * k;
85
+ return - 0.5 * ( --k * ( k - 2 ) - 1 );
86
+
87
+ }
88
+
89
+ },
90
+
91
+ Cubic: {
92
+ /** @ignore */
93
+ In: function ( k ) {
94
+
95
+ return k * k * k;
96
+
97
+ },
98
+ /** @ignore */
99
+ Out: function ( k ) {
100
+
101
+ return --k * k * k + 1;
102
+
103
+ },
104
+ /** @ignore */
105
+ InOut: function ( k ) {
106
+
107
+ if ( ( k *= 2 ) < 1 ) return 0.5 * k * k * k;
108
+ return 0.5 * ( ( k -= 2 ) * k * k + 2 );
109
+
110
+ }
111
+
112
+ },
113
+
114
+ Quartic: {
115
+ /** @ignore */
116
+ In: function ( k ) {
117
+
118
+ return k * k * k * k;
119
+
120
+ },
121
+ /** @ignore */
122
+ Out: function ( k ) {
123
+
124
+ return 1 - ( --k * k * k * k );
125
+
126
+ },
127
+ /** @ignore */
128
+ InOut: function ( k ) {
129
+
130
+ if ( ( k *= 2 ) < 1) return 0.5 * k * k * k * k;
131
+ return - 0.5 * ( ( k -= 2 ) * k * k * k - 2 );
132
+
133
+ }
134
+
135
+ },
136
+
137
+ Quintic: {
138
+ /** @ignore */
139
+ In: function ( k ) {
140
+
141
+ return k * k * k * k * k;
142
+
143
+ },
144
+ /** @ignore */
145
+ Out: function ( k ) {
146
+
147
+ return --k * k * k * k * k + 1;
148
+
149
+ },
150
+ /** @ignore */
151
+ InOut: function ( k ) {
152
+
153
+ if ( ( k *= 2 ) < 1 ) return 0.5 * k * k * k * k * k;
154
+ return 0.5 * ( ( k -= 2 ) * k * k * k * k + 2 );
155
+
156
+ }
157
+
158
+ },
159
+
160
+ Sinusoidal: {
161
+ /** @ignore */
162
+ In: function ( k ) {
163
+
164
+ return 1 - Math.cos( k * Math.PI / 2 );
165
+
166
+ },
167
+ /** @ignore */
168
+ Out: function ( k ) {
169
+
170
+ return Math.sin( k * Math.PI / 2 );
171
+
172
+ },
173
+ /** @ignore */
174
+ InOut: function ( k ) {
175
+
176
+ return 0.5 * ( 1 - Math.cos( Math.PI * k ) );
177
+
178
+ }
179
+
180
+ },
181
+
182
+ Exponential: {
183
+ /** @ignore */
184
+ In: function ( k ) {
185
+
186
+ return k === 0 ? 0 : Math.pow( 1024, k - 1 );
187
+
188
+ },
189
+ /** @ignore */
190
+ Out: function ( k ) {
191
+
192
+ return k === 1 ? 1 : 1 - Math.pow( 2, - 10 * k );
193
+
194
+ },
195
+ /** @ignore */
196
+ InOut: function ( k ) {
197
+
198
+ if ( k === 0 ) return 0;
199
+ if ( k === 1 ) return 1;
200
+ if ( ( k *= 2 ) < 1 ) return 0.5 * Math.pow( 1024, k - 1 );
201
+ return 0.5 * ( - Math.pow( 2, - 10 * ( k - 1 ) ) + 2 );
202
+
203
+ }
204
+
205
+ },
206
+
207
+ Circular: {
208
+ /** @ignore */
209
+ In: function ( k ) {
210
+
211
+ return 1 - Math.sqrt( 1 - k * k );
212
+
213
+ },
214
+ /** @ignore */
215
+ Out: function ( k ) {
216
+
217
+ return Math.sqrt( 1 - ( --k * k ) );
218
+
219
+ },
220
+ /** @ignore */
221
+ InOut: function ( k ) {
222
+
223
+ if ( ( k *= 2 ) < 1) return - 0.5 * ( Math.sqrt( 1 - k * k) - 1);
224
+ return 0.5 * ( Math.sqrt( 1 - ( k -= 2) * k) + 1);
225
+
226
+ }
227
+
228
+ },
229
+
230
+ Elastic: {
231
+ /** @ignore */
232
+ In: function ( k ) {
233
+ if (k === 0) {
234
+ return 0;
235
+ }
236
+ if (k === 1) {
237
+ return 1;
238
+ }
239
+ return -Math.pow(2, 10 * (k - 1)) * Math.sin((k - 1.1) * 5 * Math.PI);
240
+ },
241
+ /** @ignore */
242
+ Out: function ( k ) {
243
+ if (k === 0) {
244
+ return 0;
245
+ }
246
+ if (k === 1) {
247
+ return 1;
248
+ }
249
+ return Math.pow(2, -10 * k) * Math.sin((k - 0.1) * 5 * Math.PI) + 1;
250
+
251
+ },
252
+ /** @ignore */
253
+ InOut: function ( k ) {
254
+ if (k === 0) {
255
+ return 0;
256
+ }
257
+ if (k === 1) {
258
+ return 1;
259
+ }
260
+ k *= 2;
261
+ if (k < 1) {
262
+ return -0.5 * Math.pow(2, 10 * (k - 1)) * Math.sin((k - 1.1) * 5 * Math.PI);
263
+ }
264
+ return 0.5 * Math.pow(2, -10 * (k - 1)) * Math.sin((k - 1.1) * 5 * Math.PI) + 1;
265
+ }
266
+
267
+ },
268
+
269
+ Back: {
270
+ /** @ignore */
271
+ In: function ( k ) {
272
+
273
+ var s = 1.70158;
274
+ return k * k * ( ( s + 1 ) * k - s );
275
+
276
+ },
277
+ /** @ignore */
278
+ Out: function ( k ) {
279
+
280
+ var s = 1.70158;
281
+ return --k * k * ( ( s + 1 ) * k + s ) + 1;
282
+
283
+ },
284
+ /** @ignore */
285
+ InOut: function ( k ) {
286
+
287
+ var s = 1.70158 * 1.525;
288
+ if ( ( k *= 2 ) < 1 ) return 0.5 * ( k * k * ( ( s + 1 ) * k - s ) );
289
+ return 0.5 * ( ( k -= 2 ) * k * ( ( s + 1 ) * k + s ) + 2 );
290
+
291
+ }
292
+
293
+ },
294
+
295
+ Bounce: {
296
+ /** @ignore */
297
+ In: function ( k ) {
298
+
299
+ return 1 - Easing.Bounce.Out( 1 - k );
300
+
301
+ },
302
+ /** @ignore */
303
+ Out: function ( k ) {
304
+
305
+ if ( k < ( 1 / 2.75 ) ) {
306
+
307
+ return 7.5625 * k * k;
308
+
309
+ } else if ( k < ( 2 / 2.75 ) ) {
310
+
311
+ return 7.5625 * ( k -= ( 1.5 / 2.75 ) ) * k + 0.75;
312
+
313
+ } else if ( k < ( 2.5 / 2.75 ) ) {
314
+
315
+ return 7.5625 * ( k -= ( 2.25 / 2.75 ) ) * k + 0.9375;
316
+
317
+ } else {
318
+
319
+ return 7.5625 * ( k -= ( 2.625 / 2.75 ) ) * k + 0.984375;
320
+
321
+ }
322
+
323
+ },
324
+ /** @ignore */
325
+ InOut: function ( k ) {
326
+
327
+ if ( k < 0.5 ) return Easing.Bounce.In( k * 2 ) * 0.5;
328
+ return Easing.Bounce.Out( k * 2 - 1 ) * 0.5 + 0.5;
329
+
330
+ }
331
+
332
+ }
333
+
334
+ };
335
+
336
+ export { Easing };
@@ -0,0 +1,112 @@
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
+ /*
9
+ * Tween.js - Licensed under the MIT license
10
+ * https://github.com/tweenjs/tween.js
11
+ */
12
+
13
+ /**
14
+ * Interpolation Function :<br>
15
+ * <p>
16
+ * Interpolation.Linear<br>
17
+ * Interpolation.Bezier<br>
18
+ * Interpolation.CatmullRom
19
+ * </p>
20
+ * @public
21
+ * @constant
22
+ * @enum {Function}
23
+ * @name Interpolation
24
+ * @memberof Tween
25
+ */
26
+ let Interpolation = {
27
+ /** @ignore */
28
+ Linear: function ( v, k ) {
29
+
30
+ var m = v.length - 1, f = m * k, i = Math.floor( f ), fn = Interpolation.Utils.Linear;
31
+
32
+ if ( k < 0 ) return fn( v[ 0 ], v[ 1 ], f );
33
+ if ( k > 1 ) return fn( v[ m ], v[ m - 1 ], m - f );
34
+
35
+ return fn( v[ i ], v[ i + 1 > m ? m : i + 1 ], f - i );
36
+
37
+ },
38
+ /** @ignore */
39
+ Bezier: function ( v, k ) {
40
+
41
+ var b = 0, n = v.length - 1, pw = Math.pow, bn = Interpolation.Utils.Bernstein, i;
42
+
43
+ for ( i = 0; i <= n; i++ ) {
44
+ b += pw( 1 - k, n - i ) * pw( k, i ) * v[ i ] * bn( n, i );
45
+ }
46
+
47
+ return b;
48
+
49
+ },
50
+ /** @ignore */
51
+ CatmullRom: function ( v, k ) {
52
+
53
+ var m = v.length - 1, f = m * k, i = Math.floor( f ), fn = Interpolation.Utils.CatmullRom;
54
+
55
+ if ( v[ 0 ] === v[ m ] ) {
56
+
57
+ if ( k < 0 ) i = Math.floor( f = m * ( 1 + k ) );
58
+
59
+ return fn( v[ ( i - 1 + m ) % m ], v[ i ], v[ ( i + 1 ) % m ], v[ ( i + 2 ) % m ], f - i );
60
+
61
+ } else {
62
+
63
+ if ( k < 0 ) return v[ 0 ] - ( fn( v[ 0 ], v[ 0 ], v[ 1 ], v[ 1 ], -f ) - v[ 0 ] );
64
+ if ( k > 1 ) return v[ m ] - ( fn( v[ m ], v[ m ], v[ m - 1 ], v[ m - 1 ], f - m ) - v[ m ] );
65
+
66
+ return fn( v[ i ? i - 1 : 0 ], v[ i ], v[ m < i + 1 ? m : i + 1 ], v[ m < i + 2 ? m : i + 2 ], f - i );
67
+
68
+ }
69
+
70
+ },
71
+
72
+ Utils: {
73
+ /** @ignore */
74
+ Linear: function ( p0, p1, t ) {
75
+
76
+ return ( p1 - p0 ) * t + p0;
77
+
78
+ },
79
+ /** @ignore */
80
+ Bernstein: function ( n, i ) {
81
+
82
+ var fc = Interpolation.Utils.Factorial;
83
+ return fc( n ) / fc( i ) / fc( n - i );
84
+
85
+ },
86
+ /* @ignore */
87
+ Factorial: ( function () {
88
+
89
+ var a = [ 1 ];
90
+
91
+ return function ( n ) {
92
+
93
+ var s = 1, i;
94
+ if ( a[ n ] ) return a[ n ];
95
+ for ( i = n; i > 1; i-- ) s *= i;
96
+ a[ n ] = s;
97
+ return s;
98
+
99
+ };
100
+
101
+ } )(),
102
+ /** @ignore */
103
+ CatmullRom: function ( p0, p1, p2, p3, t ) {
104
+
105
+ var v0 = ( p2 - p0 ) * 0.5, v1 = ( p3 - p1 ) * 0.5, t2 = t * t, t3 = t * t2;
106
+ return ( 2 * p1 - 2 * p2 + v0 + v1 ) * t3 + ( - 3 * p1 + 3 * p2 - 2 * v0 - v1 ) * t2 + v0 * t + p1;
107
+ }
108
+ }
109
+
110
+ };
111
+
112
+ export { Interpolation };