littlejsengine 1.2.3 → 1.3.3

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 (94) hide show
  1. package/README.md +4 -3
  2. package/build.bat +6 -6
  3. package/buildSetup.bat +7 -0
  4. package/docs/Audio.html +2268 -0
  5. package/docs/Color.html +3376 -0
  6. package/docs/Debug.html +2933 -0
  7. package/docs/Draw.html +4480 -0
  8. package/docs/EngineObject.html +4734 -0
  9. package/docs/FontImage.html +1055 -0
  10. package/docs/Input.html +2806 -0
  11. package/docs/Medal.html +1007 -0
  12. package/docs/Medals.html +628 -0
  13. package/docs/Music.html +584 -0
  14. package/docs/Newgrounds.html +1399 -0
  15. package/docs/Particle.html +4825 -0
  16. package/docs/ParticleEmitter.html +8099 -0
  17. package/docs/Random.html +1774 -0
  18. package/docs/Settings.html +3140 -0
  19. package/docs/Sound.html +1249 -0
  20. package/docs/TileCollision.html +1409 -0
  21. package/docs/TileLayer.html +7310 -0
  22. package/docs/TileLayerData.html +1052 -0
  23. package/docs/Timer.html +1295 -0
  24. package/docs/Utilities.html +3278 -0
  25. package/docs/Vector2.html +4266 -0
  26. package/docs/WebGL.html +2307 -0
  27. package/docs/engine.js.html +443 -0
  28. package/docs/engineAudio.js.html +627 -0
  29. package/docs/engineDebug.js.html +554 -0
  30. package/docs/engineDraw.js.html +539 -0
  31. package/docs/engineInput.js.html +571 -0
  32. package/docs/engineMedals.js.html +460 -0
  33. package/docs/engineObject.js.html +533 -0
  34. package/docs/engineParticles.js.html +443 -0
  35. package/docs/engineSettings.js.html +381 -0
  36. package/docs/engineTileLayer.js.html +503 -0
  37. package/docs/engineUtilities.js.html +700 -0
  38. package/docs/engineWebGL.js.html +511 -0
  39. package/docs/fonts/MavenPro-Regular.ttf +0 -0
  40. package/docs/fonts/Montserrat-Regular.ttf +0 -0
  41. package/docs/fonts/Muli-Black.ttf +0 -0
  42. package/docs/fonts/OFL-hind.txt +93 -0
  43. package/docs/fonts/OFL-montserrat.txt +93 -0
  44. package/docs/global.html +1771 -0
  45. package/docs/index.css +6 -0
  46. package/docs/index.html +267 -0
  47. package/docs/scripts/fix-code-block.js +53 -0
  48. package/docs/scripts/fix-navbar.js +25 -0
  49. package/docs/scripts/linenumber.js +25 -0
  50. package/docs/scripts/misc.js +217 -0
  51. package/docs/scripts/resize.js +85 -0
  52. package/docs/scripts/search.js +83 -0
  53. package/docs/scripts/third-party/Apache-License-2.0.txt +202 -0
  54. package/docs/scripts/third-party/fuse.js +9 -0
  55. package/docs/scripts/third-party/lang-css.js +2 -0
  56. package/docs/scripts/third-party/prettify.js +28 -0
  57. package/docs/static/favicon.png +0 -0
  58. package/docs/static/index.css +4 -0
  59. package/docs/styles/clean-jsdoc-theme-base.css +393 -0
  60. package/docs/styles/clean-jsdoc-theme-dark.css +324 -0
  61. package/docs/styles/clean-jsdoc-theme-light.css +319 -0
  62. package/docs/styles/reset.css +346 -0
  63. package/docs/styles/third-party/ionicons.min.css +11 -0
  64. package/docs/styles/third-party/prettify-jsdoc.css +111 -0
  65. package/docs/styles/third-party/prettify-tomorrow.css +5 -0
  66. package/engine/engine.all.js +171 -67
  67. package/engine/engine.all.min.js +1 -1
  68. package/engine/engine.all.release.js +162 -53
  69. package/engine/engine.js +3 -3
  70. package/engine/engineAudio.js +5 -7
  71. package/engine/engineBuild.bat +3 -4
  72. package/engine/engineDebug.js +9 -14
  73. package/engine/engineDraw.js +32 -13
  74. package/engine/engineInput.js +5 -1
  75. package/engine/engineMedals.js +5 -2
  76. package/engine/engineObject.js +24 -5
  77. package/engine/engineParticles.js +2 -2
  78. package/engine/engineSettings.js +5 -0
  79. package/engine/engineTileLayer.js +11 -10
  80. package/engine/engineUtilities.js +67 -7
  81. package/engine/engineWebGL.js +3 -3
  82. package/engine/index.d.ts +57 -18
  83. package/examples/breakout/index.html +3 -3
  84. package/examples/particles/index.html +366 -0
  85. package/examples/particles/tiles.png +0 -0
  86. package/examples/platformer/gameEffects.js +6 -6
  87. package/examples/platformer/index.html +6 -6
  88. package/examples/puzzle/game.js +4 -2
  89. package/examples/puzzle/index.html +2 -2
  90. package/examples/stress/index.html +1 -1
  91. package/game.js +3 -14
  92. package/index.html +13 -13
  93. package/package.json +1 -1
  94. package/engine/engineBuildSetup.bat +0 -7
@@ -0,0 +1,503 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+
4
+ <head>
5
+ <meta charset="utf-8">
6
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
7
+
8
+ <!-- Adding favicon -->
9
+
10
+ <link rel="icon" href="./static/favicon.png" />
11
+
12
+
13
+ <!-- Adding meta -->
14
+
15
+
16
+ <!-- Adding external script-->
17
+
18
+
19
+ <!-- Adding external style-->
20
+
21
+
22
+ <!-- Adding scripts-->
23
+
24
+
25
+ <!-- Adding style-->
26
+
27
+
28
+ <!-- Adding overlay script-->
29
+
30
+
31
+ <!-- Adding overlay style-->
32
+
33
+
34
+
35
+ <title>
36
+ engineTileLayer.js
37
+ </title>
38
+
39
+ <!--[if lt IE 9]>
40
+ <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
41
+ <![endif]-->
42
+ <link type="text/css" rel="stylesheet" href="styles/third-party/ionicons.min.css">
43
+ <link type="text/css" rel="stylesheet" href="styles/third-party/prettify-tomorrow.css">
44
+ <link type="text/css" rel="stylesheet" href="styles/reset.css">
45
+ <link type="text/css" rel="stylesheet" href="styles/clean-jsdoc-theme-base.css">
46
+ <link type="text/css" rel="stylesheet" href="styles/clean-jsdoc-theme-dark.css">
47
+
48
+ <style>
49
+ .prettyprint code {font-family:monospace}
50
+ </style>
51
+
52
+ <svg aria-hidden="true" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
53
+ style="display:none">
54
+ <defs>
55
+ <symbol id="copy-icon" viewbox="0 0 488.3 488.3">
56
+ <g>
57
+ <path
58
+ d="M314.25,85.4h-227c-21.3,0-38.6,17.3-38.6,38.6v325.7c0,21.3,17.3,38.6,38.6,38.6h227c21.3,0,38.6-17.3,38.6-38.6V124 C352.75,102.7,335.45,85.4,314.25,85.4z M325.75,449.6c0,6.4-5.2,11.6-11.6,11.6h-227c-6.4,0-11.6-5.2-11.6-11.6V124 c0-6.4,5.2-11.6,11.6-11.6h227c6.4,0,11.6,5.2,11.6,11.6V449.6z" />
59
+ <path
60
+ d="M401.05,0h-227c-21.3,0-38.6,17.3-38.6,38.6c0,7.5,6,13.5,13.5,13.5s13.5-6,13.5-13.5c0-6.4,5.2-11.6,11.6-11.6h227 c6.4,0,11.6,5.2,11.6,11.6v325.7c0,6.4-5.2,11.6-11.6,11.6c-7.5,0-13.5,6-13.5,13.5s6,13.5,13.5,13.5c21.3,0,38.6-17.3,38.6-38.6 V38.6C439.65,17.3,422.35,0,401.05,0z" />
61
+ </g>
62
+ </symbol>
63
+ <symbol id='search-icon' viewBox="0 0 512 512">
64
+ <g>
65
+ <g>
66
+ <path
67
+ d="M225.474,0C101.151,0,0,101.151,0,225.474c0,124.33,101.151,225.474,225.474,225.474 c124.33,0,225.474-101.144,225.474-225.474C450.948,101.151,349.804,0,225.474,0z M225.474,409.323 c-101.373,0-183.848-82.475-183.848-183.848S124.101,41.626,225.474,41.626s183.848,82.475,183.848,183.848 S326.847,409.323,225.474,409.323z" />
68
+ </g>
69
+ </g>
70
+ <g>
71
+ <g>
72
+ <path
73
+ d="M505.902,476.472L386.574,357.144c-8.131-8.131-21.299-8.131-29.43,0c-8.131,8.124-8.131,21.306,0,29.43l119.328,119.328 c4.065,4.065,9.387,6.098,14.715,6.098c5.321,0,10.649-2.033,14.715-6.098C514.033,497.778,514.033,484.596,505.902,476.472z" />
74
+ </g>
75
+ </g>
76
+ </symbol>
77
+ <symbol id="down-icon" viewBox="0 0 16 16">
78
+ <path
79
+ fill-rule="evenodd"
80
+ clip-rule="evenodd"
81
+ d="M12.7803 6.21967C13.0732 6.51256 13.0732 6.98744 12.7803 7.28033L8.53033 11.5303C8.23744 11.8232 7.76256 11.8232 7.46967 11.5303L3.21967 7.28033C2.92678 6.98744 2.92678 6.51256 3.21967 6.21967C3.51256 5.92678 3.98744 5.92678 4.28033 6.21967L8 9.93934L11.7197 6.21967C12.0126 5.92678 12.4874 5.92678 12.7803 6.21967Z"
82
+ >
83
+ </path>
84
+ </symbol>
85
+ </defs>
86
+ </svg>
87
+ </head>
88
+
89
+ <body>
90
+
91
+ <nav class="navbar" id="navbar">
92
+ <div class="navbar-heading" id="navbar-heading"><a href="index.html"><h2 class="navbar-heading-text">LittleJS - The Tiny JavaScript Game Engine That Can!</h2></a></div><div class="search-box" id="search-box"><div class="search-box-input-container"><input class="search-box-input" type="text" placeholder="Search..." id="search-box-input" /><svg class="search-icon" alt="search-icon"><use xlink:href="#search-icon"></use></svg></div><div class="search-item-container" id="search-item-container"><ul class="search-item-ul" id="search-item-ul"></ul></div></div><div class="sidebar-main-content" id="sidebar-main-content"><div class="accordion collapsed" id="3563688" > <h3 class="accordion-heading">Classes<svg><use xlink:href="#down-icon"></use></svg></h3><ul class="accordion-content"><li class="accordion collapsed child" id=7746959><div class="accordion-heading child"><a href="Color.html">Color</a><svg><use xlink:href="#down-icon"></use></svg></div><ul class='methods accordion-content'><li data-type='method'><a href="Color.html#add">add</a></li><li data-type='method'><a href="Color.html#clamp">clamp</a></li><li data-type='method'><a href="Color.html#copy">copy</a></li><li data-type='method'><a href="Color.html#divide">divide</a></li><li data-type='method'><a href="Color.html#getHSLA">getHSLA</a></li><li data-type='method'><a href="Color.html#hex">hex</a></li><li data-type='method'><a href="Color.html#lerp">lerp</a></li><li data-type='method'><a href="Color.html#multiply">multiply</a></li><li data-type='method'><a href="Color.html#mutate">mutate</a></li><li data-type='method'><a href="Color.html#rgbaInt">rgbaInt</a></li><li data-type='method'><a href="Color.html#scale">scale</a></li><li data-type='method'><a href="Color.html#setHex">setHex</a></li><li data-type='method'><a href="Color.html#setHSLA">setHSLA</a></li><li data-type='method'><a href="Color.html#subtract">subtract</a></li><li data-type='method'><a href="Color.html#toString">toString</a></li></ul></li><li class="accordion collapsed child" id=6307330><div class="accordion-heading child"><a href="EngineObject.html">EngineObject</a><svg><use xlink:href="#down-icon"></use></svg></div><ul class='methods accordion-content'><li data-type='method'><a href="EngineObject.html#addChild">addChild</a></li><li data-type='method'><a href="EngineObject.html#applyAcceleration">applyAcceleration</a></li><li data-type='method'><a href="EngineObject.html#applyForce">applyForce</a></li><li data-type='method'><a href="EngineObject.html#collideWithObject">collideWithObject</a></li><li data-type='method'><a href="EngineObject.html#collideWithTile">collideWithTile</a></li><li data-type='method'><a href="EngineObject.html#collideWithTileRaycast">collideWithTileRaycast</a></li><li data-type='method'><a href="EngineObject.html#destroy">destroy</a></li><li data-type='method'><a href="EngineObject.html#getAliveTime">getAliveTime</a></li><li data-type='method'><a href="EngineObject.html#getMirrorSign">getMirrorSign</a></li><li data-type='method'><a href="EngineObject.html#removeChild">removeChild</a></li><li data-type='method'><a href="EngineObject.html#render">render</a></li><li data-type='method'><a href="EngineObject.html#setCollision">setCollision</a></li><li data-type='method'><a href="EngineObject.html#update">update</a></li></ul></li><li class="accordion collapsed child" id=8508237><div class="accordion-heading child"><a href="FontImage.html">FontImage</a><svg><use xlink:href="#down-icon"></use></svg></div><ul class='methods accordion-content'><li data-type='method'><a href="FontImage.html#drawText">drawText</a></li><li data-type='method'><a href="FontImage.html#drawTextScreen">drawTextScreen</a></li></ul></li><li class="accordion collapsed child" id=2613323><div class="accordion-heading child"><a href="Medal.html">Medal</a><svg><use xlink:href="#down-icon"></use></svg></div><ul class='methods accordion-content'><li data-type='method'><a href="Medal.html#render">render</a></li><li data-type='method'><a href="Medal.html#renderIcon">renderIcon</a></li><li data-type='method'><a href="Medal.html#unlock">unlock</a></li></ul></li><li class="accordion collapsed child" id=5931143><div class="accordion-heading child"><a href="Music.html">Music</a><svg><use xlink:href="#down-icon"></use></svg></div><ul class='methods accordion-content'><li data-type='method'><a href="Music.html#play">play</a></li></ul></li><li class="accordion collapsed child" id=7102537><div class="accordion-heading child"><a href="Newgrounds.html">Newgrounds</a><svg><use xlink:href="#down-icon"></use></svg></div><ul class='methods accordion-content'><li data-type='method'><a href="Newgrounds.html#call">call</a></li><li data-type='method'><a href="Newgrounds.html#getScores">getScores</a></li><li data-type='method'><a href="Newgrounds.html#logView">logView</a></li><li data-type='method'><a href="Newgrounds.html#postScore">postScore</a></li><li data-type='method'><a href="Newgrounds.html#unlockMedal">unlockMedal</a></li></ul></li><li class="accordion collapsed child" id=4104404><div class="accordion-heading child"><a href="Particle.html">Particle</a><svg><use xlink:href="#down-icon"></use></svg></div><ul class='methods accordion-content'><li data-type='method'><a href="Particle.html#addChild">addChild</a></li><li data-type='method'><a href="Particle.html#applyAcceleration">applyAcceleration</a></li><li data-type='method'><a href="Particle.html#applyForce">applyForce</a></li><li data-type='method'><a href="Particle.html#collideWithObject">collideWithObject</a></li><li data-type='method'><a href="Particle.html#collideWithTile">collideWithTile</a></li><li data-type='method'><a href="Particle.html#collideWithTileRaycast">collideWithTileRaycast</a></li><li data-type='method'><a href="Particle.html#destroy">destroy</a></li><li data-type='method'><a href="Particle.html#getAliveTime">getAliveTime</a></li><li data-type='method'><a href="Particle.html#getMirrorSign">getMirrorSign</a></li><li data-type='method'><a href="Particle.html#removeChild">removeChild</a></li><li data-type='method'><a href="Particle.html#render">render</a></li><li data-type='method'><a href="Particle.html#setCollision">setCollision</a></li><li data-type='method'><a href="Particle.html#update">update</a></li></ul></li><li class="accordion collapsed child" id=8166593><div class="accordion-heading child"><a href="ParticleEmitter.html">ParticleEmitter</a><svg><use xlink:href="#down-icon"></use></svg></div><ul class='methods accordion-content'><li data-type='method'><a href="ParticleEmitter.html#addChild">addChild</a></li><li data-type='method'><a href="ParticleEmitter.html#applyAcceleration">applyAcceleration</a></li><li data-type='method'><a href="ParticleEmitter.html#applyForce">applyForce</a></li><li data-type='method'><a href="ParticleEmitter.html#collideWithObject">collideWithObject</a></li><li data-type='method'><a href="ParticleEmitter.html#collideWithTile">collideWithTile</a></li><li data-type='method'><a href="ParticleEmitter.html#collideWithTileRaycast">collideWithTileRaycast</a></li><li data-type='method'><a href="ParticleEmitter.html#destroy">destroy</a></li><li data-type='method'><a href="ParticleEmitter.html#emitParticle">emitParticle</a></li><li data-type='method'><a href="ParticleEmitter.html#getAliveTime">getAliveTime</a></li><li data-type='method'><a href="ParticleEmitter.html#getMirrorSign">getMirrorSign</a></li><li data-type='method'><a href="ParticleEmitter.html#removeChild">removeChild</a></li><li data-type='method'><a href="ParticleEmitter.html#render">render</a></li><li data-type='method'><a href="ParticleEmitter.html#setCollision">setCollision</a></li><li data-type='method'><a href="ParticleEmitter.html#update">update</a></li></ul></li><li class="accordion collapsed child" id=1946205><div class="accordion-heading child"><a href="Sound.html">Sound</a><svg><use xlink:href="#down-icon"></use></svg></div><ul class='methods accordion-content'><li data-type='method'><a href="Sound.html#play">play</a></li><li data-type='method'><a href="Sound.html#playNote">playNote</a></li></ul></li><li class="accordion collapsed child" id=2790513><div class="accordion-heading child"><a href="TileLayer.html">TileLayer</a><svg><use xlink:href="#down-icon"></use></svg></div><ul class='methods accordion-content'><li data-type='method'><a href="TileLayer.html#addChild">addChild</a></li><li data-type='method'><a href="TileLayer.html#applyAcceleration">applyAcceleration</a></li><li data-type='method'><a href="TileLayer.html#applyForce">applyForce</a></li><li data-type='method'><a href="TileLayer.html#collideWithObject">collideWithObject</a></li><li data-type='method'><a href="TileLayer.html#collideWithTile">collideWithTile</a></li><li data-type='method'><a href="TileLayer.html#collideWithTileRaycast">collideWithTileRaycast</a></li><li data-type='method'><a href="TileLayer.html#destroy">destroy</a></li><li data-type='method'><a href="TileLayer.html#drawAllTileData">drawAllTileData</a></li><li data-type='method'><a href="TileLayer.html#drawCanvas2D">drawCanvas2D</a></li><li data-type='method'><a href="TileLayer.html#drawRect">drawRect</a></li><li data-type='method'><a href="TileLayer.html#drawTile">drawTile</a></li><li data-type='method'><a href="TileLayer.html#drawTileData">drawTileData</a></li><li data-type='method'><a href="TileLayer.html#getAliveTime">getAliveTime</a></li><li data-type='method'><a href="TileLayer.html#getData">getData</a></li><li data-type='method'><a href="TileLayer.html#getMirrorSign">getMirrorSign</a></li><li data-type='method'><a href="TileLayer.html#redraw">redraw</a></li><li data-type='method'><a href="TileLayer.html#redrawEnd">redrawEnd</a></li><li data-type='method'><a href="TileLayer.html#redrawStart">redrawStart</a></li><li data-type='method'><a href="TileLayer.html#removeChild">removeChild</a></li><li data-type='method'><a href="TileLayer.html#render">render</a></li><li data-type='method'><a href="TileLayer.html#setCollision">setCollision</a></li><li data-type='method'><a href="TileLayer.html#setData">setData</a></li><li data-type='method'><a href="TileLayer.html#update">update</a></li></ul></li><li class="accordion collapsed child" id=8451372><div class="accordion-heading child"><a href="TileLayerData.html">TileLayerData</a><svg><use xlink:href="#down-icon"></use></svg></div><ul class='methods accordion-content'><li data-type='method'><a href="TileLayerData.html#clear">clear</a></li></ul></li><li class="accordion collapsed child" id=1385312><div class="accordion-heading child"><a href="Timer.html">Timer</a><svg><use xlink:href="#down-icon"></use></svg></div><ul class='methods accordion-content'><li data-type='method'><a href="Timer.html#active">active</a></li><li data-type='method'><a href="Timer.html#elapsed">elapsed</a></li><li data-type='method'><a href="Timer.html#get">get</a></li><li data-type='method'><a href="Timer.html#getPercent">getPercent</a></li><li data-type='method'><a href="Timer.html#isSet">isSet</a></li><li data-type='method'><a href="Timer.html#set">set</a></li><li data-type='method'><a href="Timer.html#toString">toString</a></li><li data-type='method'><a href="Timer.html#unset">unset</a></li></ul></li><li class="accordion collapsed child" id=5094252><div class="accordion-heading child"><a href="Vector2.html">Vector2</a><svg><use xlink:href="#down-icon"></use></svg></div><ul class='methods accordion-content'><li data-type='method'><a href="Vector2.html#add">add</a></li><li data-type='method'><a href="Vector2.html#angle">angle</a></li><li data-type='method'><a href="Vector2.html#area">area</a></li><li data-type='method'><a href="Vector2.html#arrayCheck">arrayCheck</a></li><li data-type='method'><a href="Vector2.html#clampLength">clampLength</a></li><li data-type='method'><a href="Vector2.html#copy">copy</a></li><li data-type='method'><a href="Vector2.html#cross">cross</a></li><li data-type='method'><a href="Vector2.html#direction">direction</a></li><li data-type='method'><a href="Vector2.html#distance">distance</a></li><li data-type='method'><a href="Vector2.html#distanceSquared">distanceSquared</a></li><li data-type='method'><a href="Vector2.html#divide">divide</a></li><li data-type='method'><a href="Vector2.html#dot">dot</a></li><li data-type='method'><a href="Vector2.html#floor">floor</a></li><li data-type='method'><a href="Vector2.html#invert">invert</a></li><li data-type='method'><a href="Vector2.html#length">length</a></li><li data-type='method'><a href="Vector2.html#lengthSquared">lengthSquared</a></li><li data-type='method'><a href="Vector2.html#lerp">lerp</a></li><li data-type='method'><a href="Vector2.html#multiply">multiply</a></li><li data-type='method'><a href="Vector2.html#normalize">normalize</a></li><li data-type='method'><a href="Vector2.html#rotate">rotate</a></li><li data-type='method'><a href="Vector2.html#scale">scale</a></li><li data-type='method'><a href="Vector2.html#setAngle">setAngle</a></li><li data-type='method'><a href="Vector2.html#subtract">subtract</a></li><li data-type='method'><a href="Vector2.html#toString">toString</a></li></ul></li></ul> </div><div class="accordion collapsed" id="9985463" > <h3 class="accordion-heading">Namespaces<svg><use xlink:href="#down-icon"></use></svg></h3><ul class="accordion-content"><li class="accordion collapsed child" id=1451135><div class="accordion-heading child"><a href="Debug.html">Debug</a><svg><use xlink:href="#down-icon"></use></svg></div><ul class='methods accordion-content'><li data-type='method'><a href="Debug.html#.debugAABB">debugAABB</a></li><li data-type='method'><a href="Debug.html#.debugCircle">debugCircle</a></li><li data-type='method'><a href="Debug.html#.debugClear">debugClear</a></li><li data-type='method'><a href="Debug.html#.debugLine">debugLine</a></li><li data-type='method'><a href="Debug.html#.debugPoint">debugPoint</a></li><li data-type='method'><a href="Debug.html#.debugRect">debugRect</a></li><li data-type='method'><a href="Debug.html#.debugSaveCanvas">debugSaveCanvas</a></li><li data-type='method'><a href="Debug.html#.debugText">debugText</a></li></ul></li><li class="accordion collapsed child" id=3748274><div class="accordion-heading child"><a href="Draw.html">Draw</a><svg><use xlink:href="#down-icon"></use></svg></div><ul class='methods accordion-content'><li data-type='method'><a href="Draw.html#.drawCanvas2D">drawCanvas2D</a></li><li data-type='method'><a href="Draw.html#.drawLine">drawLine</a></li><li data-type='method'><a href="Draw.html#.drawRect">drawRect</a></li><li data-type='method'><a href="Draw.html#.drawRectScreenSpace">drawRectScreenSpace</a></li><li data-type='method'><a href="Draw.html#.drawText">drawText</a></li><li data-type='method'><a href="Draw.html#.drawTextScreen">drawTextScreen</a></li><li data-type='method'><a href="Draw.html#.drawTile">drawTile</a></li><li data-type='method'><a href="Draw.html#.drawTileScreenSpace">drawTileScreenSpace</a></li><li data-type='method'><a href="Draw.html#.isFullscreen">isFullscreen</a></li><li data-type='method'><a href="Draw.html#.screenToWorld">screenToWorld</a></li><li data-type='method'><a href="Draw.html#.setBlendMode">setBlendMode</a></li><li data-type='method'><a href="Draw.html#.toggleFullscreen">toggleFullscreen</a></li><li data-type='method'><a href="Draw.html#.worldToScreen">worldToScreen</a></li></ul></li><li class="accordion collapsed child" id=1641359><div class="accordion-heading child"><a href="Input.html">Input</a><svg><use xlink:href="#down-icon"></use></svg></div><ul class='methods accordion-content'><li data-type='method'><a href="Input.html#.clearInput">clearInput</a></li><li data-type='method'><a href="Input.html#.gamepadIsDown">gamepadIsDown</a></li><li data-type='method'><a href="Input.html#.gamepadStick">gamepadStick</a></li><li data-type='method'><a href="Input.html#.gamepadWasPressed">gamepadWasPressed</a></li><li data-type='method'><a href="Input.html#.gamepadWasReleased">gamepadWasReleased</a></li><li data-type='method'><a href="Input.html#.keyIsDown">keyIsDown</a></li><li data-type='method'><a href="Input.html#.keyWasPressed">keyWasPressed</a></li><li data-type='method'><a href="Input.html#.keyWasReleased">keyWasReleased</a></li><li data-type='method'><a href="Input.html#.vibrate">vibrate</a></li><li data-type='method'><a href="Input.html#.vibrateStop">vibrateStop</a></li></ul></li><li class="accordion collapsed child" id=9832293><div class="accordion-heading child"><a href="Medals.html">Medals</a><svg><use xlink:href="#down-icon"></use></svg></div><ul class='methods accordion-content'><li data-type='method'><a href="Medals.html#.medalsInit">medalsInit</a></li></ul></li><li class="accordion collapsed child" id=219095><div class="accordion-heading child"><a href="Random.html">Random</a><svg><use xlink:href="#down-icon"></use></svg></div><ul class='methods accordion-content'><li data-type='method'><a href="Random.html#.rand">rand</a></li><li data-type='method'><a href="Random.html#.randColor">randColor</a></li><li data-type='method'><a href="Random.html#.randInCircle">randInCircle</a></li><li data-type='method'><a href="Random.html#.randInt">randInt</a></li><li data-type='method'><a href="Random.html#.randSeeded">randSeeded</a></li><li data-type='method'><a href="Random.html#.randSign">randSign</a></li><li data-type='method'><a href="Random.html#.randVector">randVector</a></li></ul></li><li class="accordion-list" id=""><a href="Settings.html">Settings</a></li><li class="accordion collapsed child" id=2884620><div class="accordion-heading child"><a href="TileCollision.html">TileCollision</a><svg><use xlink:href="#down-icon"></use></svg></div><ul class='methods accordion-content'><li data-type='method'><a href="TileCollision.html#.getTileCollisionData">getTileCollisionData</a></li><li data-type='method'><a href="TileCollision.html#.initTileCollision">initTileCollision</a></li><li data-type='method'><a href="TileCollision.html#.setTileCollisionData">setTileCollisionData</a></li><li data-type='method'><a href="TileCollision.html#.tileCollisionRaycast">tileCollisionRaycast</a></li><li data-type='method'><a href="TileCollision.html#.tileCollisionTest">tileCollisionTest</a></li></ul></li><li class="accordion collapsed child" id=9516194><div class="accordion-heading child"><a href="Utilities.html">Utilities</a><svg><use xlink:href="#down-icon"></use></svg></div><ul class='methods accordion-content'><li data-type='method'><a href="Utilities.html#.abs">abs</a></li><li data-type='method'><a href="Utilities.html#.clamp">clamp</a></li><li data-type='method'><a href="Utilities.html#.formatTime">formatTime</a></li><li data-type='method'><a href="Utilities.html#.isOverlapping">isOverlapping</a></li><li data-type='method'><a href="Utilities.html#.lerp">lerp</a></li><li data-type='method'><a href="Utilities.html#.max">max</a></li><li data-type='method'><a href="Utilities.html#.min">min</a></li><li data-type='method'><a href="Utilities.html#.mod">mod</a></li><li data-type='method'><a href="Utilities.html#.nearestPowerOfTwo">nearestPowerOfTwo</a></li><li data-type='method'><a href="Utilities.html#.percent">percent</a></li><li data-type='method'><a href="Utilities.html#.sign">sign</a></li><li data-type='method'><a href="Utilities.html#.smoothStep">smoothStep</a></li><li data-type='method'><a href="Utilities.html#.vec2">vec2</a></li><li data-type='method'><a href="Utilities.html#.wave">wave</a></li></ul></li><li class="accordion collapsed child" id=228864><div class="accordion-heading child"><a href="WebGL.html">WebGL</a><svg><use xlink:href="#down-icon"></use></svg></div><ul class='methods accordion-content'><li data-type='method'><a href="WebGL.html#.glCompileShader">glCompileShader</a></li><li data-type='method'><a href="WebGL.html#.glCopyToContext">glCopyToContext</a></li><li data-type='method'><a href="WebGL.html#.glCreateBuffer">glCreateBuffer</a></li><li data-type='method'><a href="WebGL.html#.glCreateProgram">glCreateProgram</a></li><li data-type='method'><a href="WebGL.html#.glCreateTexture">glCreateTexture</a></li><li data-type='method'><a href="WebGL.html#.glDraw">glDraw</a></li><li data-type='method'><a href="WebGL.html#.glFlush">glFlush</a></li><li data-type='method'><a href="WebGL.html#.glSetBlendMode">glSetBlendMode</a></li><li data-type='method'><a href="WebGL.html#.glSetTexture">glSetTexture</a></li></ul></li></ul> </div><div class="accordion collapsed" id="4889956" > <h3 class="accordion-heading">Global<svg><use xlink:href="#down-icon"></use></svg></h3><ul class="accordion-content"><li class="accordion-list" id=""><a href="global.html#engineFontImage">engineFontImage</a></li><li class="accordion-list" id=""><a href="global.html#engineInit">engineInit</a></li><li class="accordion-list" id=""><a href="global.html#engineName">engineName</a></li><li class="accordion-list" id=""><a href="global.html#engineObjects">engineObjects</a></li><li class="accordion-list" id=""><a href="global.html#engineObjectsCallback">engineObjectsCallback</a></li><li class="accordion-list" id=""><a href="global.html#engineObjectsCollide">engineObjectsCollide</a></li><li class="accordion-list" id=""><a href="global.html#engineObjectsDestroy">engineObjectsDestroy</a></li><li class="accordion-list" id=""><a href="global.html#engineObjectsUpdate">engineObjectsUpdate</a></li><li class="accordion-list" id=""><a href="global.html#engineVersion">engineVersion</a></li><li class="accordion-list" id=""><a href="global.html#frame">frame</a></li><li class="accordion-list" id=""><a href="global.html#frameRate">frameRate</a></li><li class="accordion-list" id=""><a href="global.html#paused">paused</a></li><li class="accordion-list" id=""><a href="global.html#time">time</a></li><li class="accordion-list" id=""><a href="global.html#timeDelta">timeDelta</a></li><li class="accordion-list" id=""><a href="global.html#timeReal">timeReal</a></li></ul> </div></div>
93
+
94
+
95
+ </nav>
96
+ <div class="navbar-ham" id="navbar-ham">
97
+ <div>
98
+ <div class="first"></div>
99
+ <div class="second"></div>
100
+ <div class="third"></div>
101
+ </div>
102
+ </div>
103
+
104
+ <div id="main" class="main-content">
105
+
106
+ <h1 id='page-title' class="page-title">
107
+ engineTileLayer.js
108
+ </h1>
109
+
110
+
111
+
112
+
113
+
114
+
115
+
116
+ <section>
117
+ <article>
118
+ <pre class="prettyprint source linenums"><code>/**
119
+ * LittleJS Tile Layer System
120
+ * &lt;br> - Caches arrays of tiles to off screen canvas for fast rendering
121
+ * &lt;br> - Unlimted numbers of layers, allocates canvases as needed
122
+ * &lt;br> - Interfaces with EngineObject for collision
123
+ * &lt;br> - Collision layer is separate from visible layers
124
+ * &lt;br> - It is recommended to have a visible layer that matches the collision
125
+ * &lt;br> - Tile layers can be drawn to using their context with canvas2d
126
+ * &lt;br> - Drawn directly to the main canvas without using WebGL
127
+ * @namespace TileCollision
128
+ */
129
+
130
+ 'use strict';
131
+
132
+ /** The tile collision layer array, use setTileCollisionData and getTileCollisionData to access
133
+ * @memberof TileCollision */
134
+ let tileCollision = [];
135
+
136
+ /** Size of the tile collision layer
137
+ * @type {Vector2}
138
+ * @memberof TileCollision */
139
+ let tileCollisionSize = vec2();
140
+
141
+ /** Clear and initialize tile collision
142
+ * @param {Vector2} size
143
+ * @memberof TileCollision */
144
+ function initTileCollision(size)
145
+ {
146
+ tileCollisionSize = size;
147
+ tileCollision = [];
148
+ for (let i=tileCollision.length = tileCollisionSize.area(); i--;)
149
+ tileCollision[i] = 0;
150
+ }
151
+
152
+ /** Set tile collision data
153
+ * @param {Vector2} pos
154
+ * @param {Number} [data=0]
155
+ * @memberof TileCollision */
156
+ const setTileCollisionData = (pos, data=0)=>
157
+ pos.arrayCheck(tileCollisionSize) &amp;&amp; (tileCollision[(pos.y|0)*tileCollisionSize.x+pos.x|0] = data);
158
+
159
+ /** Get tile collision data
160
+ * @param {Vector2} pos
161
+ * @return {Number}
162
+ * @memberof TileCollision */
163
+ const getTileCollisionData = (pos)=>
164
+ pos.arrayCheck(tileCollisionSize) ? tileCollision[(pos.y|0)*tileCollisionSize.x+pos.x|0] : 0;
165
+
166
+ /** Check if collision with another object should occur
167
+ * @param {Vector2} pos
168
+ * @param {Vector2} [size=new Vector2(1,1)]
169
+ * @param {EngineObject} [object]
170
+ * @return {Boolean}
171
+ * @memberof TileCollision */
172
+ function tileCollisionTest(pos, size=vec2(), object)
173
+ {
174
+ const minX = max(pos.x - size.x/2|0, 0);
175
+ const minY = max(pos.y - size.y/2|0, 0);
176
+ const maxX = min(pos.x + size.x/2, tileCollisionSize.x);
177
+ const maxY = min(pos.y + size.y/2, tileCollisionSize.y);
178
+ for (let y = minY; y &lt; maxY; ++y)
179
+ for (let x = minX; x &lt; maxX; ++x)
180
+ {
181
+ const tileData = tileCollision[y*tileCollisionSize.x+x];
182
+ if (tileData &amp;&amp; (!object || object.collideWithTile(tileData, new Vector2(x, y))))
183
+ return 1;
184
+ }
185
+ }
186
+
187
+ /** Return the center of tile if any that is hit (this does not return the exact hit point)
188
+ * @param {Vector2} posStart
189
+ * @param {Vector2} posEnd
190
+ * @param {EngineObject} [object]
191
+ * @return {Vector2}
192
+ * @memberof TileCollision */
193
+ function tileCollisionRaycast(posStart, posEnd, object)
194
+ {
195
+ // test if a ray collides with tiles from start to end
196
+ // todo: a way to get the exact hit point, it must still register as inside the hit tile
197
+ posStart = posStart.floor();
198
+ posEnd = posEnd.floor();
199
+ const posDelta = posEnd.subtract(posStart);
200
+ const dx = abs(posDelta.x), dy = -abs(posDelta.y);
201
+ const sx = sign(posDelta.x), sy = sign(posDelta.y);
202
+ let e = dx + dy;
203
+
204
+ for (let x = posStart.x, y = posStart.y;;)
205
+ {
206
+ const tileData = getTileCollisionData(vec2(x,y));
207
+ if (tileData &amp;&amp; (object ? object.collideWithTileRaycast(tileData, new Vector2(x, y)) : tileData > 0))
208
+ {
209
+ debugRaycast &amp;&amp; debugLine(posStart, posEnd, '#f00',.02, 1);
210
+ debugRaycast &amp;&amp; debugPoint(new Vector2(x+.5, y+.5), '#ff0', 1);
211
+ return new Vector2(x+.5, y+.5);
212
+ }
213
+
214
+ // update Bresenham line drawing algorithm
215
+ if (x == posEnd.x &amp; y == posEnd.y) break;
216
+ const e2 = 2*e;
217
+ if (e2 >= dy) e += dy, x += sx;
218
+ if (e2 &lt;= dx) e += dx, y += sy;
219
+ }
220
+ debugRaycast &amp;&amp; debugLine(posStart, posEnd, '#00f',.02, 1);
221
+ }
222
+
223
+ ///////////////////////////////////////////////////////////////////////////////
224
+ // Tile Layer Rendering System
225
+
226
+ /**
227
+ * Tile layer data object stores info about how to render a tile
228
+ * @example
229
+ * // create tile layer data with tile index 0 and random orientation and color
230
+ * const tileIndex = 0;
231
+ * const direction = randInt(4)
232
+ * const mirror = randInt(2);
233
+ * const color = randColor();
234
+ * const data = new TileLayerData(tileIndex, direction, mirror, color);
235
+ */
236
+ class TileLayerData
237
+ {
238
+ /** Create a tile layer data object, one for each tile in a TileLayer
239
+ * @param {Number} [tile] - The tile to use, untextured if undefined
240
+ * @param {Number} [direction=0] - Integer direction of tile, in 90 degree increments
241
+ * @param {Boolean} [mirror=0] - If the tile should be mirrored along the x axis
242
+ * @param {Color} [color=new Color(1,1,1)] - Color of the tile */
243
+ constructor(tile, direction=0, mirror=0, color=new Color)
244
+ {
245
+ /** @property {Number} - The tile to use, untextured if undefined */
246
+ this.tile = tile;
247
+ /** @property {Number} - Integer direction of tile, in 90 degree increments */
248
+ this.direction = direction;
249
+ /** @property {Boolean} - If the tile should be mirrored along the x axis */
250
+ this.mirror = mirror;
251
+ /** @property {Color} - Color of the tile */
252
+ this.color = color;
253
+ }
254
+
255
+ /** Set this tile to clear, it will not be rendered */
256
+ clear() { this.tile = this.direction = this.mirror = 0; color = new Color; }
257
+ }
258
+
259
+ /**
260
+ * Tile layer object - cached rendering system for tile layers
261
+ * &lt;br> - Each Tile layer is rendered to an off screen canvas
262
+ * &lt;br> - To allow dynamic modifications, layers are rendered using canvas 2d
263
+ * &lt;br> - Some devices like mobile phones are limited to 4k texture resolution
264
+ * &lt;br> - So with 16x16 tiles this limits layers to 256x256 on mobile devices
265
+ * @extends EngineObject
266
+ * @example
267
+ * // create tile collision and visible tile layer
268
+ * initTileCollision(vec2(200,100));
269
+ * const tileLayer = new TileLayer();
270
+ */
271
+ class TileLayer extends EngineObject
272
+ {
273
+ /** Create a tile layer object
274
+ * @param {Vector2} [position=new Vector2()] - World space position
275
+ * @param {Vector2} [size=tileCollisionSize] - World space size
276
+ * @param {Vector2} [tileSize=tileSizeDefault] - Size of tiles in source pixels
277
+ * @param {Vector2} [scale=new Vector2(1,1)] - How much to scale this layer when rendered
278
+ * @param {Number} [renderOrder=0] - Objects sorted by renderOrder before being rendered
279
+ */
280
+ constructor(pos, size=tileCollisionSize, tileSize=tileSizeDefault, scale=vec2(1), renderOrder=0)
281
+ {
282
+ super(pos, size, -1, tileSize, 0, undefined, renderOrder);
283
+
284
+ /** @property {HTMLCanvasElement} - The canvas used by this tile layer */
285
+ this.canvas = document.createElement('canvas');
286
+ /** @property {CanvasRenderingContext2D} - The 2D canvas context used by this tile layer */
287
+ this.context = this.canvas.getContext('2d');
288
+ /** @property {Vector2} - How much to scale this layer when rendered */
289
+ this.scale = scale;
290
+ /** @property {Boolean} [isOverlay=0] - If true this layer will render to overlay canvas and appear above all objects */
291
+ this.isOverlay;
292
+
293
+ // init tile data
294
+ this.data = [];
295
+ for (let j = this.size.area(); j--;)
296
+ this.data.push(new TileLayerData());
297
+ }
298
+
299
+ /** Set data at a given position in the array
300
+ * @param {Vector2} position - Local position in array
301
+ * @param {TileLayerData} data - Data to set
302
+ * @param {Boolean} [redraw=0] - Force the tile to redraw if true */
303
+ setData(layerPos, data, redraw)
304
+ {
305
+ if (layerPos.arrayCheck(this.size))
306
+ {
307
+ this.data[(layerPos.y|0)*this.size.x+layerPos.x|0] = data;
308
+ redraw &amp;&amp; this.drawTileData(layerPos);
309
+ }
310
+ }
311
+
312
+ /** Get data at a given position in the array
313
+ * @param {Vector2} layerPos - Local position in array
314
+ * @return {TileLayerData} */
315
+ getData(layerPos)
316
+ { return layerPos.arrayCheck(this.size) &amp;&amp; this.data[(layerPos.y|0)*this.size.x+layerPos.x|0]; }
317
+
318
+ // Tile layers are not updated
319
+ update() {}
320
+
321
+ // Render the tile layer, called automatically by the engine
322
+ render()
323
+ {
324
+ ASSERT(mainContext != this.context); // must call redrawEnd() after drawing tiles
325
+
326
+ // flush and copy gl canvas because tile canvas does not use webgl
327
+ glEnable &amp;&amp; !glOverlay &amp;&amp; !this.isOverlay &amp;&amp; glCopyToContext(mainContext);
328
+
329
+ // draw the entire cached level onto the canvas
330
+ const pos = worldToScreen(this.pos.add(vec2(0,this.size.y*this.scale.y)));
331
+ (this.isOverlay ? overlayContext : mainContext).drawImage
332
+ (
333
+ this.canvas, pos.x, pos.y,
334
+ cameraScale*this.size.x*this.scale.x, cameraScale*this.size.y*this.scale.y
335
+ );
336
+ }
337
+
338
+ /** Draw all the tile data to an offscreen canvas
339
+ * - This may be slow in some browsers
340
+ */
341
+ redraw()
342
+ {
343
+ this.redrawStart(1);
344
+ this.drawAllTileData();
345
+ this.redrawEnd();
346
+ }
347
+
348
+ /** Call to start the redraw process
349
+ * @param {Boolean} [clear=0] - Should it clear the canvas before drawing */
350
+ redrawStart(clear = 0)
351
+ {
352
+ if (clear)
353
+ {
354
+ // clear and set size
355
+ this.canvas.width = this.size.x * this.tileSize.x;
356
+ this.canvas.height = this.size.y * this.tileSize.y;
357
+ }
358
+
359
+ // save current render settings
360
+ this.savedRenderSettings = [mainCanvas, mainContext, cameraPos, cameraScale];
361
+
362
+ // use normal rendering system to render the tiles
363
+ mainCanvas = this.canvas;
364
+ mainContext = this.context;
365
+ cameraPos = this.size.scale(.5);
366
+ cameraScale = this.tileSize.x;
367
+ enginePreRender();
368
+ }
369
+
370
+ /** Call to end the redraw process */
371
+ redrawEnd()
372
+ {
373
+ ASSERT(mainContext == this.context); // must call redrawStart() before drawing tiles
374
+ glCopyToContext(mainContext, 1);
375
+ //debugSaveCanvas(this.canvas);
376
+
377
+ // set stuff back to normal
378
+ [mainCanvas, mainContext, cameraPos, cameraScale] = this.savedRenderSettings;
379
+ }
380
+
381
+ /** Draw the tile at a given position
382
+ * @param {Vector2} layerPos */
383
+ drawTileData(layerPos)
384
+ {
385
+ // first clear out where the tile was
386
+ const pos = layerPos.floor().add(this.pos).add(vec2(.5));
387
+ this.drawCanvas2D(pos, vec2(1), 0, 0, (context)=>context.clearRect(-.5, -.5, 1, 1));
388
+
389
+ // draw the tile if not undefined
390
+ const d = this.getData(layerPos);
391
+ if (d.tile != undefined)
392
+ {
393
+ ASSERT(mainContext == this.context); // must call redrawStart() before drawing tiles
394
+ drawTile(pos, vec2(1), d.tile, this.tileSize, d.color, d.direction*PI/2, d.mirror);
395
+ }
396
+ }
397
+
398
+ /** Draw all the tiles in this layer */
399
+ drawAllTileData()
400
+ {
401
+ for (let x = this.size.x; x--;)
402
+ for (let y = this.size.y; y--;)
403
+ this.drawTileData(vec2(x,y));
404
+ }
405
+
406
+ /** Draw directly to the 2D canvas in world space (bipass webgl)
407
+ * @param {Vector2} pos
408
+ * @param {Vector2} size
409
+ * @param {Number} [angle=0]
410
+ * @param {Boolean} [mirror=0]
411
+ * @param {Function} drawFunction */
412
+ drawCanvas2D(pos, size, angle=0, mirror, drawFunction)
413
+ {
414
+ const context = this.context;
415
+ context.save();
416
+ pos = pos.subtract(this.pos).multiply(this.tileSize);
417
+ size = size.multiply(this.tileSize);
418
+ context.translate(pos.x, this.canvas.height - pos.y);
419
+ context.rotate(angle);
420
+ context.scale(mirror ? -size.x : size.x, size.y);
421
+ drawFunction(context);
422
+ context.restore();
423
+ }
424
+
425
+ /** Draw a tile directly onto the layer canvas
426
+ * @param {Vector2} pos
427
+ * @param {Vector2} [size=new Vector2(1,1)]
428
+ * @param {Number} [tileIndex=-1]
429
+ * @param {Vector2} [tileSize=tileSizeDefault]
430
+ * @param {Color} [color=new Color(1,1,1)]
431
+ * @param {Number} [angle=0]
432
+ * @param {Boolean} [mirror=0] */
433
+ drawTile(pos, size=vec2(1), tileIndex=-1, tileSize=tileSizeDefault, color=new Color, angle, mirror)
434
+ {
435
+ this.drawCanvas2D(pos, size, angle, mirror, (context)=>
436
+ {
437
+ if (tileIndex &lt; 0)
438
+ {
439
+ // untextured
440
+ context.fillStyle = color;
441
+ context.fillRect(-.5, -.5, 1, 1);
442
+ }
443
+ else
444
+ {
445
+ const cols = tileImage.width/tileSize.x;
446
+ context.globalAlpha = color.a; // only alpha, no color, is supported in this mode
447
+ context.drawImage(tileImage,
448
+ (tileIndex%cols)*tileSize.x, (tileIndex/cols|0)*tileSize.x,
449
+ tileSize.x, tileSize.y, -.5, -.5, 1, 1);
450
+ }
451
+ });
452
+ }
453
+
454
+ /** Draw a rectangle directly onto the layer canvas
455
+ * @param {Vector2} pos
456
+ * @param {Vector2} [size=new Vector2(1,1)]
457
+ * @param {Color} [color=new Color(1,1,1)]
458
+ * @param {Number} [angle=0] */
459
+ drawRect(pos, size, color, angle)
460
+ { this.drawTile(pos, size, -1, 0, color, angle); }
461
+ }</code></pre>
462
+ </article>
463
+ </section>
464
+
465
+
466
+
467
+
468
+ </div>
469
+
470
+ <footer class="footer" id="footer">
471
+ <a href=https://github.com/KilledByAPixel/LittleJS>LittleJS - MIT License - Copyright 2021 Frank Force</a>
472
+ </footer>
473
+
474
+ <script src="scripts/third-party/prettify.js"></script>
475
+ <script src="scripts/third-party/lang-css.js"></script>
476
+ <script type="text/javascript" src="scripts/misc.js"></script>
477
+
478
+ <script>prettyPrint();</script>
479
+ <script src="scripts/linenumber.js"></script>
480
+ <script src="scripts/fix-code-block.js"></script>
481
+ <script src="scripts/fix-navbar.js"></script>
482
+
483
+ <script src="scripts/search.js"></script>
484
+ <script src="scripts/third-party/fuse.js"></script>
485
+ <script>
486
+ var list = [{"title":"Color","link":"<a href=\"Color.html\">Color</a>"},{"title":"Color#add","link":"<a href=\"Color.html#add\">Color &rtrif; add</a>"},{"title":"Color#clamp","link":"<a href=\"Color.html#clamp\">Color &rtrif; clamp</a>"},{"title":"Color#copy","link":"<a href=\"Color.html#copy\">Color &rtrif; copy</a>"},{"title":"Color#divide","link":"<a href=\"Color.html#divide\">Color &rtrif; divide</a>"},{"title":"Color#getHSLA","link":"<a href=\"Color.html#getHSLA\">Color &rtrif; getHSLA</a>"},{"title":"Color#hex","link":"<a href=\"Color.html#hex\">Color &rtrif; hex</a>"},{"title":"Color#lerp","link":"<a href=\"Color.html#lerp\">Color &rtrif; lerp</a>"},{"title":"Color#multiply","link":"<a href=\"Color.html#multiply\">Color &rtrif; multiply</a>"},{"title":"Color#mutate","link":"<a href=\"Color.html#mutate\">Color &rtrif; mutate</a>"},{"title":"Color#rgbaInt","link":"<a href=\"Color.html#rgbaInt\">Color &rtrif; rgbaInt</a>"},{"title":"Color#scale","link":"<a href=\"Color.html#scale\">Color &rtrif; scale</a>"},{"title":"Color#setHex","link":"<a href=\"Color.html#setHex\">Color &rtrif; setHex</a>"},{"title":"Color#setHSLA","link":"<a href=\"Color.html#setHSLA\">Color &rtrif; setHSLA</a>"},{"title":"Color#subtract","link":"<a href=\"Color.html#subtract\">Color &rtrif; subtract</a>"},{"title":"Color#toString","link":"<a href=\"Color.html#toString\">Color &rtrif; toString</a>"},{"title":"EngineObject","link":"<a href=\"EngineObject.html\">EngineObject</a>"},{"title":"EngineObject#addChild","link":"<a href=\"EngineObject.html#addChild\">EngineObject &rtrif; addChild</a>"},{"title":"EngineObject#applyAcceleration","link":"<a href=\"EngineObject.html#applyAcceleration\">EngineObject &rtrif; applyAcceleration</a>"},{"title":"EngineObject#applyForce","link":"<a href=\"EngineObject.html#applyForce\">EngineObject &rtrif; applyForce</a>"},{"title":"EngineObject#collideWithObject","link":"<a href=\"EngineObject.html#collideWithObject\">EngineObject &rtrif; collideWithObject</a>"},{"title":"EngineObject#collideWithTile","link":"<a href=\"EngineObject.html#collideWithTile\">EngineObject &rtrif; collideWithTile</a>"},{"title":"EngineObject#collideWithTileRaycast","link":"<a href=\"EngineObject.html#collideWithTileRaycast\">EngineObject &rtrif; collideWithTileRaycast</a>"},{"title":"EngineObject#destroy","link":"<a href=\"EngineObject.html#destroy\">EngineObject &rtrif; destroy</a>"},{"title":"EngineObject#getAliveTime","link":"<a href=\"EngineObject.html#getAliveTime\">EngineObject &rtrif; getAliveTime</a>"},{"title":"EngineObject#getMirrorSign","link":"<a href=\"EngineObject.html#getMirrorSign\">EngineObject &rtrif; getMirrorSign</a>"},{"title":"EngineObject#removeChild","link":"<a href=\"EngineObject.html#removeChild\">EngineObject &rtrif; removeChild</a>"},{"title":"EngineObject#render","link":"<a href=\"EngineObject.html#render\">EngineObject &rtrif; render</a>"},{"title":"EngineObject#setCollision","link":"<a href=\"EngineObject.html#setCollision\">EngineObject &rtrif; setCollision</a>"},{"title":"EngineObject#update","link":"<a href=\"EngineObject.html#update\">EngineObject &rtrif; update</a>"},{"title":"FontImage","link":"<a href=\"FontImage.html\">FontImage</a>"},{"title":"FontImage#drawText","link":"<a href=\"FontImage.html#drawText\">FontImage &rtrif; drawText</a>"},{"title":"FontImage#drawTextScreen","link":"<a href=\"FontImage.html#drawTextScreen\">FontImage &rtrif; drawTextScreen</a>"},{"title":"Medal","link":"<a href=\"Medal.html\">Medal</a>"},{"title":"Medal#render","link":"<a href=\"Medal.html#render\">Medal &rtrif; render</a>"},{"title":"Medal#renderIcon","link":"<a href=\"Medal.html#renderIcon\">Medal &rtrif; renderIcon</a>"},{"title":"Medal#unlock","link":"<a href=\"Medal.html#unlock\">Medal &rtrif; unlock</a>"},{"title":"Music","link":"<a href=\"Music.html\">Music</a>"},{"title":"Music#play","link":"<a href=\"Music.html#play\">Music &rtrif; play</a>"},{"title":"Newgrounds","link":"<a href=\"Newgrounds.html\">Newgrounds</a>"},{"title":"Newgrounds#call","link":"<a href=\"Newgrounds.html#call\">Newgrounds &rtrif; call</a>"},{"title":"Newgrounds#getScores","link":"<a href=\"Newgrounds.html#getScores\">Newgrounds &rtrif; getScores</a>"},{"title":"Newgrounds#logView","link":"<a href=\"Newgrounds.html#logView\">Newgrounds &rtrif; logView</a>"},{"title":"Newgrounds#postScore","link":"<a href=\"Newgrounds.html#postScore\">Newgrounds &rtrif; postScore</a>"},{"title":"Newgrounds#unlockMedal","link":"<a href=\"Newgrounds.html#unlockMedal\">Newgrounds &rtrif; unlockMedal</a>"},{"title":"Particle","link":"<a href=\"Particle.html\">Particle</a>"},{"title":"Particle#addChild","link":"<a href=\"Particle.html#addChild\">Particle &rtrif; addChild</a>"},{"title":"Particle#applyAcceleration","link":"<a href=\"Particle.html#applyAcceleration\">Particle &rtrif; applyAcceleration</a>"},{"title":"Particle#applyForce","link":"<a href=\"Particle.html#applyForce\">Particle &rtrif; applyForce</a>"},{"title":"Particle#collideWithObject","link":"<a href=\"Particle.html#collideWithObject\">Particle &rtrif; collideWithObject</a>"},{"title":"Particle#collideWithTile","link":"<a href=\"Particle.html#collideWithTile\">Particle &rtrif; collideWithTile</a>"},{"title":"Particle#collideWithTileRaycast","link":"<a href=\"Particle.html#collideWithTileRaycast\">Particle &rtrif; collideWithTileRaycast</a>"},{"title":"Particle#destroy","link":"<a href=\"Particle.html#destroy\">Particle &rtrif; destroy</a>"},{"title":"Particle#getAliveTime","link":"<a href=\"Particle.html#getAliveTime\">Particle &rtrif; getAliveTime</a>"},{"title":"Particle#getMirrorSign","link":"<a href=\"Particle.html#getMirrorSign\">Particle &rtrif; getMirrorSign</a>"},{"title":"Particle#removeChild","link":"<a href=\"Particle.html#removeChild\">Particle &rtrif; removeChild</a>"},{"title":"Particle#render","link":"<a href=\"Particle.html#render\">Particle &rtrif; render</a>"},{"title":"Particle#setCollision","link":"<a href=\"Particle.html#setCollision\">Particle &rtrif; setCollision</a>"},{"title":"Particle#update","link":"<a href=\"Particle.html#update\">Particle &rtrif; update</a>"},{"title":"ParticleEmitter","link":"<a href=\"ParticleEmitter.html\">ParticleEmitter</a>"},{"title":"ParticleEmitter#addChild","link":"<a href=\"ParticleEmitter.html#addChild\">ParticleEmitter &rtrif; addChild</a>"},{"title":"ParticleEmitter#applyAcceleration","link":"<a href=\"ParticleEmitter.html#applyAcceleration\">ParticleEmitter &rtrif; applyAcceleration</a>"},{"title":"ParticleEmitter#applyForce","link":"<a href=\"ParticleEmitter.html#applyForce\">ParticleEmitter &rtrif; applyForce</a>"},{"title":"ParticleEmitter#collideWithObject","link":"<a href=\"ParticleEmitter.html#collideWithObject\">ParticleEmitter &rtrif; collideWithObject</a>"},{"title":"ParticleEmitter#collideWithTile","link":"<a href=\"ParticleEmitter.html#collideWithTile\">ParticleEmitter &rtrif; collideWithTile</a>"},{"title":"ParticleEmitter#collideWithTileRaycast","link":"<a href=\"ParticleEmitter.html#collideWithTileRaycast\">ParticleEmitter &rtrif; collideWithTileRaycast</a>"},{"title":"ParticleEmitter#destroy","link":"<a href=\"ParticleEmitter.html#destroy\">ParticleEmitter &rtrif; destroy</a>"},{"title":"ParticleEmitter#emitParticle","link":"<a href=\"ParticleEmitter.html#emitParticle\">ParticleEmitter &rtrif; emitParticle</a>"},{"title":"ParticleEmitter#getAliveTime","link":"<a href=\"ParticleEmitter.html#getAliveTime\">ParticleEmitter &rtrif; getAliveTime</a>"},{"title":"ParticleEmitter#getMirrorSign","link":"<a href=\"ParticleEmitter.html#getMirrorSign\">ParticleEmitter &rtrif; getMirrorSign</a>"},{"title":"ParticleEmitter#removeChild","link":"<a href=\"ParticleEmitter.html#removeChild\">ParticleEmitter &rtrif; removeChild</a>"},{"title":"ParticleEmitter#render","link":"<a href=\"ParticleEmitter.html#render\">ParticleEmitter &rtrif; render</a>"},{"title":"ParticleEmitter#setCollision","link":"<a href=\"ParticleEmitter.html#setCollision\">ParticleEmitter &rtrif; setCollision</a>"},{"title":"ParticleEmitter#update","link":"<a href=\"ParticleEmitter.html#update\">ParticleEmitter &rtrif; update</a>"},{"title":"Sound","link":"<a href=\"Sound.html\">Sound</a>"},{"title":"Sound#play","link":"<a href=\"Sound.html#play\">Sound &rtrif; play</a>"},{"title":"Sound#playNote","link":"<a href=\"Sound.html#playNote\">Sound &rtrif; playNote</a>"},{"title":"TileLayer","link":"<a href=\"TileLayer.html\">TileLayer</a>"},{"title":"TileLayer#addChild","link":"<a href=\"TileLayer.html#addChild\">TileLayer &rtrif; addChild</a>"},{"title":"TileLayer#applyAcceleration","link":"<a href=\"TileLayer.html#applyAcceleration\">TileLayer &rtrif; applyAcceleration</a>"},{"title":"TileLayer#applyForce","link":"<a href=\"TileLayer.html#applyForce\">TileLayer &rtrif; applyForce</a>"},{"title":"TileLayer#collideWithObject","link":"<a href=\"TileLayer.html#collideWithObject\">TileLayer &rtrif; collideWithObject</a>"},{"title":"TileLayer#collideWithTile","link":"<a href=\"TileLayer.html#collideWithTile\">TileLayer &rtrif; collideWithTile</a>"},{"title":"TileLayer#collideWithTileRaycast","link":"<a href=\"TileLayer.html#collideWithTileRaycast\">TileLayer &rtrif; collideWithTileRaycast</a>"},{"title":"TileLayer#destroy","link":"<a href=\"TileLayer.html#destroy\">TileLayer &rtrif; destroy</a>"},{"title":"TileLayer#drawAllTileData","link":"<a href=\"TileLayer.html#drawAllTileData\">TileLayer &rtrif; drawAllTileData</a>"},{"title":"TileLayer#drawCanvas2D","link":"<a href=\"TileLayer.html#drawCanvas2D\">TileLayer &rtrif; drawCanvas2D</a>"},{"title":"TileLayer#drawRect","link":"<a href=\"TileLayer.html#drawRect\">TileLayer &rtrif; drawRect</a>"},{"title":"TileLayer#drawTile","link":"<a href=\"TileLayer.html#drawTile\">TileLayer &rtrif; drawTile</a>"},{"title":"TileLayer#drawTileData","link":"<a href=\"TileLayer.html#drawTileData\">TileLayer &rtrif; drawTileData</a>"},{"title":"TileLayer#getAliveTime","link":"<a href=\"TileLayer.html#getAliveTime\">TileLayer &rtrif; getAliveTime</a>"},{"title":"TileLayer#getData","link":"<a href=\"TileLayer.html#getData\">TileLayer &rtrif; getData</a>"},{"title":"TileLayer#getMirrorSign","link":"<a href=\"TileLayer.html#getMirrorSign\">TileLayer &rtrif; getMirrorSign</a>"},{"title":"TileLayer#redraw","link":"<a href=\"TileLayer.html#redraw\">TileLayer &rtrif; redraw</a>"},{"title":"TileLayer#redrawEnd","link":"<a href=\"TileLayer.html#redrawEnd\">TileLayer &rtrif; redrawEnd</a>"},{"title":"TileLayer#redrawStart","link":"<a href=\"TileLayer.html#redrawStart\">TileLayer &rtrif; redrawStart</a>"},{"title":"TileLayer#removeChild","link":"<a href=\"TileLayer.html#removeChild\">TileLayer &rtrif; removeChild</a>"},{"title":"TileLayer#render","link":"<a href=\"TileLayer.html#render\">TileLayer &rtrif; render</a>"},{"title":"TileLayer#setCollision","link":"<a href=\"TileLayer.html#setCollision\">TileLayer &rtrif; setCollision</a>"},{"title":"TileLayer#setData","link":"<a href=\"TileLayer.html#setData\">TileLayer &rtrif; setData</a>"},{"title":"TileLayer#update","link":"<a href=\"TileLayer.html#update\">TileLayer &rtrif; update</a>"},{"title":"TileLayerData","link":"<a href=\"TileLayerData.html\">TileLayerData</a>"},{"title":"TileLayerData#clear","link":"<a href=\"TileLayerData.html#clear\">TileLayerData &rtrif; clear</a>"},{"title":"Timer","link":"<a href=\"Timer.html\">Timer</a>"},{"title":"Timer#active","link":"<a href=\"Timer.html#active\">Timer &rtrif; active</a>"},{"title":"Timer#elapsed","link":"<a href=\"Timer.html#elapsed\">Timer &rtrif; elapsed</a>"},{"title":"Timer#get","link":"<a href=\"Timer.html#get\">Timer &rtrif; get</a>"},{"title":"Timer#getPercent","link":"<a href=\"Timer.html#getPercent\">Timer &rtrif; getPercent</a>"},{"title":"Timer#isSet","link":"<a href=\"Timer.html#isSet\">Timer &rtrif; isSet</a>"},{"title":"Timer#set","link":"<a href=\"Timer.html#set\">Timer &rtrif; set</a>"},{"title":"Timer#toString","link":"<a href=\"Timer.html#toString\">Timer &rtrif; toString</a>"},{"title":"Timer#unset","link":"<a href=\"Timer.html#unset\">Timer &rtrif; unset</a>"},{"title":"Vector2","link":"<a href=\"Vector2.html\">Vector2</a>"},{"title":"Vector2#add","link":"<a href=\"Vector2.html#add\">Vector2 &rtrif; add</a>"},{"title":"Vector2#angle","link":"<a href=\"Vector2.html#angle\">Vector2 &rtrif; angle</a>"},{"title":"Vector2#area","link":"<a href=\"Vector2.html#area\">Vector2 &rtrif; area</a>"},{"title":"Vector2#arrayCheck","link":"<a href=\"Vector2.html#arrayCheck\">Vector2 &rtrif; arrayCheck</a>"},{"title":"Vector2#clampLength","link":"<a href=\"Vector2.html#clampLength\">Vector2 &rtrif; clampLength</a>"},{"title":"Vector2#copy","link":"<a href=\"Vector2.html#copy\">Vector2 &rtrif; copy</a>"},{"title":"Vector2#cross","link":"<a href=\"Vector2.html#cross\">Vector2 &rtrif; cross</a>"},{"title":"Vector2#direction","link":"<a href=\"Vector2.html#direction\">Vector2 &rtrif; direction</a>"},{"title":"Vector2#distance","link":"<a href=\"Vector2.html#distance\">Vector2 &rtrif; distance</a>"},{"title":"Vector2#distanceSquared","link":"<a href=\"Vector2.html#distanceSquared\">Vector2 &rtrif; distanceSquared</a>"},{"title":"Vector2#divide","link":"<a href=\"Vector2.html#divide\">Vector2 &rtrif; divide</a>"},{"title":"Vector2#dot","link":"<a href=\"Vector2.html#dot\">Vector2 &rtrif; dot</a>"},{"title":"Vector2#floor","link":"<a href=\"Vector2.html#floor\">Vector2 &rtrif; floor</a>"},{"title":"Vector2#invert","link":"<a href=\"Vector2.html#invert\">Vector2 &rtrif; invert</a>"},{"title":"Vector2#length","link":"<a href=\"Vector2.html#length\">Vector2 &rtrif; length</a>"},{"title":"Vector2#lengthSquared","link":"<a href=\"Vector2.html#lengthSquared\">Vector2 &rtrif; lengthSquared</a>"},{"title":"Vector2#lerp","link":"<a href=\"Vector2.html#lerp\">Vector2 &rtrif; lerp</a>"},{"title":"Vector2#multiply","link":"<a href=\"Vector2.html#multiply\">Vector2 &rtrif; multiply</a>"},{"title":"Vector2#normalize","link":"<a href=\"Vector2.html#normalize\">Vector2 &rtrif; normalize</a>"},{"title":"Vector2#rotate","link":"<a href=\"Vector2.html#rotate\">Vector2 &rtrif; rotate</a>"},{"title":"Vector2#scale","link":"<a href=\"Vector2.html#scale\">Vector2 &rtrif; scale</a>"},{"title":"Vector2#setAngle","link":"<a href=\"Vector2.html#setAngle\">Vector2 &rtrif; setAngle</a>"},{"title":"Vector2#subtract","link":"<a href=\"Vector2.html#subtract\">Vector2 &rtrif; subtract</a>"},{"title":"Vector2#toString","link":"<a href=\"Vector2.html#toString\">Vector2 &rtrif; toString</a>"},{"title":"Debug","link":"<a href=\"Debug.html\">Debug</a>"},{"title":"Debug.debugAABB","link":"<a href=\"Debug.html#.debugAABB\">Debug.debugAABB &rtrif; undefined</a>"},{"title":"Debug.debugCircle","link":"<a href=\"Debug.html#.debugCircle\">Debug.debugCircle &rtrif; undefined</a>"},{"title":"Debug.debugClear","link":"<a href=\"Debug.html#.debugClear\">Debug.debugClear &rtrif; undefined</a>"},{"title":"Debug.debugLine","link":"<a href=\"Debug.html#.debugLine\">Debug.debugLine &rtrif; undefined</a>"},{"title":"Debug.debugPoint","link":"<a href=\"Debug.html#.debugPoint\">Debug.debugPoint &rtrif; undefined</a>"},{"title":"Debug.debugRect","link":"<a href=\"Debug.html#.debugRect\">Debug.debugRect &rtrif; undefined</a>"},{"title":"Debug.debugSaveCanvas","link":"<a href=\"Debug.html#.debugSaveCanvas\">Debug.debugSaveCanvas &rtrif; undefined</a>"},{"title":"Debug.debugText","link":"<a href=\"Debug.html#.debugText\">Debug.debugText &rtrif; undefined</a>"},{"title":"Draw","link":"<a href=\"Draw.html\">Draw</a>"},{"title":"Draw.drawCanvas2D","link":"<a href=\"Draw.html#.drawCanvas2D\">Draw.drawCanvas2D &rtrif; undefined</a>"},{"title":"Draw.drawLine","link":"<a href=\"Draw.html#.drawLine\">Draw.drawLine &rtrif; undefined</a>"},{"title":"Draw.drawRect","link":"<a href=\"Draw.html#.drawRect\">Draw.drawRect &rtrif; undefined</a>"},{"title":"Draw.drawRectScreenSpace","link":"<a href=\"Draw.html#.drawRectScreenSpace\">Draw.drawRectScreenSpace &rtrif; undefined</a>"},{"title":"Draw.drawText","link":"<a href=\"Draw.html#.drawText\">Draw.drawText &rtrif; undefined</a>"},{"title":"Draw.drawTextScreen","link":"<a href=\"Draw.html#.drawTextScreen\">Draw.drawTextScreen &rtrif; undefined</a>"},{"title":"Draw.drawTile","link":"<a href=\"Draw.html#.drawTile\">Draw.drawTile &rtrif; undefined</a>"},{"title":"Draw.drawTileScreenSpace","link":"<a href=\"Draw.html#.drawTileScreenSpace\">Draw.drawTileScreenSpace &rtrif; undefined</a>"},{"title":"Draw.isFullscreen","link":"<a href=\"Draw.html#.isFullscreen\">Draw.isFullscreen &rtrif; undefined</a>"},{"title":"Draw.screenToWorld","link":"<a href=\"Draw.html#.screenToWorld\">Draw.screenToWorld &rtrif; undefined</a>"},{"title":"Draw.setBlendMode","link":"<a href=\"Draw.html#.setBlendMode\">Draw.setBlendMode &rtrif; undefined</a>"},{"title":"Draw.toggleFullscreen","link":"<a href=\"Draw.html#.toggleFullscreen\">Draw.toggleFullscreen &rtrif; undefined</a>"},{"title":"Draw.worldToScreen","link":"<a href=\"Draw.html#.worldToScreen\">Draw.worldToScreen &rtrif; undefined</a>"},{"title":"Input","link":"<a href=\"Input.html\">Input</a>"},{"title":"Input.clearInput","link":"<a href=\"Input.html#.clearInput\">Input.clearInput &rtrif; undefined</a>"},{"title":"Input.gamepadIsDown","link":"<a href=\"Input.html#.gamepadIsDown\">Input.gamepadIsDown &rtrif; undefined</a>"},{"title":"Input.gamepadStick","link":"<a href=\"Input.html#.gamepadStick\">Input.gamepadStick &rtrif; undefined</a>"},{"title":"Input.gamepadWasPressed","link":"<a href=\"Input.html#.gamepadWasPressed\">Input.gamepadWasPressed &rtrif; undefined</a>"},{"title":"Input.gamepadWasReleased","link":"<a href=\"Input.html#.gamepadWasReleased\">Input.gamepadWasReleased &rtrif; undefined</a>"},{"title":"Input.keyIsDown","link":"<a href=\"Input.html#.keyIsDown\">Input.keyIsDown &rtrif; undefined</a>"},{"title":"Input.keyWasPressed","link":"<a href=\"Input.html#.keyWasPressed\">Input.keyWasPressed &rtrif; undefined</a>"},{"title":"Input.keyWasReleased","link":"<a href=\"Input.html#.keyWasReleased\">Input.keyWasReleased &rtrif; undefined</a>"},{"title":"Input.vibrate","link":"<a href=\"Input.html#.vibrate\">Input.vibrate &rtrif; undefined</a>"},{"title":"Input.vibrateStop","link":"<a href=\"Input.html#.vibrateStop\">Input.vibrateStop &rtrif; undefined</a>"},{"title":"Medals","link":"<a href=\"Medals.html\">Medals</a>"},{"title":"Medals.medalsInit","link":"<a href=\"Medals.html#.medalsInit\">Medals.medalsInit &rtrif; undefined</a>"},{"title":"Random","link":"<a href=\"Random.html\">Random</a>"},{"title":"Random.rand","link":"<a href=\"Random.html#.rand\">Random.rand &rtrif; undefined</a>"},{"title":"Random.randColor","link":"<a href=\"Random.html#.randColor\">Random.randColor &rtrif; undefined</a>"},{"title":"Random.randInCircle","link":"<a href=\"Random.html#.randInCircle\">Random.randInCircle &rtrif; undefined</a>"},{"title":"Random.randInt","link":"<a href=\"Random.html#.randInt\">Random.randInt &rtrif; undefined</a>"},{"title":"Random.randSeeded","link":"<a href=\"Random.html#.randSeeded\">Random.randSeeded &rtrif; undefined</a>"},{"title":"Random.randSign","link":"<a href=\"Random.html#.randSign\">Random.randSign &rtrif; undefined</a>"},{"title":"Random.randVector","link":"<a href=\"Random.html#.randVector\">Random.randVector &rtrif; undefined</a>"},{"title":"Settings","link":"<a href=\"Settings.html\">Settings</a>"},{"title":"TileCollision","link":"<a href=\"TileCollision.html\">TileCollision</a>"},{"title":"TileCollision.getTileCollisionData","link":"<a href=\"TileCollision.html#.getTileCollisionData\">TileCollision.getTileCollisionData &rtrif; undefined</a>"},{"title":"TileCollision.initTileCollision","link":"<a href=\"TileCollision.html#.initTileCollision\">TileCollision.initTileCollision &rtrif; undefined</a>"},{"title":"TileCollision.setTileCollisionData","link":"<a href=\"TileCollision.html#.setTileCollisionData\">TileCollision.setTileCollisionData &rtrif; undefined</a>"},{"title":"TileCollision.tileCollisionRaycast","link":"<a href=\"TileCollision.html#.tileCollisionRaycast\">TileCollision.tileCollisionRaycast &rtrif; undefined</a>"},{"title":"TileCollision.tileCollisionTest","link":"<a href=\"TileCollision.html#.tileCollisionTest\">TileCollision.tileCollisionTest &rtrif; undefined</a>"},{"title":"Utilities","link":"<a href=\"Utilities.html\">Utilities</a>"},{"title":"Utilities.abs","link":"<a href=\"Utilities.html#.abs\">Utilities.abs &rtrif; undefined</a>"},{"title":"Utilities.clamp","link":"<a href=\"Utilities.html#.clamp\">Utilities.clamp &rtrif; undefined</a>"},{"title":"Utilities.formatTime","link":"<a href=\"Utilities.html#.formatTime\">Utilities.formatTime &rtrif; undefined</a>"},{"title":"Utilities.isOverlapping","link":"<a href=\"Utilities.html#.isOverlapping\">Utilities.isOverlapping &rtrif; undefined</a>"},{"title":"Utilities.lerp","link":"<a href=\"Utilities.html#.lerp\">Utilities.lerp &rtrif; undefined</a>"},{"title":"Utilities.max","link":"<a href=\"Utilities.html#.max\">Utilities.max &rtrif; undefined</a>"},{"title":"Utilities.min","link":"<a href=\"Utilities.html#.min\">Utilities.min &rtrif; undefined</a>"},{"title":"Utilities.mod","link":"<a href=\"Utilities.html#.mod\">Utilities.mod &rtrif; undefined</a>"},{"title":"Utilities.nearestPowerOfTwo","link":"<a href=\"Utilities.html#.nearestPowerOfTwo\">Utilities.nearestPowerOfTwo &rtrif; undefined</a>"},{"title":"Utilities.percent","link":"<a href=\"Utilities.html#.percent\">Utilities.percent &rtrif; undefined</a>"},{"title":"Utilities.sign","link":"<a href=\"Utilities.html#.sign\">Utilities.sign &rtrif; undefined</a>"},{"title":"Utilities.smoothStep","link":"<a href=\"Utilities.html#.smoothStep\">Utilities.smoothStep &rtrif; undefined</a>"},{"title":"Utilities.vec2","link":"<a href=\"Utilities.html#.vec2\">Utilities.vec2 &rtrif; undefined</a>"},{"title":"Utilities.wave","link":"<a href=\"Utilities.html#.wave\">Utilities.wave &rtrif; undefined</a>"},{"title":"WebGL","link":"<a href=\"WebGL.html\">WebGL</a>"},{"title":"WebGL.glCompileShader","link":"<a href=\"WebGL.html#.glCompileShader\">WebGL.glCompileShader &rtrif; undefined</a>"},{"title":"WebGL.glCopyToContext","link":"<a href=\"WebGL.html#.glCopyToContext\">WebGL.glCopyToContext &rtrif; undefined</a>"},{"title":"WebGL.glCreateBuffer","link":"<a href=\"WebGL.html#.glCreateBuffer\">WebGL.glCreateBuffer &rtrif; undefined</a>"},{"title":"WebGL.glCreateProgram","link":"<a href=\"WebGL.html#.glCreateProgram\">WebGL.glCreateProgram &rtrif; undefined</a>"},{"title":"WebGL.glCreateTexture","link":"<a href=\"WebGL.html#.glCreateTexture\">WebGL.glCreateTexture &rtrif; undefined</a>"},{"title":"WebGL.glDraw","link":"<a href=\"WebGL.html#.glDraw\">WebGL.glDraw &rtrif; undefined</a>"},{"title":"WebGL.glFlush","link":"<a href=\"WebGL.html#.glFlush\">WebGL.glFlush &rtrif; undefined</a>"},{"title":"WebGL.glSetBlendMode","link":"<a href=\"WebGL.html#.glSetBlendMode\">WebGL.glSetBlendMode &rtrif; undefined</a>"},{"title":"WebGL.glSetTexture","link":"<a href=\"WebGL.html#.glSetTexture\">WebGL.glSetTexture &rtrif; undefined</a>"},{"title":"engineFontImage","link":"<a href=\"global.html#engineFontImage\">engineFontImage</a>"},{"title":"engineInit","link":"<a href=\"global.html#engineInit\">engineInit</a>"},{"title":"engineName","link":"<a href=\"global.html#engineName\">engineName</a>"},{"title":"engineObjects","link":"<a href=\"global.html#engineObjects\">engineObjects</a>"},{"title":"engineObjectsCallback","link":"<a href=\"global.html#engineObjectsCallback\">engineObjectsCallback</a>"},{"title":"engineObjectsCollide","link":"<a href=\"global.html#engineObjectsCollide\">engineObjectsCollide</a>"},{"title":"engineObjectsDestroy","link":"<a href=\"global.html#engineObjectsDestroy\">engineObjectsDestroy</a>"},{"title":"engineObjectsUpdate","link":"<a href=\"global.html#engineObjectsUpdate\">engineObjectsUpdate</a>"},{"title":"engineVersion","link":"<a href=\"global.html#engineVersion\">engineVersion</a>"},{"title":"frame","link":"<a href=\"global.html#frame\">frame</a>"},{"title":"frameRate","link":"<a href=\"global.html#frameRate\">frameRate</a>"},{"title":"paused","link":"<a href=\"global.html#paused\">paused</a>"},{"title":"time","link":"<a href=\"global.html#time\">time</a>"},{"title":"timeDelta","link":"<a href=\"global.html#timeDelta\">timeDelta</a>"},{"title":"timeReal","link":"<a href=\"global.html#timeReal\">timeReal</a>"}];
487
+ var options =
488
+ setupSearch(list, options)
489
+ </script>
490
+
491
+
492
+
493
+
494
+
495
+
496
+
497
+
498
+
499
+
500
+
501
+ </body>
502
+
503
+ </html>