melonjs 15.3.0 → 15.4.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 (287) hide show
  1. package/dist/melonjs.mjs/_virtual/_commonjsHelpers.js +1 -1
  2. package/dist/melonjs.mjs/_virtual/earcut.js +1 -1
  3. package/dist/melonjs.mjs/_virtual/howler.js +1 -1
  4. package/dist/melonjs.mjs/_virtual/index.js +1 -1
  5. package/dist/melonjs.mjs/application/application.js +53 -5
  6. package/dist/melonjs.mjs/application/header.js +2 -2
  7. package/dist/melonjs.mjs/application/resize.js +4 -8
  8. package/dist/melonjs.mjs/application/settings.js +5 -5
  9. package/dist/melonjs.mjs/audio/audio.js +4 -6
  10. package/dist/melonjs.mjs/camera/camera2d.js +12 -14
  11. package/dist/melonjs.mjs/const.js +1 -1
  12. package/dist/melonjs.mjs/entity/entity.js +3 -4
  13. package/dist/melonjs.mjs/geometries/ellipse.js +26 -59
  14. package/dist/melonjs.mjs/geometries/line.js +18 -25
  15. package/dist/melonjs.mjs/geometries/path2d.js +16 -13
  16. package/dist/melonjs.mjs/geometries/point.js +8 -16
  17. package/dist/melonjs.mjs/geometries/poly.js +40 -97
  18. package/dist/melonjs.mjs/geometries/rectangle.js +37 -91
  19. package/dist/melonjs.mjs/geometries/roundrect.js +26 -35
  20. package/dist/melonjs.mjs/index.js +6 -6
  21. package/dist/melonjs.mjs/input/gamepad.js +1 -1
  22. package/dist/melonjs.mjs/input/input.js +1 -1
  23. package/dist/melonjs.mjs/input/keyboard.js +3 -3
  24. package/dist/melonjs.mjs/input/pointer.js +4 -4
  25. package/dist/melonjs.mjs/input/pointerevent.js +6 -7
  26. package/dist/melonjs.mjs/lang/console.js +1 -1
  27. package/dist/melonjs.mjs/lang/deprecated.js +2 -2
  28. package/dist/melonjs.mjs/level/level.js +1 -1
  29. package/dist/melonjs.mjs/level/tiled/TMXGroup.js +1 -1
  30. package/dist/melonjs.mjs/level/tiled/TMXLayer.js +16 -33
  31. package/dist/melonjs.mjs/level/tiled/TMXObject.js +3 -4
  32. package/dist/melonjs.mjs/level/tiled/TMXTile.js +4 -4
  33. package/dist/melonjs.mjs/level/tiled/TMXTileMap.js +3 -3
  34. package/dist/melonjs.mjs/level/tiled/TMXTileset.js +4 -7
  35. package/dist/melonjs.mjs/level/tiled/TMXTilesetGroup.js +2 -2
  36. package/dist/melonjs.mjs/level/tiled/TMXUtils.js +26 -29
  37. package/dist/melonjs.mjs/level/tiled/constants.js +1 -1
  38. package/dist/melonjs.mjs/level/tiled/renderer/TMXHexagonalRenderer.js +3 -3
  39. package/dist/melonjs.mjs/level/tiled/renderer/TMXIsometricRenderer.js +2 -2
  40. package/dist/melonjs.mjs/level/tiled/renderer/TMXOrthogonalRenderer.js +2 -2
  41. package/dist/melonjs.mjs/level/tiled/renderer/TMXRenderer.js +2 -2
  42. package/dist/melonjs.mjs/level/tiled/renderer/TMXStaggeredRenderer.js +2 -2
  43. package/dist/melonjs.mjs/level/tiled/renderer/autodetect.js +1 -1
  44. package/dist/melonjs.mjs/loader/cache.js +1 -1
  45. package/dist/melonjs.mjs/loader/loader.js +1 -1
  46. package/dist/melonjs.mjs/loader/loadingscreen.js +1 -1
  47. package/dist/melonjs.mjs/loader/melonjs_logo.png.js +1 -1
  48. package/dist/melonjs.mjs/loader/parser.js +4 -5
  49. package/dist/melonjs.mjs/loader/settings.js +1 -1
  50. package/dist/melonjs.mjs/math/color.js +2 -2
  51. package/dist/melonjs.mjs/math/math.js +1 -1
  52. package/dist/melonjs.mjs/math/matrix2.js +5 -59
  53. package/dist/melonjs.mjs/math/matrix3.js +82 -141
  54. package/dist/melonjs.mjs/math/observable_vector2.js +7 -7
  55. package/dist/melonjs.mjs/math/observable_vector3.js +5 -5
  56. package/dist/melonjs.mjs/math/vector2.js +7 -91
  57. package/dist/melonjs.mjs/math/vector3.js +6 -90
  58. package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/esm/arraymultimap.js +1 -1
  59. package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/esm/multimap.js +1 -1
  60. package/dist/melonjs.mjs/node_modules/earcut/src/earcut.js +1 -1
  61. package/dist/melonjs.mjs/node_modules/eventemitter3/index.js +1 -1
  62. package/dist/melonjs.mjs/node_modules/eventemitter3/index2.js +1 -1
  63. package/dist/melonjs.mjs/node_modules/howler/dist/howler.js +1 -1
  64. package/dist/melonjs.mjs/particles/emitter.js +2 -2
  65. package/dist/melonjs.mjs/particles/particle.js +2 -2
  66. package/dist/melonjs.mjs/particles/settings.js +1 -1
  67. package/dist/melonjs.mjs/physics/body.js +22 -20
  68. package/dist/melonjs.mjs/physics/bounds.js +27 -33
  69. package/dist/melonjs.mjs/physics/collision.js +5 -5
  70. package/dist/melonjs.mjs/physics/detector.js +10 -10
  71. package/dist/melonjs.mjs/physics/quadtree.js +5 -5
  72. package/dist/melonjs.mjs/physics/response.js +1 -1
  73. package/dist/melonjs.mjs/physics/sat.js +3 -4
  74. package/dist/melonjs.mjs/physics/world.js +6 -9
  75. package/dist/melonjs.mjs/plugin/plugin.js +3 -3
  76. package/dist/melonjs.mjs/renderable/collectable.js +2 -2
  77. package/dist/melonjs.mjs/renderable/colorlayer.js +4 -4
  78. package/dist/melonjs.mjs/renderable/container.js +25 -25
  79. package/dist/melonjs.mjs/renderable/draggable.js +1 -1
  80. package/dist/melonjs.mjs/renderable/dragndrop.js +1 -1
  81. package/dist/melonjs.mjs/renderable/imagelayer.js +4 -4
  82. package/dist/melonjs.mjs/renderable/light2d.js +3 -3
  83. package/dist/melonjs.mjs/renderable/nineslicesprite.js +2 -2
  84. package/dist/melonjs.mjs/renderable/renderable.js +26 -26
  85. package/dist/melonjs.mjs/renderable/sprite.js +3 -3
  86. package/dist/melonjs.mjs/renderable/text/bitmaptext.js +421 -0
  87. package/dist/melonjs.mjs/renderable/text/bitmaptextdata.js +195 -0
  88. package/dist/melonjs.mjs/renderable/text/glyph.js +65 -0
  89. package/dist/melonjs.mjs/renderable/text/text.js +422 -0
  90. package/dist/melonjs.mjs/renderable/text/textmetrics.js +175 -0
  91. package/dist/melonjs.mjs/renderable/text/textstyle.js +21 -0
  92. package/dist/melonjs.mjs/renderable/trigger.js +10 -10
  93. package/dist/melonjs.mjs/renderable/ui/uibaseelement.js +7 -7
  94. package/dist/melonjs.mjs/renderable/ui/uispriteelement.js +7 -7
  95. package/dist/melonjs.mjs/renderable/ui/uitextbutton.js +3 -3
  96. package/dist/melonjs.mjs/state/stage.js +2 -2
  97. package/dist/melonjs.mjs/state/state.js +1 -38
  98. package/dist/melonjs.mjs/system/device.js +49 -10
  99. package/dist/melonjs.mjs/system/dom.js +1 -1
  100. package/dist/melonjs.mjs/system/event.js +24 -2
  101. package/dist/melonjs.mjs/system/platform.js +18 -18
  102. package/dist/melonjs.mjs/system/pooling.js +10 -10
  103. package/dist/melonjs.mjs/system/save.js +1 -1
  104. package/dist/melonjs.mjs/system/timer.js +1 -1
  105. package/dist/melonjs.mjs/text/bitmaptext.js +1 -1
  106. package/dist/melonjs.mjs/text/bitmaptextdata.js +3 -6
  107. package/dist/melonjs.mjs/text/glyph.js +1 -1
  108. package/dist/melonjs.mjs/text/text.js +1 -1
  109. package/dist/melonjs.mjs/text/textmetrics.js +1 -1
  110. package/dist/melonjs.mjs/text/textstyle.js +1 -1
  111. package/dist/melonjs.mjs/tweens/easing.js +1 -1
  112. package/dist/melonjs.mjs/tweens/interpolation.js +1 -1
  113. package/dist/melonjs.mjs/tweens/tween.js +2 -2
  114. package/dist/melonjs.mjs/utils/agent.js +1 -1
  115. package/dist/melonjs.mjs/utils/array.js +1 -1
  116. package/dist/melonjs.mjs/utils/file.js +1 -1
  117. package/dist/melonjs.mjs/utils/function.js +2 -3
  118. package/dist/melonjs.mjs/utils/string.js +1 -1
  119. package/dist/melonjs.mjs/utils/utils.js +1 -1
  120. package/dist/melonjs.mjs/video/canvas/canvas_renderer.js +3 -7
  121. package/dist/melonjs.mjs/video/renderer.js +16 -16
  122. package/dist/melonjs.mjs/video/texture/atlas.js +13 -13
  123. package/dist/melonjs.mjs/video/texture/cache.js +1 -1
  124. package/dist/melonjs.mjs/video/texture/canvas_texture.js +15 -15
  125. package/dist/melonjs.mjs/video/utils/autodetect.js +1 -1
  126. package/dist/melonjs.mjs/video/video.js +4 -4
  127. package/dist/melonjs.mjs/video/webgl/buffer/vertex.js +3 -3
  128. package/dist/melonjs.mjs/video/webgl/compositors/compositor.js +13 -14
  129. package/dist/melonjs.mjs/video/webgl/compositors/primitive_compositor.js +5 -5
  130. package/dist/melonjs.mjs/video/webgl/compositors/quad_compositor.js +2 -3
  131. package/dist/melonjs.mjs/video/webgl/glshader.js +2 -2
  132. package/dist/melonjs.mjs/video/webgl/shaders/primitive.frag.js +1 -1
  133. package/dist/melonjs.mjs/video/webgl/shaders/primitive.vert.js +1 -1
  134. package/dist/melonjs.mjs/video/webgl/shaders/quad.frag.js +1 -1
  135. package/dist/melonjs.mjs/video/webgl/shaders/quad.vert.js +1 -1
  136. package/dist/melonjs.mjs/video/webgl/utils/attributes.js +1 -1
  137. package/dist/melonjs.mjs/video/webgl/utils/precision.js +4 -4
  138. package/dist/melonjs.mjs/video/webgl/utils/program.js +1 -1
  139. package/dist/melonjs.mjs/video/webgl/utils/string.js +1 -1
  140. package/dist/melonjs.mjs/video/webgl/utils/uniforms.js +1 -1
  141. package/dist/melonjs.mjs/video/webgl/webgl_renderer.js +50 -52
  142. package/dist/melonjs.module.js +1137 -1576
  143. package/dist/types/application/application.d.ts +28 -4
  144. package/dist/types/application/header.d.ts +2 -2
  145. package/dist/types/application/settings.d.ts +23 -23
  146. package/dist/types/audio/audio.d.ts +4 -6
  147. package/dist/types/camera/camera2d.d.ts +13 -16
  148. package/dist/types/entity/entity.d.ts +0 -1
  149. package/dist/types/geometries/ellipse.d.ts +18 -50
  150. package/dist/types/geometries/path2d.d.ts +1 -1
  151. package/dist/types/geometries/point.d.ts +5 -13
  152. package/dist/types/geometries/poly.d.ts +26 -75
  153. package/dist/types/geometries/rectangle.d.ts +12 -58
  154. package/dist/types/geometries/roundrect.d.ts +2 -11
  155. package/dist/types/index.d.ts +3 -3
  156. package/dist/types/input/gamepad.d.ts +31 -31
  157. package/dist/types/input/keyboard.d.ts +105 -105
  158. package/dist/types/input/pointer.d.ts +21 -21
  159. package/dist/types/input/pointerevent.d.ts +6 -6
  160. package/dist/types/level/tiled/TMXLayer.d.ts +1 -1
  161. package/dist/types/math/matrix2.d.ts +9 -63
  162. package/dist/types/math/matrix3.d.ts +9 -68
  163. package/dist/types/math/observable_vector2.d.ts +2 -2
  164. package/dist/types/math/observable_vector3.d.ts +2 -2
  165. package/dist/types/math/vector2.d.ts +8 -92
  166. package/dist/types/math/vector3.d.ts +8 -92
  167. package/dist/types/particles/settings.d.ts +29 -29
  168. package/dist/types/physics/body.d.ts +10 -8
  169. package/dist/types/physics/bounds.d.ts +24 -30
  170. package/dist/types/physics/collision.d.ts +12 -12
  171. package/dist/types/physics/detector.d.ts +1 -1
  172. package/dist/types/physics/world.d.ts +4 -7
  173. package/dist/types/renderable/container.d.ts +19 -19
  174. package/dist/types/renderable/imagelayer.d.ts +6 -6
  175. package/dist/types/renderable/light2d.d.ts +7 -7
  176. package/dist/types/renderable/renderable.d.ts +9 -16
  177. package/dist/types/renderable/text/bitmaptext.d.ts +151 -0
  178. package/dist/types/renderable/text/bitmaptextdata.d.ts +35 -0
  179. package/dist/types/renderable/text/glyph.d.ts +28 -0
  180. package/dist/types/renderable/text/text.d.ts +159 -0
  181. package/dist/types/renderable/text/textmetrics.d.ts +47 -0
  182. package/dist/types/renderable/text/textstyle.d.ts +5 -0
  183. package/dist/types/renderable/ui/uibaseelement.d.ts +0 -1
  184. package/dist/types/renderable/ui/uispriteelement.d.ts +0 -1
  185. package/dist/types/renderable/ui/uitextbutton.d.ts +2 -7
  186. package/dist/types/state/state.d.ts +11 -11
  187. package/dist/types/system/device.d.ts +15 -9
  188. package/dist/types/system/event.d.ts +20 -0
  189. package/dist/types/system/platform.d.ts +17 -17
  190. package/dist/types/utils/function.d.ts +1 -2
  191. package/dist/types/video/renderer.d.ts +13 -13
  192. package/dist/types/video/texture/canvas_texture.d.ts +14 -14
  193. package/dist/types/video/video.d.ts +2 -2
  194. package/dist/types/video/webgl/buffer/vertex.d.ts +2 -2
  195. package/dist/types/video/webgl/compositors/compositor.d.ts +24 -13
  196. package/dist/types/video/webgl/compositors/primitive_compositor.d.ts +0 -1
  197. package/dist/types/video/webgl/compositors/quad_compositor.d.ts +0 -1
  198. package/dist/types/video/webgl/utils/precision.d.ts +1 -1
  199. package/dist/types/video/webgl/webgl_renderer.d.ts +47 -50
  200. package/package.json +15 -15
  201. package/src/application/application.js +51 -3
  202. package/src/application/header.js +1 -1
  203. package/src/application/resize.js +3 -7
  204. package/src/application/settings.js +4 -4
  205. package/src/audio/audio.js +3 -5
  206. package/src/camera/camera2d.js +11 -13
  207. package/src/entity/entity.js +2 -3
  208. package/src/geometries/ellipse.js +25 -58
  209. package/src/geometries/line.js +17 -24
  210. package/src/geometries/path2d.js +15 -12
  211. package/src/geometries/point.js +7 -15
  212. package/src/geometries/poly.js +39 -96
  213. package/src/geometries/rectangle.js +36 -90
  214. package/src/geometries/roundrect.js +25 -34
  215. package/src/index.js +4 -4
  216. package/src/input/keyboard.js +2 -2
  217. package/src/input/pointer.js +3 -3
  218. package/src/input/pointerevent.js +5 -6
  219. package/src/lang/deprecated.js +1 -1
  220. package/src/level/tiled/TMXLayer.js +15 -32
  221. package/src/level/tiled/TMXObject.js +2 -3
  222. package/src/level/tiled/TMXTile.js +3 -3
  223. package/src/level/tiled/TMXTileMap.js +2 -2
  224. package/src/level/tiled/TMXTileset.js +3 -6
  225. package/src/level/tiled/TMXTilesetGroup.js +1 -1
  226. package/src/level/tiled/TMXUtils.js +25 -28
  227. package/src/level/tiled/renderer/TMXHexagonalRenderer.js +2 -2
  228. package/src/level/tiled/renderer/TMXIsometricRenderer.js +1 -1
  229. package/src/level/tiled/renderer/TMXOrthogonalRenderer.js +1 -1
  230. package/src/level/tiled/renderer/TMXRenderer.js +1 -1
  231. package/src/level/tiled/renderer/TMXStaggeredRenderer.js +1 -1
  232. package/src/loader/parser.js +3 -4
  233. package/src/math/color.js +1 -1
  234. package/src/math/matrix2.js +4 -58
  235. package/src/math/matrix3.js +81 -140
  236. package/src/math/observable_vector2.js +6 -6
  237. package/src/math/observable_vector3.js +4 -4
  238. package/src/math/vector2.js +6 -90
  239. package/src/math/vector3.js +5 -89
  240. package/src/particles/emitter.js +1 -1
  241. package/src/particles/particle.js +1 -1
  242. package/src/physics/body.js +21 -19
  243. package/src/physics/bounds.js +26 -32
  244. package/src/physics/collision.js +4 -4
  245. package/src/physics/detector.js +9 -9
  246. package/src/physics/quadtree.js +4 -4
  247. package/src/physics/sat.js +2 -3
  248. package/src/physics/world.js +5 -8
  249. package/src/polyfill/roundrect.js +163 -163
  250. package/src/renderable/collectable.js +1 -1
  251. package/src/renderable/colorlayer.js +3 -3
  252. package/src/renderable/container.js +24 -24
  253. package/src/renderable/imagelayer.js +3 -3
  254. package/src/renderable/light2d.js +2 -2
  255. package/src/renderable/nineslicesprite.js +1 -1
  256. package/src/renderable/renderable.js +25 -25
  257. package/src/renderable/sprite.js +2 -2
  258. package/src/{text → renderable/text}/bitmaptext.js +8 -8
  259. package/src/{text → renderable/text}/bitmaptextdata.js +4 -7
  260. package/src/{text → renderable/text}/glyph.js +1 -1
  261. package/src/{text → renderable/text}/text.js +16 -17
  262. package/src/{text → renderable/text}/textmetrics.js +2 -2
  263. package/src/renderable/trigger.js +9 -9
  264. package/src/renderable/ui/uibaseelement.js +6 -6
  265. package/src/renderable/ui/uispriteelement.js +6 -6
  266. package/src/renderable/ui/uitextbutton.js +2 -2
  267. package/src/state/stage.js +1 -1
  268. package/src/state/state.js +0 -49
  269. package/src/system/device.js +48 -9
  270. package/src/system/event.js +22 -0
  271. package/src/system/platform.js +18 -18
  272. package/src/system/pooling.js +9 -9
  273. package/src/tweens/tween.js +1 -1
  274. package/src/utils/function.js +1 -2
  275. package/src/video/canvas/canvas_renderer.js +2 -6
  276. package/src/video/renderer.js +15 -15
  277. package/src/video/texture/atlas.js +12 -12
  278. package/src/video/texture/canvas_texture.js +14 -14
  279. package/src/video/video.js +3 -3
  280. package/src/video/webgl/buffer/vertex.js +2 -2
  281. package/src/video/webgl/compositors/compositor.js +12 -13
  282. package/src/video/webgl/compositors/primitive_compositor.js +4 -4
  283. package/src/video/webgl/compositors/quad_compositor.js +1 -2
  284. package/src/video/webgl/glshader.js +1 -1
  285. package/src/video/webgl/utils/precision.js +3 -3
  286. package/src/video/webgl/webgl_renderer.js +49 -51
  287. /package/src/{text → renderable/text}/textstyle.js +0 -0
@@ -1,32 +1,32 @@
1
1
  export default ParticleEmitterSettings;
2
2
  declare namespace ParticleEmitterSettings {
3
- const width: number;
4
- const height: number;
5
- const image: HTMLCanvasElement;
6
- const textureSize: number;
7
- const tint: string;
8
- const totalParticles: number;
9
- const angle: number;
10
- const angleVariation: number;
11
- const minLife: number;
12
- const maxLife: number;
13
- const speed: number;
14
- const speedVariation: number;
15
- const minRotation: number;
16
- const maxRotation: number;
17
- const minStartScale: number;
18
- const maxStartScale: number;
19
- const minEndScale: number;
20
- const maxEndScale: number;
21
- const gravity: number;
22
- const wind: number;
23
- const followTrajectory: boolean;
24
- const textureAdditive: boolean;
25
- const blendMode: string;
26
- const onlyInViewport: boolean;
27
- const floating: boolean;
28
- const maxParticles: number;
29
- const frequency: number;
30
- const duration: number;
31
- const framesToSkip: number;
3
+ let width: number;
4
+ let height: number;
5
+ let image: HTMLCanvasElement;
6
+ let textureSize: number;
7
+ let tint: string;
8
+ let totalParticles: number;
9
+ let angle: number;
10
+ let angleVariation: number;
11
+ let minLife: number;
12
+ let maxLife: number;
13
+ let speed: number;
14
+ let speedVariation: number;
15
+ let minRotation: number;
16
+ let maxRotation: number;
17
+ let minStartScale: number;
18
+ let maxStartScale: number;
19
+ let minEndScale: number;
20
+ let maxEndScale: number;
21
+ let gravity: number;
22
+ let wind: number;
23
+ let followTrajectory: boolean;
24
+ let textureAdditive: boolean;
25
+ let blendMode: string;
26
+ let onlyInViewport: boolean;
27
+ let floating: boolean;
28
+ let maxParticles: number;
29
+ let frequency: number;
30
+ let duration: number;
31
+ let framesToSkip: number;
32
32
  }
@@ -272,15 +272,17 @@ export default class Body {
272
272
  forEach(callback: Function, thisArg?: object | undefined, ...args: any[]): void;
273
273
  /**
274
274
  * Returns true if the any of the shape composing the body contains the given point.
275
- * @method Body#contains
276
- * @param {Vector2d} point
277
- * @returns {boolean} true if contains
278
- */
279
- /**
280
- * Returns true if the any of the shape composing the body contains the given point.
281
- * @param {number} x - x coordinate
282
- * @param {number} y - y coordinate
275
+ * @param {number|Vector2d} x - x coordinate or a vector point to check
276
+ * @param {number} [y] - y coordinate
283
277
  * @returns {boolean} true if contains
278
+ * @example
279
+ * if (mySprite.body.contains(10, 10)) {
280
+ * // do something
281
+ * }
282
+ * // or
283
+ * if (mySprite.body.contains(myVector2d)) {
284
+ * // do something
285
+ * }
284
286
  */
285
287
  contains(...args: any[]): boolean;
286
288
  /**
@@ -96,7 +96,7 @@ export default class Bounds {
96
96
  * @param {number} x - the x coordinate around which to center this bounds
97
97
  * @param {number} y - the y coordinate around which to center this bounds
98
98
  */
99
- centerOn(x: number, y: number): Bounds;
99
+ centerOn(x: number, y: number): this;
100
100
  /**
101
101
  * Updates bounds using the given vertices
102
102
  * @param {Vector2d[]|Point[]} vertices - an array of Vector2d or Point
@@ -131,17 +131,17 @@ export default class Bounds {
131
131
  addFrame(x0: number, y0: number, x1: number, y1: number, m?: any): void;
132
132
  /**
133
133
  * Returns true if the bounds contains the given point.
134
- * @name contains
135
- * @memberof Bounds
136
- * @method
137
- * @param {Vector2d} point
138
- * @returns {boolean} True if the bounds contain the point, otherwise false
139
- */
140
- /**
141
- * Returns true if the bounds contains the given point.
142
- * @param {number} x
143
- * @param {number} y
134
+ * @param {number|Vector2d} x - x coordinate or a vector point to check
135
+ * @param {number} [y] - y coordinate
144
136
  * @returns {boolean} True if the bounds contain the point, otherwise false
137
+ * @example
138
+ * if (bounds.contains(10, 10)) {
139
+ * // do something
140
+ * }
141
+ * // or
142
+ * if (bounds.contains(myVector2d)) {
143
+ * // do something
144
+ * }
145
145
  */
146
146
  contains(...args: any[]): boolean;
147
147
  /**
@@ -156,29 +156,23 @@ export default class Bounds {
156
156
  */
157
157
  isFinite(): boolean;
158
158
  /**
159
- * Translates the bounds by the given vector.
160
- * @name translate
161
- * @memberof Bounds
162
- * @method
163
- * @param {Vector2d} vector
164
- */
165
- /**
166
- * Translates the bounds by x on the x axis, and y on the y axis
167
- * @param {number} x
168
- * @param {number} y
159
+ * Translates the bounds by the given point
160
+ * @param {number|Vector2d} x - x coordinate or a vector point to translate by
161
+ * @param {number} [y]
162
+ * @example
163
+ * bounds.translate(10, 10);
164
+ * // or
165
+ * bounds.translate(myVector2d);
169
166
  */
170
167
  translate(...args: any[]): void;
171
- /**
172
- * Shifts the bounds to the given position vector.
173
- * @name shift
174
- * @memberof Bounds
175
- * @method
176
- * @param {Vector2d} position
177
- */
178
168
  /**
179
169
  * Shifts the bounds to the given x, y position.
180
- * @param {number} x
181
- * @param {number} y
170
+ * @param {number|Vector2d} x - x coordinate or a vector point to shift to
171
+ * @param {number} [y]
172
+ * @example
173
+ * bounds.shift(10, 10);
174
+ * // or
175
+ * bounds.shift(myVector2d);
182
176
  */
183
177
  shift(...args: any[]): void;
184
178
  /**
@@ -1,18 +1,18 @@
1
1
  export default collision;
2
2
  declare namespace collision {
3
- const maxChildren: number;
4
- const maxDepth: number;
3
+ let maxChildren: number;
4
+ let maxDepth: number;
5
5
  namespace types {
6
- const NO_OBJECT: number;
7
- const PLAYER_OBJECT: number;
8
- const NPC_OBJECT: number;
9
- const ENEMY_OBJECT: number;
10
- const COLLECTABLE_OBJECT: number;
11
- const ACTION_OBJECT: number;
12
- const PROJECTILE_OBJECT: number;
13
- const WORLD_SHAPE: number;
14
- const USER: number;
15
- const ALL_OBJECT: number;
6
+ let NO_OBJECT: number;
7
+ let PLAYER_OBJECT: number;
8
+ let NPC_OBJECT: number;
9
+ let ENEMY_OBJECT: number;
10
+ let COLLECTABLE_OBJECT: number;
11
+ let ACTION_OBJECT: number;
12
+ let PROJECTILE_OBJECT: number;
13
+ let WORLD_SHAPE: number;
14
+ let USER: number;
15
+ let ALL_OBJECT: number;
16
16
  }
17
17
  /**
18
18
  * Checks for object colliding with the given line
@@ -25,7 +25,7 @@ export default class Detector {
25
25
  * detect collision between two bodies.
26
26
  * @param {Body} bodyA - a reference to body A.
27
27
  * @param {Body} bodyB - a reference to body B.
28
- * @returns {Boolean} true if colliding
28
+ * @returns {boolean} true if colliding
29
29
  */
30
30
  collides(bodyA: Body, bodyB: Body, response?: ResponseObject): boolean;
31
31
  /**
@@ -30,13 +30,10 @@ export default class World extends Container {
30
30
  */
31
31
  gravity: Vector2d;
32
32
  /**
33
- * Specify the rendering method for tile layers. <br>
34
- * if false visible part of the layers are rendered dynamically,<br>
35
- * if true the entire layers are first rendered into an offscreen canvas.<br>
36
- * the "best" rendering method depends of your game
37
- * (amount of layer, layer size, amount of tiles per layer, etc.)<br>
38
- * note : rendering method is also configurable per layer by adding this
39
- * property to your layer (in Tiled).
33
+ * Enabled pre-rendering for all tile layers. <br>
34
+ * If false layers are rendered dynamically, if true layers are first fully rendered into an offscreen canvas.<br>
35
+ * the "best" rendering method depends of your game (amount of layer, layer size, amount of tiles per layer, etc.)<br>
36
+ * Note : rendering method is also configurable per layer by adding a boolean "preRender" property to your layer in Tiled ({@link https://doc.mapeditor.org/en/stable/manual/custom-properties/#adding-properties}).
40
37
  * @type {boolean}
41
38
  * @default false
42
39
  */
@@ -93,7 +93,7 @@ export default class Container extends Renderable {
93
93
  * will not be in any container. <br>
94
94
  * if the given child implements a onActivateEvent method, that method will be called
95
95
  * once the child is added to this container.
96
- * @param {Renderable|Entity|Sprite|Collectable|Trigger|Draggable|DropTarget|NineSliceSprite|ImageLayer|ColorLayer|Light2d|UIBaseElement|UISpriteElement|UITextButton|Text|BitmapText} child
96
+ * @param {Renderable|Entity|Sprite|Collectable|Trigger|Draggable|DropTarget|NineSliceSprite|ImageLayer|ColorLayer|Light2d|UIBaseElement|UISpriteElement|UITextButton|Text|BitmapText} child - Child to be added
97
97
  * @param {number} [z] - forces the z index of the child to the specified value
98
98
  * @returns {Renderable} the added child
99
99
  */
@@ -101,8 +101,8 @@ export default class Container extends Renderable {
101
101
  /**
102
102
  * Add a child to the container at the specified index<br>
103
103
  * (the list won't be sorted after insertion)
104
- * @param {Renderable|Entity|Sprite|Collectable|Trigger|Draggable|DropTarget|NineSliceSprite|ImageLayer|ColorLayer|Light2d|UIBaseElement|UISpriteElement|UITextButton|Text|BitmapText} child
105
- * @param {number} index
104
+ * @param {Renderable|Entity|Sprite|Collectable|Trigger|Draggable|DropTarget|NineSliceSprite|ImageLayer|ColorLayer|Light2d|UIBaseElement|UISpriteElement|UITextButton|Text|BitmapText} child - Child to be added
105
+ * @param {number} index - The index at which to insert the child
106
106
  * @returns {Renderable} the added child
107
107
  */
108
108
  addChildAt(child: Renderable | Entity | Sprite | Collectable | Trigger | Draggable | DropTarget | NineSliceSprite | ImageLayer | ColorLayer | Light2d | UIBaseElement | UISpriteElement | UITextButton | Text | BitmapText, index: number): Renderable;
@@ -127,31 +127,31 @@ export default class Container extends Renderable {
127
127
  forEach(callback: Function, thisArg?: object | undefined, ...args: any[]): void;
128
128
  /**
129
129
  * Swaps the position (z-index) of 2 children
130
- * @param {Renderable|Entity|Sprite|Collectable|Trigger|Draggable|DropTarget|NineSliceSprite|ImageLayer|ColorLayer|Light2d|UIBaseElement|UISpriteElement|UITextButton|Text|BitmapText} child
131
- * @param {Renderable|Entity|Sprite|Collectable|Trigger|Draggable|DropTarget|NineSliceSprite|ImageLayer|ColorLayer|Light2d|UIBaseElement|UISpriteElement|UITextButton|Text|BitmapText} child2
130
+ * @param {Renderable|Entity|Sprite|Collectable|Trigger|Draggable|DropTarget|NineSliceSprite|ImageLayer|ColorLayer|Light2d|UIBaseElement|UISpriteElement|UITextButton|Text|BitmapText} child - Child to be added
131
+ * @param {Renderable|Entity|Sprite|Collectable|Trigger|Draggable|DropTarget|NineSliceSprite|ImageLayer|ColorLayer|Light2d|UIBaseElement|UISpriteElement|UITextButton|Text|BitmapText} child2 - Child to be added
132
132
  */
133
133
  swapChildren(child: Renderable | Entity | Sprite | Collectable | Trigger | Draggable | DropTarget | NineSliceSprite | ImageLayer | ColorLayer | Light2d | UIBaseElement | UISpriteElement | UITextButton | Text | BitmapText, child2: Renderable | Entity | Sprite | Collectable | Trigger | Draggable | DropTarget | NineSliceSprite | ImageLayer | ColorLayer | Light2d | UIBaseElement | UISpriteElement | UITextButton | Text | BitmapText): void;
134
134
  /**
135
135
  * Returns the Child at the specified index
136
- * @param {number} index
136
+ * @param {number} index - The index of the child
137
137
  * @returns {Renderable} the child at the specified index
138
138
  */
139
139
  getChildAt(index: number): Renderable;
140
140
  /**
141
141
  * Returns the index of the given Child
142
- * @param {Renderable|Entity|Sprite|Collectable|Trigger|Draggable|DropTarget|NineSliceSprite|ImageLayer|ColorLayer|Light2d|UIBaseElement|UISpriteElement|UITextButton|Text|BitmapText} child
142
+ * @param {Renderable|Entity|Sprite|Collectable|Trigger|Draggable|DropTarget|NineSliceSprite|ImageLayer|ColorLayer|Light2d|UIBaseElement|UISpriteElement|UITextButton|Text|BitmapText} child - The child object
143
143
  * @returns {number} index
144
144
  */
145
145
  getChildIndex(child: Renderable | Entity | Sprite | Collectable | Trigger | Draggable | DropTarget | NineSliceSprite | ImageLayer | ColorLayer | Light2d | UIBaseElement | UISpriteElement | UITextButton | Text | BitmapText): number;
146
146
  /**
147
147
  * Returns the next child within the container or undefined if none
148
- * @param {Renderable|Entity|Sprite|Collectable|Trigger|Draggable|DropTarget|NineSliceSprite|ImageLayer|ColorLayer|Light2d|UIBaseElement|UISpriteElement|UITextButton|Text|BitmapText} child
148
+ * @param {Renderable|Entity|Sprite|Collectable|Trigger|Draggable|DropTarget|NineSliceSprite|ImageLayer|ColorLayer|Light2d|UIBaseElement|UISpriteElement|UITextButton|Text|BitmapText} child - The child object
149
149
  * @returns {Renderable} child
150
150
  */
151
151
  getNextChild(child: Renderable | Entity | Sprite | Collectable | Trigger | Draggable | DropTarget | NineSliceSprite | ImageLayer | ColorLayer | Light2d | UIBaseElement | UISpriteElement | UITextButton | Text | BitmapText): Renderable;
152
152
  /**
153
153
  * Returns true if contains the specified Child
154
- * @param {Renderable|Entity|Sprite|Collectable|Trigger|Draggable|DropTarget|NineSliceSprite|ImageLayer|ColorLayer|Light2d|UIBaseElement|UISpriteElement|UITextButton|Text|BitmapText} child
154
+ * @param {Renderable|Entity|Sprite|Collectable|Trigger|Draggable|DropTarget|NineSliceSprite|ImageLayer|ColorLayer|Light2d|UIBaseElement|UISpriteElement|UITextButton|Text|BitmapText} child - The child object
155
155
  * @returns {boolean}
156
156
  */
157
157
  hasChild(child: Renderable | Entity | Sprite | Collectable | Trigger | Draggable | DropTarget | NineSliceSprite | ImageLayer | ColorLayer | Light2d | UIBaseElement | UISpriteElement | UITextButton | Text | BitmapText): boolean;
@@ -180,7 +180,7 @@ export default class Container extends Renderable {
180
180
  getChildByProp(prop: string, value: string | RegExp | number | boolean): Renderable[];
181
181
  /**
182
182
  * returns the list of childs with the specified class type
183
- * @param {object} classType
183
+ * @param {object} classType - Class type
184
184
  * @returns {Renderable[]} Array of children
185
185
  */
186
186
  getChildByType(classType: object): Renderable[];
@@ -208,12 +208,12 @@ export default class Container extends Renderable {
208
208
  getChildren(): Renderable[];
209
209
  /**
210
210
  * Checks if this container is root or if it's attached to the root container.
211
- * @returns {boolean}
211
+ * @returns {boolean} true if this container is root or if it's attached to the root container
212
212
  */
213
213
  isAttachedToRoot(): boolean;
214
214
  /**
215
215
  * Returns the instance of the root container (i.e. the current application World container).
216
- * @returns {Container}
216
+ * @returns {Container} root container
217
217
  */
218
218
  getRootAncestor(): Container;
219
219
  /**
@@ -223,7 +223,7 @@ export default class Container extends Renderable {
223
223
  /**
224
224
  * Invokes the removeChildNow in a defer, to ensure the child is removed safely after the update & draw stack has completed. <br>
225
225
  * if the given child implements a onDeactivateEvent() method, that method will be called once the child is removed from this container.
226
- * @param {RendRenderable|Sprite|Collectable|Trigger|Draggable|DropTarget|NineSliceSprite|ImageLayer|ColorLayer|Light2d|UIBaseElement|UISpriteElement|UITextButton|Text|BitmapTexterable} child
226
+ * @param {RendRenderable|Sprite|Collectable|Trigger|Draggable|DropTarget|NineSliceSprite|ImageLayer|ColorLayer|Light2d|UIBaseElement|UISpriteElement|UITextButton|Text|BitmapTexterable} child - Child to be removed
227
227
  * @param {boolean} [keepalive=false] - true to prevent calling child.destroy()
228
228
  */
229
229
  removeChild(child: RendRenderable | Sprite | Collectable | Trigger | Draggable | DropTarget | NineSliceSprite | ImageLayer | ColorLayer | Light2d | UIBaseElement | UISpriteElement | UITextButton | Text | BitmapTexterable, keepalive?: boolean | undefined): void;
@@ -231,7 +231,7 @@ export default class Container extends Renderable {
231
231
  * Removes (and optionally destroys) a child from the container.<br>
232
232
  * (removal is immediate and unconditional)<br>
233
233
  * Never use keepalive=true with objects from {@link pool}. Doing so will create a memory leak.
234
- * @param {Renderable|Entity|Sprite|Collectable|Trigger|Draggable|DropTarget|NineSliceSprite|ImageLayer|ColorLayer|Light2d|UIBaseElement|UISpriteElement|UITextButton|Text|BitmapText} child
234
+ * @param {Renderable|Entity|Sprite|Collectable|Trigger|Draggable|DropTarget|NineSliceSprite|ImageLayer|ColorLayer|Light2d|UIBaseElement|UISpriteElement|UITextButton|Text|BitmapText} child - Child to be removed
235
235
  * @param {boolean} [keepalive=False] - True to prevent calling child.destroy()
236
236
  */
237
237
  removeChildNow(child: Renderable | Entity | Sprite | Collectable | Trigger | Draggable | DropTarget | NineSliceSprite | ImageLayer | ColorLayer | Light2d | UIBaseElement | UISpriteElement | UITextButton | Text | BitmapText, keepalive?: boolean | undefined): void;
@@ -244,26 +244,26 @@ export default class Container extends Renderable {
244
244
  setChildsProperty(prop: string, value: object, recursive?: boolean | undefined): void;
245
245
  /**
246
246
  * Move the child in the group one step forward (z depth).
247
- * @param {Renderable|Entity|Sprite|Collectable|Trigger|Draggable|DropTarget|NineSliceSprite|ImageLayer|ColorLayer|Light2d|UIBaseElement|UISpriteElement|UITextButton|Text|BitmapText} child
247
+ * @param {Renderable|Entity|Sprite|Collectable|Trigger|Draggable|DropTarget|NineSliceSprite|ImageLayer|ColorLayer|Light2d|UIBaseElement|UISpriteElement|UITextButton|Text|BitmapText} child - Child to be moved
248
248
  */
249
249
  moveUp(child: Renderable | Entity | Sprite | Collectable | Trigger | Draggable | DropTarget | NineSliceSprite | ImageLayer | ColorLayer | Light2d | UIBaseElement | UISpriteElement | UITextButton | Text | BitmapText): void;
250
250
  /**
251
251
  * Move the child in the group one step backward (z depth).
252
- * @param {Renderable|Entity|Sprite|Collectable|Trigger|Draggable|DropTarget|NineSliceSprite|ImageLayer|ColorLayer|Light2d|UIBaseElement|UISpriteElement|UITextButton|Text|BitmapText} child
252
+ * @param {Renderable|Entity|Sprite|Collectable|Trigger|Draggable|DropTarget|NineSliceSprite|ImageLayer|ColorLayer|Light2d|UIBaseElement|UISpriteElement|UITextButton|Text|BitmapText} child - Child to be moved
253
253
  */
254
254
  moveDown(child: Renderable | Entity | Sprite | Collectable | Trigger | Draggable | DropTarget | NineSliceSprite | ImageLayer | ColorLayer | Light2d | UIBaseElement | UISpriteElement | UITextButton | Text | BitmapText): void;
255
255
  /**
256
256
  * Move the specified child to the top(z depth).
257
- * @param {Renderable|Entity|Sprite|Collectable|Trigger|Draggable|DropTarget|NineSliceSprite|ImageLayer|ColorLayer|Light2d|UIBaseElement|UISpriteElement|UITextButton|Text|BitmapText} child
257
+ * @param {Renderable|Entity|Sprite|Collectable|Trigger|Draggable|DropTarget|NineSliceSprite|ImageLayer|ColorLayer|Light2d|UIBaseElement|UISpriteElement|UITextButton|Text|BitmapText} child - Child to be moved
258
258
  */
259
259
  moveToTop(child: Renderable | Entity | Sprite | Collectable | Trigger | Draggable | DropTarget | NineSliceSprite | ImageLayer | ColorLayer | Light2d | UIBaseElement | UISpriteElement | UITextButton | Text | BitmapText): void;
260
260
  /**
261
261
  * Move the specified child the bottom (z depth).
262
- * @param {Renderable|Entity|Sprite|Collectable|Trigger|Draggable|DropTarget|NineSliceSprite|ImageLayer|ColorLayer|Light2d|UIBaseElement|UISpriteElement|UITextButton|Text|BitmapText} child
262
+ * @param {Renderable|Entity|Sprite|Collectable|Trigger|Draggable|DropTarget|NineSliceSprite|ImageLayer|ColorLayer|Light2d|UIBaseElement|UISpriteElement|UITextButton|Text|BitmapText} child - Child to be moved
263
263
  */
264
264
  moveToBottom(child: Renderable | Entity | Sprite | Collectable | Trigger | Draggable | DropTarget | NineSliceSprite | ImageLayer | ColorLayer | Light2d | UIBaseElement | UISpriteElement | UITextButton | Text | BitmapText): void;
265
265
  /**
266
- * Manually trigger the sort of all the childs in the container</p>
266
+ * Manually trigger the sort of all the childs in the container
267
267
  * @param {boolean} [recursive=false] - recursively sort all containers if true
268
268
  */
269
269
  sort(recursive?: boolean | undefined): void;
@@ -12,7 +12,7 @@ export default class ImageLayer {
12
12
  * @param {string} [settings.name="me.ImageLayer"] - layer name
13
13
  * @param {number} [settings.z=0] - z-index position
14
14
  * @param {number|Vector2d} [settings.ratio=1.0] - Scrolling ratio to be applied. See {@link ImageLayer#ratio}
15
- * @param {string} [settings.repeat='repeat'] - define if and how an Image Layer should be repeated (accepted values are 'repeat', 'repeat-x', 'repeat-y', 'no-repeat'). See {@link ImageLayer#repeat}
15
+ * @param {"repeat"|"repeat-x"|"repeat-y"|"no-repeat"} [settings.repeat="repeat"] - define if and how an Image Layer should be repeated. See {@link ImageLayer#repeat}
16
16
  * @param {number|Vector2d} [settings.anchorPoint=0.0] - Image origin. See {@link ImageLayer#anchorPoint}
17
17
  * @example
18
18
  * // create a repetitive background pattern on the X axis using the citycloud image asset
@@ -26,7 +26,7 @@ export default class ImageLayer {
26
26
  name?: string | undefined;
27
27
  z?: number | undefined;
28
28
  ratio?: number | Vector2d;
29
- repeat?: string | undefined;
29
+ repeat?: "repeat" | "no-repeat" | "repeat-x" | "repeat-y" | undefined;
30
30
  anchorPoint?: number | Vector2d;
31
31
  });
32
32
  floating: boolean;
@@ -83,10 +83,10 @@ export default class ImageLayer {
83
83
  updateLayer(vpos: any): void;
84
84
  isDirty: boolean | undefined;
85
85
  /**
86
- * override the default predraw function
87
- * as repeat and anchor are managed directly in the draw method
88
- * @ignore
89
- */
86
+ * override the default predraw function
87
+ * as repeat and anchor are managed directly in the draw method
88
+ * @ignore
89
+ */
90
90
  preDraw(renderer: any): void;
91
91
  /**
92
92
  * draw this ImageLayer (automatically called by melonJS)
@@ -8,13 +8,13 @@
8
8
  */
9
9
  export default class Light2d extends Renderable {
10
10
  /**
11
- * @param {number} x - The horizontal position of the light.
12
- * @param {number} y - The vertical position of the light.
13
- * @param {number} radiusX - The horizontal radius of the light.
14
- * @param {number} [radiusY=radiusX] - The vertical radius of the light.
15
- * @param {Color|string} [color="#FFF"] - the color of the light
16
- * @param {number} [intensity=0.7] - The intensity of the light.
17
- */
11
+ * @param {number} x - The horizontal position of the light.
12
+ * @param {number} y - The vertical position of the light.
13
+ * @param {number} radiusX - The horizontal radius of the light.
14
+ * @param {number} [radiusY=radiusX] - The vertical radius of the light.
15
+ * @param {Color|string} [color="#FFF"] - the color of the light
16
+ * @param {number} [intensity=0.7] - The intensity of the light.
17
+ */
18
18
  constructor(x: number, y: number, radiusX: number, radiusY?: number | undefined, color?: Color | string, intensity?: number | undefined);
19
19
  /**
20
20
  * the color of the light
@@ -4,12 +4,6 @@
4
4
  * @augments Rect
5
5
  */
6
6
  export default class Renderable extends Rect {
7
- /**
8
- * Position of the Renderable relative to its parent container
9
- * @public
10
- * @type {ObservableVector3d}
11
- */
12
- public pos: ObservableVector3d;
13
7
  /**
14
8
  * The anchor point is used for attachment behavior, and/or when applying transformations.<br>
15
9
  * The coordinate system places the origin at the top left corner of the frame (0, 0) and (1, 1) means the bottom-right corner<br>
@@ -64,11 +58,11 @@ export default class Renderable extends Rect {
64
58
  */
65
59
  body: Body;
66
60
  /**
67
- * (G)ame (U)nique (Id)entifier" <br>
68
- * a GUID will be allocated for any renderable object added <br>
69
- * to an object container (including the `me.game.world` container)
70
- * @type {string}
71
- */
61
+ * (G)ame (U)nique (Id)entifier" <br>
62
+ * a GUID will be allocated for any renderable object added <br>
63
+ * to an object container (including the `me.game.world` container)
64
+ * @type {string}
65
+ */
72
66
  GUID: string;
73
67
  /**
74
68
  * an event handler that is called when the renderable leave or enter a camera viewport
@@ -333,11 +327,11 @@ export default class Renderable extends Rect {
333
327
  * update the renderable's bounding rect (private)
334
328
  * @ignore
335
329
  */
336
- updateBoundsPos(newX?: number, newY?: number): void;
330
+ updateBoundsPos(newX?: any, newY?: any): void;
337
331
  /**
338
- * return the renderable absolute position in the game world
339
- * @returns {Vector2d}
340
- */
332
+ * return the renderable absolute position in the game world
333
+ * @returns {Vector2d}
334
+ */
341
335
  getAbsolutePosition(): Vector2d;
342
336
  _absPos: object | undefined;
343
337
  /**
@@ -409,5 +403,4 @@ export default class Renderable extends Rect {
409
403
  onDestroyEvent(): void;
410
404
  }
411
405
  import Rect from "./../geometries/rectangle.js";
412
- import ObservableVector3d from "./../math/observable_vector3.js";
413
406
  import ObservableVector2d from "./../math/observable_vector2.js";
@@ -0,0 +1,151 @@
1
+ /**
2
+ * @classdesc
3
+ * a bitmap font object
4
+ * @augments Renderable
5
+ */
6
+ export default class BitmapText extends Renderable {
7
+ /**
8
+ * @param {number} x - position of the text object
9
+ * @param {number} y - position of the text object
10
+ * @param {object} settings - the text configuration
11
+ * @param {string|Image} settings.font - a font name to identify the corresponing source image
12
+ * @param {string} [settings.fontData=settings.font] - the bitmap font data corresponding name, or the bitmap font data itself
13
+ * @param {number} [settings.size] - size a scaling ratio
14
+ * @param {Color|string} [settings.fillStyle] - a CSS color value used to tint the bitmapText (@see BitmapText.tint)
15
+ * @param {number} [settings.lineWidth=1] - line width, in pixels, when drawing stroke
16
+ * @param {string} [settings.textAlign="left"] - horizontal text alignment
17
+ * @param {string} [settings.textBaseline="top"] - the text baseline
18
+ * @param {number} [settings.lineHeight=1.0] - line spacing height
19
+ * @param {Vector2d} [settings.anchorPoint={x:0.0, y:0.0}] - anchor point to draw the text at
20
+ * @param {number} [settings.wordWrapWidth] - the maximum length in CSS pixel for a single segment of text
21
+ * @param {(string|string[])} [settings.text] - a string, or an array of strings
22
+ * @example
23
+ * // Use me.loader.preload or me.loader.load to load assets
24
+ * me.loader.preload([
25
+ * { name: "arial", type: "binary" src: "data/font/arial.fnt" },
26
+ * { name: "arial", type: "image" src: "data/font/arial.png" },
27
+ * ])
28
+ * // Then create an instance of your bitmap font:
29
+ * let myFont = new me.BitmapText(x, y, {font:"arial", text:"Hello"});
30
+ * // two possibilities for using "myFont"
31
+ * // either call the draw function from your Renderable draw function
32
+ * myFont.draw(renderer, "Hello!", 0, 0);
33
+ * // or just add it to the word container
34
+ * me.game.world.addChild(myFont);
35
+ */
36
+ constructor(x: number, y: number, settings: {
37
+ font: string | (new (width?: number | undefined, height?: number | undefined) => HTMLImageElement);
38
+ fontData?: string | undefined;
39
+ size?: number | undefined;
40
+ fillStyle?: string | Color | undefined;
41
+ lineWidth?: number | undefined;
42
+ textAlign?: string | undefined;
43
+ textBaseline?: string | undefined;
44
+ lineHeight?: number | undefined;
45
+ anchorPoint?: any;
46
+ wordWrapWidth?: number | undefined;
47
+ text?: string | string[] | undefined;
48
+ });
49
+ /**
50
+ * Set the default text alignment (or justification),<br>
51
+ * possible values are "left", "right", and "center".
52
+ * @public
53
+ * @type {string}
54
+ * @default "left"
55
+ */
56
+ public textAlign: string;
57
+ /**
58
+ * Set the text baseline (e.g. the Y-coordinate for the draw operation), <br>
59
+ * possible values are "top", "hanging, "middle, "alphabetic, "ideographic, "bottom"<br>
60
+ * @public
61
+ * @type {string}
62
+ * @default "top"
63
+ */
64
+ public textBaseline: string;
65
+ /**
66
+ * Set the line spacing height (when displaying multi-line strings). <br>
67
+ * Current font height will be multiplied with this value to set the line height.
68
+ * @public
69
+ * @type {number}
70
+ * @default 1.0
71
+ */
72
+ public lineHeight: number;
73
+ /**
74
+ * the maximum length in CSS pixel for a single segment of text.
75
+ * (use -1 to disable word wrapping)
76
+ * @public
77
+ * @type {number}
78
+ * @default -1
79
+ */
80
+ public wordWrapWidth: number;
81
+ /**
82
+ * the text to be displayed
83
+ * @private
84
+ */
85
+ private _text;
86
+ /**
87
+ * scaled font size
88
+ * @private
89
+ */
90
+ private fontScale;
91
+ /**
92
+ * font image
93
+ * @private
94
+ */
95
+ private fontImage;
96
+ /**
97
+ * font data
98
+ * @private
99
+ */
100
+ private fontData;
101
+ public set fillStyle(arg: Color);
102
+ /**
103
+ * defines the color used to tint the bitmap text
104
+ * @public
105
+ * @type {Color}
106
+ * @see Renderable#tint
107
+ */
108
+ public get fillStyle(): Color;
109
+ metrics: TextMetrics;
110
+ /**
111
+ * change the font settings
112
+ * @param {string} textAlign - ("left", "center", "right")
113
+ * @param {number} [scale]
114
+ * @returns {BitmapText} this object for chaining
115
+ */
116
+ set(textAlign: string, scale?: number | undefined): BitmapText;
117
+ /**
118
+ * change the text to be displayed
119
+ * @param {number|string|string[]} value - a string, or an array of strings
120
+ * @returns {BitmapText} this object for chaining
121
+ */
122
+ setText(value?: number | string | string[]): BitmapText;
123
+ /**
124
+ * change the font display size
125
+ * @param {number} scale - ratio
126
+ * @returns {BitmapText} this object for chaining
127
+ */
128
+ resize(scale: number): BitmapText;
129
+ /**
130
+ * measure the given text size in pixels
131
+ * @param {string} [text]
132
+ * @returns {TextMetrics} a TextMetrics object with two properties: `width` and `height`, defining the output dimensions
133
+ */
134
+ measureText(text?: string | undefined): TextMetrics;
135
+ /**
136
+ * draw the bitmap font
137
+ * @param {CanvasRenderer|WebGLRenderer} renderer - Reference to the destination renderer instance
138
+ * @param {string} [text]
139
+ * @param {number} [x]
140
+ * @param {number} [y]
141
+ */
142
+ draw(renderer: CanvasRenderer | WebGLRenderer, text?: string | undefined, x?: number | undefined, y?: number | undefined): void;
143
+ /**
144
+ * Destroy function
145
+ * @ignore
146
+ */
147
+ destroy(): void;
148
+ }
149
+ import Renderable from "../renderable.js";
150
+ import Color from "../../math/color.js";
151
+ import TextMetrics from "./textmetrics.js";
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Class for storing relevant data from the font file.
3
+ * @ignore
4
+ */
5
+ export default class BitmapTextData {
6
+ /**
7
+ * @param {string} data - The bitmap font data pulled from the resource loader using me.loader.getBinary()
8
+ */
9
+ constructor(data: string);
10
+ /**
11
+ * @ignore
12
+ */
13
+ onResetEvent(data: any): void;
14
+ padTop: number | undefined;
15
+ padRight: number | undefined;
16
+ padBottom: number | undefined;
17
+ padLeft: number | undefined;
18
+ lineHeight: number | undefined;
19
+ capHeight: any;
20
+ descent: any;
21
+ /**
22
+ * The map of glyphs, each key is a char code.
23
+ * @name glyphs
24
+ * @type {object}
25
+ * @memberof BitmapTextData
26
+ */
27
+ glyphs: object | undefined;
28
+ /**
29
+ * This parses the font data text and builds a map of glyphs containing the data for each character
30
+ * @name parse
31
+ * @memberof BitmapTextData
32
+ * @param {string} fontData
33
+ */
34
+ parse(fontData: string): void;
35
+ }