littlejsengine 1.3.3 → 1.3.5

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 (81) hide show
  1. package/README.md +3 -4
  2. package/buildSetup.bat +4 -1
  3. package/engine/engine.all.js +7 -7
  4. package/engine/engine.all.min.js +1 -1
  5. package/engine/engine.all.release.js +6 -6
  6. package/engine/engine.js +1 -1
  7. package/engine/engineDebug.js +1 -1
  8. package/engine/engineDraw.js +1 -1
  9. package/engine/engineObject.js +3 -3
  10. package/engine/engineUtilities.js +1 -1
  11. package/engine/index.d.ts +2 -2
  12. package/examples/breakout/index.html +3 -3
  13. package/examples/particles/index.html +105 -57
  14. package/examples/platformer/index.html +5 -5
  15. package/examples/puzzle/index.html +2 -2
  16. package/examples/stress/index.html +1 -1
  17. package/game.js +7 -7
  18. package/index.html +13 -13
  19. package/package.json +1 -1
  20. package/docs/Audio.html +0 -2268
  21. package/docs/Color.html +0 -3376
  22. package/docs/Debug.html +0 -2933
  23. package/docs/Draw.html +0 -4480
  24. package/docs/EngineObject.html +0 -4734
  25. package/docs/FontImage.html +0 -1055
  26. package/docs/Input.html +0 -2806
  27. package/docs/Medal.html +0 -1007
  28. package/docs/Medals.html +0 -628
  29. package/docs/Music.html +0 -584
  30. package/docs/Newgrounds.html +0 -1399
  31. package/docs/Particle.html +0 -4825
  32. package/docs/ParticleEmitter.html +0 -8099
  33. package/docs/Random.html +0 -1774
  34. package/docs/Settings.html +0 -3140
  35. package/docs/Sound.html +0 -1249
  36. package/docs/TileCollision.html +0 -1409
  37. package/docs/TileLayer.html +0 -7310
  38. package/docs/TileLayerData.html +0 -1052
  39. package/docs/Timer.html +0 -1295
  40. package/docs/Utilities.html +0 -3278
  41. package/docs/Vector2.html +0 -4266
  42. package/docs/WebGL.html +0 -2307
  43. package/docs/engine.js.html +0 -443
  44. package/docs/engineAudio.js.html +0 -627
  45. package/docs/engineDebug.js.html +0 -554
  46. package/docs/engineDraw.js.html +0 -539
  47. package/docs/engineInput.js.html +0 -571
  48. package/docs/engineMedals.js.html +0 -460
  49. package/docs/engineObject.js.html +0 -533
  50. package/docs/engineParticles.js.html +0 -443
  51. package/docs/engineSettings.js.html +0 -381
  52. package/docs/engineTileLayer.js.html +0 -503
  53. package/docs/engineUtilities.js.html +0 -700
  54. package/docs/engineWebGL.js.html +0 -511
  55. package/docs/fonts/MavenPro-Regular.ttf +0 -0
  56. package/docs/fonts/Montserrat-Regular.ttf +0 -0
  57. package/docs/fonts/Muli-Black.ttf +0 -0
  58. package/docs/fonts/OFL-hind.txt +0 -93
  59. package/docs/fonts/OFL-montserrat.txt +0 -93
  60. package/docs/global.html +0 -1771
  61. package/docs/index.css +0 -6
  62. package/docs/index.html +0 -267
  63. package/docs/scripts/fix-code-block.js +0 -53
  64. package/docs/scripts/fix-navbar.js +0 -25
  65. package/docs/scripts/linenumber.js +0 -25
  66. package/docs/scripts/misc.js +0 -217
  67. package/docs/scripts/resize.js +0 -85
  68. package/docs/scripts/search.js +0 -83
  69. package/docs/scripts/third-party/Apache-License-2.0.txt +0 -202
  70. package/docs/scripts/third-party/fuse.js +0 -9
  71. package/docs/scripts/third-party/lang-css.js +0 -2
  72. package/docs/scripts/third-party/prettify.js +0 -28
  73. package/docs/static/favicon.png +0 -0
  74. package/docs/static/index.css +0 -4
  75. package/docs/styles/clean-jsdoc-theme-base.css +0 -393
  76. package/docs/styles/clean-jsdoc-theme-dark.css +0 -324
  77. package/docs/styles/clean-jsdoc-theme-light.css +0 -319
  78. package/docs/styles/reset.css +0 -346
  79. package/docs/styles/third-party/ionicons.min.css +0 -11
  80. package/docs/styles/third-party/prettify-jsdoc.css +0 -111
  81. package/docs/styles/third-party/prettify-tomorrow.css +0 -5
@@ -15,18 +15,18 @@ button
15
15
  </style>
16
16
  </head><body>
17
17
 
18
- <script src=../../engine/engineDebug.js?108></script>
19
- <script src=../../engine/engineUtilities.js?108></script>
20
- <script src=../../engine/engineSettings.js?108></script>
21
- <script src=../../engine/engineObject.js?108></script>
22
- <script src=../../engine/engineDraw.js?108></script>
23
- <script src=../../engine/engineInput.js?108></script>
24
- <script src=../../engine/engineAudio.js?108></script>
25
- <script src=../../engine/engineTileLayer.js?108></script>
26
- <script src=../../engine/engineParticles.js?108></script>
27
- <script src=../../engine/engineMedals.js?108></script>
28
- <script src=../../engine/engineWebGL.js?108></script>
29
- <script src=../../engine/engine.js?108></script>
18
+ <script src=../../engine/engineDebug.js?109></script>
19
+ <script src=../../engine/engineUtilities.js?109></script>
20
+ <script src=../../engine/engineSettings.js?109></script>
21
+ <script src=../../engine/engineObject.js?109></script>
22
+ <script src=../../engine/engineDraw.js?109></script>
23
+ <script src=../../engine/engineInput.js?109></script>
24
+ <script src=../../engine/engineAudio.js?109></script>
25
+ <script src=../../engine/engineTileLayer.js?109></script>
26
+ <script src=../../engine/engineParticles.js?109></script>
27
+ <script src=../../engine/engineMedals.js?109></script>
28
+ <script src=../../engine/engineWebGL.js?109></script>
29
+ <script src=../../engine/engine.js?109></script>
30
30
  <script>
31
31
 
32
32
  'use strict';
@@ -50,13 +50,13 @@ addSetting('tileIndex', '', -1, 1e9, 1, 'Tile to use to render object (-1
50
50
  addSetting('tileSizeX', '', 0, 1e9, 1, 'X Size of texture tile in source pixelss');
51
51
  addSetting('tileSizeY', '', 0, 1e9, 1, 'Y Size of texture tile in source pixelss');
52
52
  addSetting('colorStartA', 'color',0,0,0, 'Color at start of life 1');
53
+ addSetting('colorStartA_alpha', 'alpha', 0, 1, .01, 'Alpha at start of life 1');
53
54
  addSetting('colorStartB', 'color',0,0,0, 'Color at start of life 2');
55
+ addSetting('colorStartB_alpha', 'alpha', 0, 1, .01, 'Alpha at start of life 2');
54
56
  addSetting('colorEndA', 'color',0,0,0, 'Color at end of life 1');
57
+ addSetting('colorEndA_alpha', 'alpha', 0, 1, .01, 'Alpha at end of life 1');
55
58
  addSetting('colorEndB', 'color',0,0,0, 'Color at end of life 2');
56
- addSetting('colorAlphaStartA', 'alpha', 0, 1, .01, 'Alpha at start of life 1');
57
- addSetting('colorAlphaStartB', 'alpha', 0, 1, .01, 'Alpha at start of life 2');
58
- addSetting('colorAlphaEndA', 'alpha', 0, 1, .01, 'Alpha at end of life 1');
59
- addSetting('colorAlphaEndB', 'alpha', 0, 1, .01, 'Alpha at end of life 2');
59
+ addSetting('colorEndB_alpha', 'alpha', 0, 1, .01, 'Alpha at end of life 2');
60
60
  addSetting('particleTime', '', 0, 1e9, .1, 'How long particles live');
61
61
  addSetting('sizeStart', '', 0, 1e9, .01,'How big are particles at start');
62
62
  addSetting('sizeEnd', '', 0, 1e9, .01,'How big are particles at end');
@@ -76,7 +76,7 @@ function makeEmitter()
76
76
  {
77
77
  particleSystem = new ParticleEmitter(cameraPos);
78
78
  particleSystem.emitConeAngle =
79
- particleSystem.particleConeAngle = 3.14;
79
+ particleSystem.particleConeAngle = 3.14;
80
80
  }
81
81
 
82
82
  ///////////////////////////////////////////////////////////////////////////////
@@ -93,6 +93,41 @@ function gameInit()
93
93
 
94
94
  for (const setting of particleSettings)
95
95
  {
96
+ // get default value
97
+ // todo: clean this up
98
+ let defaultValue = '';
99
+ {
100
+ const name = setting.name;
101
+ const type = setting.type;
102
+
103
+ if (type == 'color')
104
+ {
105
+ const color = particleSystem[name];
106
+ defaultValue = color.hex();
107
+ }
108
+ else if (type == 'alpha')
109
+ {
110
+ if (name == 'colorStartA_alpha')
111
+ defaultValue = particleSystem.colorStartA.a;
112
+ else if (name == 'colorStartB_alpha')
113
+ defaultValue = particleSystem.colorStartB.a;
114
+ else if (name == 'colorEndA_alpha')
115
+ defaultValue = particleSystem.colorEndA.a;
116
+ else if (name == 'colorEndB_alpha')
117
+ defaultValue = particleSystem.colorEndB.a;
118
+ }
119
+ else if (name == 'tileSizeX')
120
+ defaultValue = particleSystem.tileSize.x;
121
+ else if (name == 'tileSizeY')
122
+ defaultValue = particleSystem.tileSize.y;
123
+ else if (type == 'checkbox')
124
+ defaultValue = particleSystem[name];
125
+ else
126
+ defaultValue = particleSystem[name] || '0';
127
+ }
128
+
129
+ div.appendChild(document.createElement('br'));
130
+
96
131
  const input = setting.input = document.createElement('input');
97
132
  const name = setting.name;
98
133
  input.type = setting.type == 'alpha' ? 'number' : setting.type;
@@ -107,8 +142,18 @@ function gameInit()
107
142
  input.step = setting.step;
108
143
  if (name == 'emitConeAngle' || name == 'particleConeAngle')
109
144
  particleSystem[name] = 3.14; // simplify pi
145
+
146
+ const inputReset = document.createElement('button');
147
+ inputReset.innerText = '♻️';
148
+ inputReset.onclick = (e)=>
149
+ {
150
+ setting.type == 'checkbox'?
151
+ setting.input.checked = defaultValue :
152
+ setting.input.value = defaultValue;
153
+ updateParticles(1);
154
+ }
155
+ div.appendChild(inputReset);
110
156
 
111
- div.appendChild(document.createElement('br'));
112
157
  div.appendChild(input);
113
158
  div.appendChild(document.createTextNode(' ' + name));
114
159
  }
@@ -189,13 +234,13 @@ function updateParticles(shouldUpdateInput)
189
234
  }
190
235
  else if (type == 'alpha')
191
236
  {
192
- if (name == 'colorAlphaStartA')
237
+ if (name == 'colorStartA_alpha')
193
238
  particleSystem.colorStartA.a = clamp(inputFloat);
194
- else if (name == 'colorAlphaStartB')
239
+ else if (name == 'colorStartB_alpha')
195
240
  particleSystem.colorStartB.a = clamp(inputFloat);
196
- else if (name == 'colorAlphaEndA')
241
+ else if (name == 'colorEndA_alpha')
197
242
  particleSystem.colorEndA.a = clamp(inputFloat);
198
- else if (name == 'colorAlphaEndB')
243
+ else if (name == 'colorEndB_alpha')
199
244
  particleSystem.colorEndB.a = clamp(inputFloat);
200
245
  }
201
246
  else if (name == 'tileSizeX')
@@ -219,44 +264,47 @@ function updateParticles(shouldUpdateInput)
219
264
  function updateInputs(save=1)
220
265
  {
221
266
  for (const setting of particleSettings)
267
+ updateSetting(setting, save);
268
+ particleSystemCode.value = getCode();
269
+ }
270
+
271
+ function updateSetting(setting, save=1)
272
+ {
273
+ const input = setting.input;
274
+ const name = setting.name;
275
+ const type = setting.type;
276
+
277
+ if (type == 'color')
222
278
  {
223
- const input = setting.input;
224
- const name = setting.name;
225
- const type = setting.type;
226
-
227
- if (type == 'color')
228
- {
229
- const color = particleSystem[name];
230
- input.value = color.hex();
231
- }
232
- else if (type == 'alpha')
233
- {
234
- if (name == 'colorAlphaStartA')
235
- input.value = particleSystem.colorStartA.a;
236
- else if (name == 'colorAlphaStartB')
237
- input.value = particleSystem.colorStartB.a;
238
- else if (name == 'colorAlphaEndA')
239
- input.value = particleSystem.colorEndA.a;
240
- else if (name == 'colorAlphaEndB')
241
- input.value = particleSystem.colorEndB.a;
242
- }
243
- else if (name == 'tileSizeX')
244
- input.value = particleSystem.tileSize.x;
245
- else if (name == 'tileSizeY')
246
- input.value = particleSystem.tileSize.y;
247
- else if (type == 'checkbox')
248
- input.checked = particleSystem[name];
249
- else
250
- input.value = particleSystem[name] || '0';
279
+ const color = particleSystem[name];
280
+ input.value = color.hex();
281
+ }
282
+ else if (type == 'alpha')
283
+ {
284
+ if (name == 'colorStartA_alpha')
285
+ input.value = particleSystem.colorStartA.a;
286
+ else if (name == 'colorStartB_alpha')
287
+ input.value = particleSystem.colorStartB.a;
288
+ else if (name == 'colorEndA_alpha')
289
+ input.value = particleSystem.colorEndA.a;
290
+ else if (name == 'colorEndB_alpha')
291
+ input.value = particleSystem.colorEndB.a;
292
+ }
293
+ else if (name == 'tileSizeX')
294
+ input.value = particleSystem.tileSize.x;
295
+ else if (name == 'tileSizeY')
296
+ input.value = particleSystem.tileSize.y;
297
+ else if (type == 'checkbox')
298
+ input.checked = particleSystem[name];
299
+ else
300
+ input.value = particleSystem[name] || '0';
251
301
 
252
- if (save)
253
- {
254
- const storageName = storagePrefix + setting.name;
255
- localStorage[storageName] = type == 'checkbox' ?
256
- input.checked : input.value;
257
- }
302
+ if (save)
303
+ {
304
+ const storageName = storagePrefix + setting.name;
305
+ localStorage[storageName] = type == 'checkbox' ?
306
+ input.checked : input.value;
258
307
  }
259
- particleSystemCode.value = getCode();
260
308
  }
261
309
 
262
310
  function getCode()
@@ -5,9 +5,9 @@
5
5
  <link rel=icon type=image/png href=../../favicon.png>
6
6
  </head><body>
7
7
 
8
- <script src=../../engine/engine.all.js?108></script>
9
- <script src=gameObjects.js?108></script>
10
- <script src=gamePlayer.js?108></script>
11
- <script src=gameEffects.js?108></script>
12
- <script src=gameLevel.js?108></script>
8
+ <script src=../../engine/engine.all.js?109></script>
9
+ <script src=gameObjects.js?109></script>
10
+ <script src=gamePlayer.js?109></script>
11
+ <script src=gameEffects.js?109></script>
12
+ <script src=gameLevel.js?109></script>
13
13
  <script src=game.js?103></script>
@@ -5,5 +5,5 @@
5
5
  <link rel=icon type=image/png href=../../favicon.png>
6
6
  </head><body>
7
7
 
8
- <script src=../../engine/engine.all.js?108></script>
9
- <script src=game.js?108></script>
8
+ <script src=../../engine/engine.all.js?109></script>
9
+ <script src=game.js?109></script>
@@ -5,7 +5,7 @@
5
5
  <link rel=icon type=image/png href=../../favicon.png>
6
6
  </head><body>
7
7
 
8
- <script src=../../engine/engine.all.min.js?108></script>
8
+ <script src=../../engine/engine.all.min.js?109></script>
9
9
  <script>
10
10
 
11
11
  /*
package/game.js CHANGED
@@ -8,7 +8,7 @@
8
8
  //onerror = (...parameters)=> alert(parameters);
9
9
 
10
10
  // game variables
11
- let particleEmiter, clickCount = 0;
11
+ let particleEmiter;
12
12
 
13
13
  // sound effects
14
14
  const sound_click = new Sound([.5,.5]);
@@ -21,13 +21,13 @@ medalsInit('Hello World');
21
21
  function gameInit()
22
22
  {
23
23
  // create tile collision and visible tile layer
24
- initTileCollision(vec2(32,16));
24
+ initTileCollision(vec2(32, 16));
25
25
  const tileLayer = new TileLayer(vec2(), tileCollisionSize);
26
26
  const pos = vec2();
27
27
 
28
28
  // get level data from the tiles image
29
29
  const imageLevelDataRow = 1;
30
- mainContext.drawImage(tileImage,0,0);
30
+ mainContext.drawImage(tileImage, 0, 0);
31
31
  for (pos.x = tileCollisionSize.x; pos.x--;)
32
32
  for (pos.y = tileCollisionSize.y; pos.y--;)
33
33
  {
@@ -64,8 +64,8 @@ function gameInit()
64
64
  .99, 1, 1, PI, .05, // damping, angleDamping, gravityScale, particleCone, fadeRate,
65
65
  .5, 1, 1 // randomness, collide, additive, randomColorLinear, renderOrder
66
66
  );
67
- particleEmiter.elasticity = .3;
68
- particleEmiter.trailScale = 2;
67
+ particleEmiter.elasticity = .3; // bounce when it collides
68
+ particleEmiter.trailScale = 2; // stretch in direction of motion
69
69
  }
70
70
 
71
71
  ///////////////////////////////////////////////////////////////////////////////
@@ -76,7 +76,7 @@ function gameUpdate()
76
76
  // play sound when mouse is pressed
77
77
  sound_click.play(mousePos);
78
78
 
79
- // change particle color
79
+ // change particle color and set to fade out
80
80
  particleEmiter.colorStartA = new Color;
81
81
  particleEmiter.colorStartB = randColor();
82
82
  particleEmiter.colorEndA = particleEmiter.colorStartA.scale(1,0);
@@ -87,7 +87,7 @@ function gameUpdate()
87
87
  }
88
88
 
89
89
  // move particles to mouse location if on screen
90
- if (mousePosScreen.x || mousePosScreen.y)
90
+ if (mousePosScreen.x)
91
91
  particleEmiter.pos = mousePos;
92
92
  }
93
93
 
package/index.html CHANGED
@@ -6,21 +6,21 @@
6
6
  </head><body>
7
7
 
8
8
  <!-- LittleJS engine scripts -->
9
- <script src=engine/engineDebug.js?108></script>
10
- <script src=engine/engineUtilities.js?108></script>
11
- <script src=engine/engineSettings.js?108></script>
12
- <script src=engine/engineObject.js?108></script>
13
- <script src=engine/engineDraw.js?108></script>
14
- <script src=engine/engineInput.js?108></script>
15
- <script src=engine/engineAudio.js?108></script>
16
- <script src=engine/engineTileLayer.js?108></script>
17
- <script src=engine/engineParticles.js?108></script>
18
- <script src=engine/engineMedals.js?108></script>
19
- <script src=engine/engineWebGL.js?108></script>
20
- <script src=engine/engine.js?108></script>
9
+ <script src=engine/engineDebug.js?109></script>
10
+ <script src=engine/engineUtilities.js?109></script>
11
+ <script src=engine/engineSettings.js?109></script>
12
+ <script src=engine/engineObject.js?109></script>
13
+ <script src=engine/engineDraw.js?109></script>
14
+ <script src=engine/engineInput.js?109></script>
15
+ <script src=engine/engineAudio.js?109></script>
16
+ <script src=engine/engineTileLayer.js?109></script>
17
+ <script src=engine/engineParticles.js?109></script>
18
+ <script src=engine/engineMedals.js?109></script>
19
+ <script src=engine/engineWebGL.js?109></script>
20
+ <script src=engine/engine.js?109></script>
21
21
 
22
22
  <!-- You can also include all engine scripts like this... -->
23
23
  <!-- <script src=engine/engine.all.js></script> -->
24
24
 
25
25
  <!-- Add your game scripts here -->
26
- <script src=game.js?108></script>
26
+ <script src=game.js?109></script>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "littlejsengine",
3
- "version": "1.3.3",
3
+ "version": "1.3.5",
4
4
  "description": "LittleJS - Tiny and Fast HTML5 Game Engine",
5
5
  "main": "engine/engine.all.js",
6
6
  "repository": {