melonjs 15.2.1 → 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 (291) hide show
  1. package/README.md +1 -1
  2. package/dist/melonjs.mjs/_virtual/_commonjsHelpers.js +1 -1
  3. package/dist/melonjs.mjs/_virtual/earcut.js +1 -1
  4. package/dist/melonjs.mjs/_virtual/howler.js +1 -1
  5. package/dist/melonjs.mjs/_virtual/index.js +1 -1
  6. package/dist/melonjs.mjs/application/application.js +75 -23
  7. package/dist/melonjs.mjs/application/header.js +2 -2
  8. package/dist/melonjs.mjs/application/resize.js +13 -11
  9. package/dist/melonjs.mjs/application/settings.js +37 -1
  10. package/dist/melonjs.mjs/audio/audio.js +4 -6
  11. package/dist/melonjs.mjs/camera/camera2d.js +12 -14
  12. package/dist/melonjs.mjs/const.js +1 -1
  13. package/dist/melonjs.mjs/entity/entity.js +3 -4
  14. package/dist/melonjs.mjs/geometries/ellipse.js +26 -59
  15. package/dist/melonjs.mjs/geometries/line.js +18 -25
  16. package/dist/melonjs.mjs/geometries/path2d.js +16 -13
  17. package/dist/melonjs.mjs/geometries/point.js +8 -16
  18. package/dist/melonjs.mjs/geometries/poly.js +40 -97
  19. package/dist/melonjs.mjs/geometries/rectangle.js +37 -91
  20. package/dist/melonjs.mjs/geometries/roundrect.js +26 -35
  21. package/dist/melonjs.mjs/index.js +6 -6
  22. package/dist/melonjs.mjs/input/gamepad.js +1 -1
  23. package/dist/melonjs.mjs/input/input.js +1 -1
  24. package/dist/melonjs.mjs/input/keyboard.js +3 -3
  25. package/dist/melonjs.mjs/input/pointer.js +4 -4
  26. package/dist/melonjs.mjs/input/pointerevent.js +6 -7
  27. package/dist/melonjs.mjs/lang/console.js +1 -1
  28. package/dist/melonjs.mjs/lang/deprecated.js +2 -2
  29. package/dist/melonjs.mjs/level/level.js +1 -1
  30. package/dist/melonjs.mjs/level/tiled/TMXGroup.js +1 -1
  31. package/dist/melonjs.mjs/level/tiled/TMXLayer.js +16 -33
  32. package/dist/melonjs.mjs/level/tiled/TMXObject.js +3 -4
  33. package/dist/melonjs.mjs/level/tiled/TMXTile.js +4 -4
  34. package/dist/melonjs.mjs/level/tiled/TMXTileMap.js +3 -3
  35. package/dist/melonjs.mjs/level/tiled/TMXTileset.js +4 -7
  36. package/dist/melonjs.mjs/level/tiled/TMXTilesetGroup.js +2 -2
  37. package/dist/melonjs.mjs/level/tiled/TMXUtils.js +37 -47
  38. package/dist/melonjs.mjs/level/tiled/constants.js +1 -1
  39. package/dist/melonjs.mjs/level/tiled/renderer/TMXHexagonalRenderer.js +3 -3
  40. package/dist/melonjs.mjs/level/tiled/renderer/TMXIsometricRenderer.js +2 -2
  41. package/dist/melonjs.mjs/level/tiled/renderer/TMXOrthogonalRenderer.js +2 -2
  42. package/dist/melonjs.mjs/level/tiled/renderer/TMXRenderer.js +2 -2
  43. package/dist/melonjs.mjs/level/tiled/renderer/TMXStaggeredRenderer.js +2 -2
  44. package/dist/melonjs.mjs/level/tiled/renderer/autodetect.js +1 -1
  45. package/dist/melonjs.mjs/loader/cache.js +1 -1
  46. package/dist/melonjs.mjs/loader/loader.js +1 -1
  47. package/dist/melonjs.mjs/loader/loadingscreen.js +1 -1
  48. package/dist/melonjs.mjs/loader/melonjs_logo.png.js +1 -1
  49. package/dist/melonjs.mjs/loader/parser.js +4 -5
  50. package/dist/melonjs.mjs/loader/settings.js +1 -1
  51. package/dist/melonjs.mjs/math/color.js +5 -5
  52. package/dist/melonjs.mjs/math/math.js +1 -1
  53. package/dist/melonjs.mjs/math/matrix2.js +5 -59
  54. package/dist/melonjs.mjs/math/matrix3.js +82 -141
  55. package/dist/melonjs.mjs/math/observable_vector2.js +7 -7
  56. package/dist/melonjs.mjs/math/observable_vector3.js +5 -5
  57. package/dist/melonjs.mjs/math/vector2.js +7 -91
  58. package/dist/melonjs.mjs/math/vector3.js +6 -90
  59. package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/esm/arraymultimap.js +1 -1
  60. package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/esm/multimap.js +1 -1
  61. package/dist/melonjs.mjs/node_modules/earcut/src/earcut.js +1 -1
  62. package/dist/melonjs.mjs/node_modules/eventemitter3/index.js +1 -1
  63. package/dist/melonjs.mjs/node_modules/eventemitter3/index2.js +1 -1
  64. package/dist/melonjs.mjs/node_modules/howler/dist/howler.js +1 -1
  65. package/dist/melonjs.mjs/particles/emitter.js +2 -2
  66. package/dist/melonjs.mjs/particles/particle.js +2 -2
  67. package/dist/melonjs.mjs/particles/settings.js +1 -1
  68. package/dist/melonjs.mjs/physics/body.js +22 -20
  69. package/dist/melonjs.mjs/physics/bounds.js +27 -33
  70. package/dist/melonjs.mjs/physics/collision.js +5 -5
  71. package/dist/melonjs.mjs/physics/detector.js +10 -10
  72. package/dist/melonjs.mjs/physics/quadtree.js +5 -5
  73. package/dist/melonjs.mjs/physics/response.js +1 -1
  74. package/dist/melonjs.mjs/physics/sat.js +3 -4
  75. package/dist/melonjs.mjs/physics/world.js +6 -9
  76. package/dist/melonjs.mjs/plugin/plugin.js +3 -3
  77. package/dist/melonjs.mjs/renderable/collectable.js +2 -2
  78. package/dist/melonjs.mjs/renderable/colorlayer.js +4 -4
  79. package/dist/melonjs.mjs/renderable/container.js +25 -25
  80. package/dist/melonjs.mjs/renderable/draggable.js +1 -1
  81. package/dist/melonjs.mjs/renderable/dragndrop.js +1 -1
  82. package/dist/melonjs.mjs/renderable/imagelayer.js +4 -4
  83. package/dist/melonjs.mjs/renderable/light2d.js +3 -3
  84. package/dist/melonjs.mjs/renderable/nineslicesprite.js +2 -2
  85. package/dist/melonjs.mjs/renderable/renderable.js +31 -39
  86. package/dist/melonjs.mjs/renderable/sprite.js +3 -3
  87. package/dist/melonjs.mjs/renderable/text/bitmaptext.js +421 -0
  88. package/dist/melonjs.mjs/renderable/text/bitmaptextdata.js +195 -0
  89. package/dist/melonjs.mjs/renderable/text/glyph.js +65 -0
  90. package/dist/melonjs.mjs/renderable/text/text.js +422 -0
  91. package/dist/melonjs.mjs/renderable/text/textmetrics.js +175 -0
  92. package/dist/melonjs.mjs/renderable/text/textstyle.js +21 -0
  93. package/dist/melonjs.mjs/renderable/trigger.js +10 -10
  94. package/dist/melonjs.mjs/renderable/ui/uibaseelement.js +7 -7
  95. package/dist/melonjs.mjs/renderable/ui/uispriteelement.js +7 -7
  96. package/dist/melonjs.mjs/renderable/ui/uitextbutton.js +3 -3
  97. package/dist/melonjs.mjs/state/stage.js +13 -14
  98. package/dist/melonjs.mjs/state/state.js +4 -51
  99. package/dist/melonjs.mjs/system/device.js +51 -10
  100. package/dist/melonjs.mjs/system/dom.js +1 -1
  101. package/dist/melonjs.mjs/system/event.js +46 -2
  102. package/dist/melonjs.mjs/system/platform.js +18 -18
  103. package/dist/melonjs.mjs/system/pooling.js +10 -10
  104. package/dist/melonjs.mjs/system/save.js +1 -1
  105. package/dist/melonjs.mjs/system/timer.js +1 -1
  106. package/dist/melonjs.mjs/text/bitmaptext.js +1 -1
  107. package/dist/melonjs.mjs/text/bitmaptextdata.js +3 -6
  108. package/dist/melonjs.mjs/text/glyph.js +1 -1
  109. package/dist/melonjs.mjs/text/text.js +1 -1
  110. package/dist/melonjs.mjs/text/textmetrics.js +1 -1
  111. package/dist/melonjs.mjs/text/textstyle.js +1 -1
  112. package/dist/melonjs.mjs/tweens/easing.js +1 -1
  113. package/dist/melonjs.mjs/tweens/interpolation.js +1 -1
  114. package/dist/melonjs.mjs/tweens/tween.js +2 -2
  115. package/dist/melonjs.mjs/utils/agent.js +1 -1
  116. package/dist/melonjs.mjs/utils/array.js +1 -1
  117. package/dist/melonjs.mjs/utils/file.js +1 -1
  118. package/dist/melonjs.mjs/utils/function.js +2 -3
  119. package/dist/melonjs.mjs/utils/string.js +1 -1
  120. package/dist/melonjs.mjs/utils/utils.js +1 -1
  121. package/dist/melonjs.mjs/video/canvas/canvas_renderer.js +5 -18
  122. package/dist/melonjs.mjs/video/renderer.js +17 -30
  123. package/dist/melonjs.mjs/video/texture/atlas.js +13 -13
  124. package/dist/melonjs.mjs/video/texture/cache.js +1 -1
  125. package/dist/melonjs.mjs/video/texture/canvas_texture.js +15 -15
  126. package/dist/melonjs.mjs/video/utils/autodetect.js +1 -1
  127. package/dist/melonjs.mjs/video/video.js +5 -29
  128. package/dist/melonjs.mjs/video/webgl/buffer/vertex.js +3 -3
  129. package/dist/melonjs.mjs/video/webgl/compositors/compositor.js +13 -14
  130. package/dist/melonjs.mjs/video/webgl/compositors/primitive_compositor.js +5 -5
  131. package/dist/melonjs.mjs/video/webgl/compositors/quad_compositor.js +2 -3
  132. package/dist/melonjs.mjs/video/webgl/glshader.js +2 -2
  133. package/dist/melonjs.mjs/video/webgl/shaders/primitive.frag.js +1 -1
  134. package/dist/melonjs.mjs/video/webgl/shaders/primitive.vert.js +1 -1
  135. package/dist/melonjs.mjs/video/webgl/shaders/quad.frag.js +1 -1
  136. package/dist/melonjs.mjs/video/webgl/shaders/quad.vert.js +1 -1
  137. package/dist/melonjs.mjs/video/webgl/utils/attributes.js +1 -1
  138. package/dist/melonjs.mjs/video/webgl/utils/precision.js +4 -4
  139. package/dist/melonjs.mjs/video/webgl/utils/program.js +1 -1
  140. package/dist/melonjs.mjs/video/webgl/utils/string.js +1 -1
  141. package/dist/melonjs.mjs/video/webgl/utils/uniforms.js +1 -1
  142. package/dist/melonjs.mjs/video/webgl/webgl_renderer.js +62 -67
  143. package/dist/melonjs.module.js +1272 -1713
  144. package/dist/types/application/application.d.ts +32 -31
  145. package/dist/types/application/header.d.ts +2 -2
  146. package/dist/types/application/settings.d.ts +80 -16
  147. package/dist/types/audio/audio.d.ts +4 -6
  148. package/dist/types/camera/camera2d.d.ts +13 -16
  149. package/dist/types/entity/entity.d.ts +0 -1
  150. package/dist/types/geometries/ellipse.d.ts +18 -50
  151. package/dist/types/geometries/path2d.d.ts +1 -1
  152. package/dist/types/geometries/point.d.ts +5 -13
  153. package/dist/types/geometries/poly.d.ts +26 -75
  154. package/dist/types/geometries/rectangle.d.ts +12 -58
  155. package/dist/types/geometries/roundrect.d.ts +2 -11
  156. package/dist/types/index.d.ts +3 -3
  157. package/dist/types/input/gamepad.d.ts +31 -31
  158. package/dist/types/input/keyboard.d.ts +105 -105
  159. package/dist/types/input/pointer.d.ts +21 -21
  160. package/dist/types/input/pointerevent.d.ts +6 -6
  161. package/dist/types/level/tiled/TMXLayer.d.ts +1 -1
  162. package/dist/types/level/tiled/TMXUtils.d.ts +4 -6
  163. package/dist/types/math/matrix2.d.ts +9 -63
  164. package/dist/types/math/matrix3.d.ts +9 -68
  165. package/dist/types/math/observable_vector2.d.ts +2 -2
  166. package/dist/types/math/observable_vector3.d.ts +2 -2
  167. package/dist/types/math/vector2.d.ts +8 -92
  168. package/dist/types/math/vector3.d.ts +8 -92
  169. package/dist/types/particles/settings.d.ts +29 -29
  170. package/dist/types/physics/body.d.ts +10 -8
  171. package/dist/types/physics/bounds.d.ts +24 -30
  172. package/dist/types/physics/collision.d.ts +12 -12
  173. package/dist/types/physics/detector.d.ts +1 -1
  174. package/dist/types/physics/world.d.ts +4 -7
  175. package/dist/types/renderable/container.d.ts +19 -19
  176. package/dist/types/renderable/imagelayer.d.ts +6 -6
  177. package/dist/types/renderable/light2d.d.ts +7 -7
  178. package/dist/types/renderable/renderable.d.ts +10 -18
  179. package/dist/types/renderable/text/bitmaptext.d.ts +151 -0
  180. package/dist/types/renderable/text/bitmaptextdata.d.ts +35 -0
  181. package/dist/types/renderable/text/glyph.d.ts +28 -0
  182. package/dist/types/renderable/text/text.d.ts +159 -0
  183. package/dist/types/renderable/text/textmetrics.d.ts +47 -0
  184. package/dist/types/renderable/text/textstyle.d.ts +5 -0
  185. package/dist/types/renderable/ui/uibaseelement.d.ts +0 -1
  186. package/dist/types/renderable/ui/uispriteelement.d.ts +0 -1
  187. package/dist/types/renderable/ui/uitextbutton.d.ts +2 -7
  188. package/dist/types/state/stage.d.ts +3 -2
  189. package/dist/types/state/state.d.ts +11 -11
  190. package/dist/types/system/device.d.ts +16 -9
  191. package/dist/types/system/event.d.ts +40 -0
  192. package/dist/types/system/platform.d.ts +17 -17
  193. package/dist/types/utils/function.d.ts +1 -2
  194. package/dist/types/video/canvas/canvas_renderer.d.ts +0 -23
  195. package/dist/types/video/renderer.d.ts +16 -43
  196. package/dist/types/video/texture/canvas_texture.d.ts +14 -14
  197. package/dist/types/video/video.d.ts +4 -38
  198. package/dist/types/video/webgl/buffer/vertex.d.ts +2 -2
  199. package/dist/types/video/webgl/compositors/compositor.d.ts +24 -13
  200. package/dist/types/video/webgl/compositors/primitive_compositor.d.ts +0 -1
  201. package/dist/types/video/webgl/compositors/quad_compositor.d.ts +0 -1
  202. package/dist/types/video/webgl/utils/precision.d.ts +1 -1
  203. package/dist/types/video/webgl/webgl_renderer.d.ts +48 -84
  204. package/package.json +15 -15
  205. package/src/application/application.js +73 -21
  206. package/src/application/header.js +1 -1
  207. package/src/application/resize.js +11 -9
  208. package/src/application/settings.js +36 -0
  209. package/src/audio/audio.js +3 -5
  210. package/src/camera/camera2d.js +11 -13
  211. package/src/entity/entity.js +2 -3
  212. package/src/geometries/ellipse.js +25 -58
  213. package/src/geometries/line.js +17 -24
  214. package/src/geometries/path2d.js +15 -12
  215. package/src/geometries/point.js +7 -15
  216. package/src/geometries/poly.js +39 -96
  217. package/src/geometries/rectangle.js +36 -90
  218. package/src/geometries/roundrect.js +25 -34
  219. package/src/index.js +4 -4
  220. package/src/input/keyboard.js +2 -2
  221. package/src/input/pointer.js +3 -3
  222. package/src/input/pointerevent.js +5 -6
  223. package/src/lang/deprecated.js +1 -1
  224. package/src/level/tiled/TMXLayer.js +15 -32
  225. package/src/level/tiled/TMXObject.js +2 -3
  226. package/src/level/tiled/TMXTile.js +3 -3
  227. package/src/level/tiled/TMXTileMap.js +2 -2
  228. package/src/level/tiled/TMXTileset.js +3 -6
  229. package/src/level/tiled/TMXTilesetGroup.js +1 -1
  230. package/src/level/tiled/TMXUtils.js +36 -46
  231. package/src/level/tiled/renderer/TMXHexagonalRenderer.js +2 -2
  232. package/src/level/tiled/renderer/TMXIsometricRenderer.js +1 -1
  233. package/src/level/tiled/renderer/TMXOrthogonalRenderer.js +1 -1
  234. package/src/level/tiled/renderer/TMXRenderer.js +1 -1
  235. package/src/level/tiled/renderer/TMXStaggeredRenderer.js +1 -1
  236. package/src/loader/parser.js +3 -4
  237. package/src/math/color.js +4 -4
  238. package/src/math/matrix2.js +4 -58
  239. package/src/math/matrix3.js +81 -140
  240. package/src/math/observable_vector2.js +6 -6
  241. package/src/math/observable_vector3.js +4 -4
  242. package/src/math/vector2.js +6 -90
  243. package/src/math/vector3.js +5 -89
  244. package/src/particles/emitter.js +1 -1
  245. package/src/particles/particle.js +1 -1
  246. package/src/physics/body.js +21 -19
  247. package/src/physics/bounds.js +26 -32
  248. package/src/physics/collision.js +4 -4
  249. package/src/physics/detector.js +9 -9
  250. package/src/physics/quadtree.js +4 -4
  251. package/src/physics/sat.js +2 -3
  252. package/src/physics/world.js +5 -8
  253. package/src/polyfill/roundrect.js +163 -163
  254. package/src/renderable/collectable.js +1 -1
  255. package/src/renderable/colorlayer.js +3 -3
  256. package/src/renderable/container.js +24 -24
  257. package/src/renderable/imagelayer.js +3 -3
  258. package/src/renderable/light2d.js +2 -2
  259. package/src/renderable/nineslicesprite.js +1 -1
  260. package/src/renderable/renderable.js +30 -38
  261. package/src/renderable/sprite.js +2 -2
  262. package/src/{text → renderable/text}/bitmaptext.js +8 -8
  263. package/src/{text → renderable/text}/bitmaptextdata.js +4 -7
  264. package/src/{text → renderable/text}/glyph.js +1 -1
  265. package/src/{text → renderable/text}/text.js +16 -17
  266. package/src/{text → renderable/text}/textmetrics.js +2 -2
  267. package/src/renderable/trigger.js +9 -9
  268. package/src/renderable/ui/uibaseelement.js +6 -6
  269. package/src/renderable/ui/uispriteelement.js +6 -6
  270. package/src/renderable/ui/uitextbutton.js +2 -2
  271. package/src/state/stage.js +12 -13
  272. package/src/state/state.js +2 -61
  273. package/src/system/device.js +50 -9
  274. package/src/system/event.js +44 -0
  275. package/src/system/platform.js +18 -18
  276. package/src/system/pooling.js +9 -9
  277. package/src/tweens/tween.js +1 -1
  278. package/src/utils/function.js +1 -2
  279. package/src/video/canvas/canvas_renderer.js +4 -17
  280. package/src/video/renderer.js +16 -29
  281. package/src/video/texture/atlas.js +12 -12
  282. package/src/video/texture/canvas_texture.js +14 -14
  283. package/src/video/video.js +7 -28
  284. package/src/video/webgl/buffer/vertex.js +2 -2
  285. package/src/video/webgl/compositors/compositor.js +12 -13
  286. package/src/video/webgl/compositors/primitive_compositor.js +4 -4
  287. package/src/video/webgl/compositors/quad_compositor.js +1 -2
  288. package/src/video/webgl/glshader.js +1 -1
  289. package/src/video/webgl/utils/precision.js +3 -3
  290. package/src/video/webgl/webgl_renderer.js +61 -66
  291. /package/src/{text → renderable/text}/textstyle.js +0 -0
@@ -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
@@ -204,6 +198,7 @@ export default class Renderable extends Rect {
204
198
  y: boolean;
205
199
  };
206
200
  _inViewport: boolean;
201
+ _tint: object;
207
202
  /**
208
203
  * Whether the renderable object is floating (i.e. used screen coordinates), or contained in a floating parent container
209
204
  * @see Renderable#floating
@@ -222,7 +217,6 @@ export default class Renderable extends Rect {
222
217
  * this.tint.setColor(255, 255, 255);
223
218
  */
224
219
  get tint(): Color;
225
- _tint: object | undefined;
226
220
  set inViewport(arg: boolean);
227
221
  /**
228
222
  * Whether the renderable object is visible and within the 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,6 +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";
414
- import Color from "./../math/color.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
+ }
@@ -0,0 +1,28 @@
1
+ /**
2
+ * a glyph representing a single character in a font
3
+ * @ignore
4
+ */
5
+ export default class Glyph {
6
+ id: number;
7
+ x: number;
8
+ y: number;
9
+ width: number;
10
+ height: number;
11
+ u: number;
12
+ v: number;
13
+ u2: number;
14
+ v2: number;
15
+ xoffset: number;
16
+ yoffset: number;
17
+ xadvance: number;
18
+ fixedWidth: boolean;
19
+ /**
20
+ * @ignore
21
+ */
22
+ getKerning(ch: any): any;
23
+ /**
24
+ * @ignore
25
+ */
26
+ setKerning(ch: any, value: any): void;
27
+ kerning: {} | undefined;
28
+ }
@@ -0,0 +1,159 @@
1
+ /**
2
+ * @classdesc
3
+ * a generic system font object.
4
+ * @augments Renderable
5
+ */
6
+ export default class Text 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} settings.font - a CSS family font name
12
+ * @param {number|string} settings.size - size, or size + suffix (px, em, pt)
13
+ * @param {Color|string} [settings.fillStyle="#000000"] - a CSS color value
14
+ * @param {Color|string} [settings.strokeStyle="#000000"] - a CSS color value
15
+ * @param {number} [settings.lineWidth=0] - 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
+ * let font = new me.Text(0, 0, {font: "Arial", size: 8, fillStyle: this.color});
24
+ */
25
+ constructor(x: number, y: number, settings: {
26
+ font: string;
27
+ size: number | string;
28
+ fillStyle?: string | Color | undefined;
29
+ strokeStyle?: string | Color | undefined;
30
+ lineWidth?: number | undefined;
31
+ textAlign?: string | undefined;
32
+ textBaseline?: string | undefined;
33
+ lineHeight?: number | undefined;
34
+ anchorPoint?: any;
35
+ wordWrapWidth?: number | undefined;
36
+ text?: string | string[] | undefined;
37
+ });
38
+ /** @ignore */
39
+ onResetEvent(x: any, y: any, settings: any): void;
40
+ fillStyle: any;
41
+ strokeStyle: any;
42
+ /**
43
+ * sets the current line width, in pixels, when drawing stroke
44
+ * @public
45
+ * @type {number}
46
+ * @default 0
47
+ */
48
+ public lineWidth: number | undefined;
49
+ /**
50
+ * Set the default text alignment (or justification),<br>
51
+ * possible values are "left", "right", and "center".<br>
52
+ * @public
53
+ * @type {string}
54
+ * @default "left"
55
+ */
56
+ public textAlign: string | undefined;
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 | undefined;
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 | undefined;
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 | undefined;
81
+ /**
82
+ * the text to be displayed
83
+ * @private
84
+ */
85
+ private _text;
86
+ /**
87
+ * the font size (in px)
88
+ * @public
89
+ * @type {number}
90
+ * @default 10
91
+ */
92
+ public fontSize: number | undefined;
93
+ canvasTexture: object | undefined;
94
+ metrics: TextMetrics | undefined;
95
+ /**
96
+ * make the font bold
97
+ * @returns {Text} this object for chaining
98
+ */
99
+ bold(): Text;
100
+ font: any;
101
+ /**
102
+ * make the font italic
103
+ * @returns {Text} this object for chaining
104
+ */
105
+ italic(): Text;
106
+ /**
107
+ * set the font family and size
108
+ * @param {string} font - a CSS font name
109
+ * @param {number|string} [size=10] - size in px, or size + suffix (px, em, pt)
110
+ * @returns {Text} this object for chaining
111
+ * @example
112
+ * font.setFont("Arial", 20);
113
+ * font.setFont("Arial", "1.5em");
114
+ */
115
+ setFont(font: string, size?: string | number | undefined): Text;
116
+ /**
117
+ * change the text to be displayed
118
+ * @param {number|string|string[]} value - a string, or an array of strings
119
+ * @returns {Text} this object for chaining
120
+ */
121
+ setText(value?: number | string | string[]): Text;
122
+ glTextureUnit: any;
123
+ /**
124
+ * measure the given text size in pixels
125
+ * @param {CanvasRenderer|WebGLRenderer} renderer - reference to the active renderer
126
+ * @param {string} [text] - the text to be measured
127
+ * @returns {TextMetrics} a TextMetrics object defining the dimensions of the given piece of text
128
+ */
129
+ measureText(renderer: CanvasRenderer | WebGLRenderer, text?: string | undefined): TextMetrics;
130
+ /**
131
+ * draw a text at the specified coord
132
+ * @param {CanvasRenderer|WebGLRenderer} renderer - Reference to the destination renderer instance
133
+ * @param {string} [text]
134
+ * @param {number} [x]
135
+ * @param {number} [y]
136
+ */
137
+ draw(renderer: CanvasRenderer | WebGLRenderer, text?: string | undefined, x?: number | undefined, y?: number | undefined): void;
138
+ /**
139
+ * draw a stroke text at the specified coord, as defined by the `lineWidth` and `fillStroke` properties.
140
+ * @deprecated since 15.0.0
141
+ * @param {CanvasRenderer|WebGLRenderer} renderer - Reference to the destination renderer instance
142
+ * @param {string} text
143
+ * @param {number} x
144
+ * @param {number} y
145
+ */
146
+ drawStroke(renderer: CanvasRenderer | WebGLRenderer, text: string, x: number, y: number): void;
147
+ /**
148
+ * @ignore
149
+ */
150
+ _drawFont(context: any, text: any, x: any, y: any): TextMetrics | undefined;
151
+ /**
152
+ * Destroy function
153
+ * @ignore
154
+ */
155
+ destroy(): void;
156
+ }
157
+ import Renderable from "../renderable.js";
158
+ import TextMetrics from "./textmetrics.js";
159
+ import Color from "../../math/color.js";