littlejsengine 1.3.0 → 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.
- package/README.md +4 -3
- package/build.bat +1 -1
- package/docs/Audio.html +2268 -0
- package/docs/Color.html +3376 -0
- package/docs/Debug.html +2933 -0
- package/docs/Draw.html +4480 -0
- package/docs/EngineObject.html +4734 -0
- package/docs/FontImage.html +1055 -0
- package/docs/Input.html +2806 -0
- package/docs/Medal.html +1007 -0
- package/docs/Medals.html +628 -0
- package/docs/Music.html +584 -0
- package/docs/Newgrounds.html +1399 -0
- package/docs/Particle.html +4825 -0
- package/docs/ParticleEmitter.html +8099 -0
- package/docs/Random.html +1774 -0
- package/docs/Settings.html +3140 -0
- package/docs/Sound.html +1249 -0
- package/docs/TileCollision.html +1409 -0
- package/docs/TileLayer.html +7310 -0
- package/docs/TileLayerData.html +1052 -0
- package/docs/Timer.html +1295 -0
- package/docs/Utilities.html +3278 -0
- package/docs/Vector2.html +4266 -0
- package/docs/WebGL.html +2307 -0
- package/docs/engine.js.html +443 -0
- package/docs/engineAudio.js.html +627 -0
- package/docs/engineDebug.js.html +554 -0
- package/docs/engineDraw.js.html +539 -0
- package/docs/engineInput.js.html +571 -0
- package/docs/engineMedals.js.html +460 -0
- package/docs/engineObject.js.html +533 -0
- package/docs/engineParticles.js.html +443 -0
- package/docs/engineSettings.js.html +381 -0
- package/docs/engineTileLayer.js.html +503 -0
- package/docs/engineUtilities.js.html +700 -0
- package/docs/engineWebGL.js.html +511 -0
- package/docs/fonts/MavenPro-Regular.ttf +0 -0
- package/docs/fonts/Montserrat-Regular.ttf +0 -0
- package/docs/fonts/Muli-Black.ttf +0 -0
- package/docs/fonts/OFL-hind.txt +93 -0
- package/docs/fonts/OFL-montserrat.txt +93 -0
- package/docs/global.html +1771 -0
- package/docs/index.css +6 -0
- package/docs/index.html +267 -0
- package/docs/scripts/fix-code-block.js +53 -0
- package/docs/scripts/fix-navbar.js +25 -0
- package/docs/scripts/linenumber.js +25 -0
- package/docs/scripts/misc.js +217 -0
- package/docs/scripts/resize.js +85 -0
- package/docs/scripts/search.js +83 -0
- package/docs/scripts/third-party/Apache-License-2.0.txt +202 -0
- package/docs/scripts/third-party/fuse.js +9 -0
- package/docs/scripts/third-party/lang-css.js +2 -0
- package/docs/scripts/third-party/prettify.js +28 -0
- package/docs/static/favicon.png +0 -0
- package/docs/static/index.css +4 -0
- package/docs/styles/clean-jsdoc-theme-base.css +393 -0
- package/docs/styles/clean-jsdoc-theme-dark.css +324 -0
- package/docs/styles/clean-jsdoc-theme-light.css +319 -0
- package/docs/styles/reset.css +346 -0
- package/docs/styles/third-party/ionicons.min.css +11 -0
- package/docs/styles/third-party/prettify-jsdoc.css +111 -0
- package/docs/styles/third-party/prettify-tomorrow.css +5 -0
- package/engine/engine.all.js +72 -33
- package/engine/engine.all.min.js +1 -1
- package/engine/engine.all.release.js +72 -33
- package/engine/engine.js +1 -1
- package/engine/engineAudio.js +5 -7
- package/engine/engineBuild.bat +0 -1
- package/engine/engineDraw.js +4 -3
- package/engine/engineInput.js +5 -1
- package/engine/engineMedals.js +1 -1
- package/engine/engineObject.js +19 -16
- package/engine/engineParticles.js +1 -1
- package/engine/engineSettings.js +5 -0
- package/engine/engineUtilities.js +30 -2
- package/engine/engineWebGL.js +1 -1
- package/engine/index.d.ts +15 -5
- package/examples/breakout/index.html +3 -3
- package/examples/particles/index.html +62 -62
- package/examples/platformer/index.html +5 -5
- package/examples/puzzle/game.js +3 -1
- package/examples/puzzle/index.html +2 -2
- package/examples/stress/index.html +1 -1
- package/game.js +3 -14
- package/index.html +13 -13
- package/package.json +1 -1
|
@@ -15,24 +15,24 @@ button
|
|
|
15
15
|
</style>
|
|
16
16
|
</head><body>
|
|
17
17
|
|
|
18
|
-
<script src=../../engine/engineDebug.js?
|
|
19
|
-
<script src=../../engine/engineUtilities.js?
|
|
20
|
-
<script src=../../engine/engineSettings.js?
|
|
21
|
-
<script src=../../engine/engineObject.js?
|
|
22
|
-
<script src=../../engine/engineDraw.js?
|
|
23
|
-
<script src=../../engine/engineInput.js?
|
|
24
|
-
<script src=../../engine/engineAudio.js?
|
|
25
|
-
<script src=../../engine/engineTileLayer.js?
|
|
26
|
-
<script src=../../engine/engineParticles.js?
|
|
27
|
-
<script src=../../engine/engineMedals.js?
|
|
28
|
-
<script src=../../engine/engineWebGL.js?
|
|
29
|
-
<script src=../../engine/engine.js?
|
|
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>
|
|
30
30
|
<script>
|
|
31
31
|
|
|
32
32
|
'use strict';
|
|
33
33
|
|
|
34
34
|
let particleEditor = 0, particleSystem, particleSystemDiv, particleSystemCode;
|
|
35
|
-
let
|
|
35
|
+
let inputExpand;
|
|
36
36
|
let restartTimer = new Timer();
|
|
37
37
|
const storagePrefix = 'particles_';
|
|
38
38
|
|
|
@@ -42,35 +42,35 @@ function addSetting(name, type, min, max, step, description)
|
|
|
42
42
|
particleSettings.push({name, type:type||'number', min, max, step, description});
|
|
43
43
|
}
|
|
44
44
|
|
|
45
|
-
addSetting('emitSize', '', 0, 1e9, .1);
|
|
46
|
-
addSetting('emitTime', '', 0, 1e9, .1);
|
|
47
|
-
addSetting('emitRate', '', 0, 1e9, 1);
|
|
48
|
-
addSetting('emitConeAngle', '', 0, 1e9, .01);
|
|
49
|
-
addSetting('tileIndex', '', -1, 1e9, 1);
|
|
50
|
-
addSetting('tileSizeX', '', 0, 1e9, 1);
|
|
51
|
-
addSetting('tileSizeY', '', 0, 1e9, 1);
|
|
52
|
-
addSetting('colorStartA', 'color');
|
|
53
|
-
addSetting('colorStartB', 'color');
|
|
54
|
-
addSetting('colorEndA', 'color');
|
|
55
|
-
addSetting('colorEndB', 'color');
|
|
56
|
-
addSetting('colorAlphaStartA', 'alpha', 0, 1, .01);
|
|
57
|
-
addSetting('colorAlphaStartB', 'alpha', 0, 1, .01);
|
|
58
|
-
addSetting('colorAlphaEndA', 'alpha', 0, 1, .01);
|
|
59
|
-
addSetting('colorAlphaEndB', 'alpha', 0, 1, .01);
|
|
60
|
-
addSetting('particleTime', '', 0, 1e9, .1);
|
|
61
|
-
addSetting('sizeStart', '', 0, 1e9, .01);
|
|
62
|
-
addSetting('sizeEnd', '', 0, 1e9, .01);
|
|
63
|
-
addSetting('speed', '', 0, 1e9, .01);
|
|
64
|
-
addSetting('angleSpeed', '', 0, 1e9, .01);
|
|
65
|
-
addSetting('damping', '', 0, 1, .01);
|
|
66
|
-
addSetting('angleDamping', '', 0, 1, .01);
|
|
67
|
-
addSetting('gravityScale', '', -1e9, 1e9, .1);
|
|
68
|
-
addSetting('particleConeAngle','', 0, 1e9, .1);
|
|
69
|
-
addSetting('fadeRate', '', 0, 1, .01);
|
|
70
|
-
addSetting('randomness', '', 0, 1, .01);
|
|
71
|
-
addSetting('collideTiles', 'checkbox');
|
|
72
|
-
addSetting('additive', 'checkbox');
|
|
73
|
-
addSetting('randomColorLinear','checkbox');
|
|
45
|
+
addSetting('emitSize', '', 0, 1e9, .1, 'World space size of the emitter');
|
|
46
|
+
addSetting('emitTime', '', 0, 1e9, .1, 'How long to stay alive (0 is forever)');
|
|
47
|
+
addSetting('emitRate', '', 0, 1e9, 1, 'How many particles per second to spawn, does not emit if 0');
|
|
48
|
+
addSetting('emitConeAngle', '', 0, 1e9, .01,'Local angle to apply velocity to particles from emitter');
|
|
49
|
+
addSetting('tileIndex', '', -1, 1e9, 1, 'Tile to use to render object (-1 is untextured)');
|
|
50
|
+
addSetting('tileSizeX', '', 0, 1e9, 1, 'X Size of texture tile in source pixelss');
|
|
51
|
+
addSetting('tileSizeY', '', 0, 1e9, 1, 'Y Size of texture tile in source pixelss');
|
|
52
|
+
addSetting('colorStartA', 'color',0,0,0, 'Color at start of life 1');
|
|
53
|
+
addSetting('colorStartB', 'color',0,0,0, 'Color at start of life 2');
|
|
54
|
+
addSetting('colorEndA', 'color',0,0,0, 'Color at end of life 1');
|
|
55
|
+
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');
|
|
60
|
+
addSetting('particleTime', '', 0, 1e9, .1, 'How long particles live');
|
|
61
|
+
addSetting('sizeStart', '', 0, 1e9, .01,'How big are particles at start');
|
|
62
|
+
addSetting('sizeEnd', '', 0, 1e9, .01,'How big are particles at end');
|
|
63
|
+
addSetting('speed', '', 0, 1e9, .01,'How fast are particles when spawned');
|
|
64
|
+
addSetting('angleSpeed', '', 0, 1e9, .01,'How fast are particles rotating');
|
|
65
|
+
addSetting('damping', '', 0, 1, .01,'How much to dampen particle speed');
|
|
66
|
+
addSetting('angleDamping', '', 0, 1, .01,'How much to dampen particle angular speed');
|
|
67
|
+
addSetting('gravityScale', '', -1e9, 1e9, .1, 'How much does gravity effect particles');
|
|
68
|
+
addSetting('particleConeAngle','', 0, 1e9, .1, 'Cone for start particle angle');
|
|
69
|
+
addSetting('fadeRate', '', 0, 1, .01,'How quickly particles fade in percent of life');
|
|
70
|
+
addSetting('randomness', '', 0, 1, .01,'Apply extra randomness percent');
|
|
71
|
+
addSetting('collideTiles', 'checkbox',0,0,0, 'Do particles collide against tiles?');
|
|
72
|
+
addSetting('additive', 'checkbox',0,0,0, 'Should particles use addtive blend?');
|
|
73
|
+
addSetting('randomColorLinear','checkbox',0,0,0, 'Should color be randomized linearly?');
|
|
74
74
|
|
|
75
75
|
function makeEmitter()
|
|
76
76
|
{
|
|
@@ -95,8 +95,10 @@ function gameInit()
|
|
|
95
95
|
{
|
|
96
96
|
const input = setting.input = document.createElement('input');
|
|
97
97
|
const name = setting.name;
|
|
98
|
-
input.oninput = (e)=> updateParticles();
|
|
99
98
|
input.type = setting.type == 'alpha' ? 'number' : setting.type;
|
|
99
|
+
input.title = setting.description;
|
|
100
|
+
input.oninput = (e)=> updateParticles(setting.type == 'checkbox');
|
|
101
|
+
input.onblur = (e)=> updateParticles(1);
|
|
100
102
|
if (setting.min !== undefined)
|
|
101
103
|
input.min = setting.min;
|
|
102
104
|
if (setting.max !== undefined)
|
|
@@ -135,13 +137,12 @@ function gameInit()
|
|
|
135
137
|
}
|
|
136
138
|
}
|
|
137
139
|
{
|
|
138
|
-
|
|
139
|
-
div.appendChild(
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
div.appendChild(document.createTextNode(' Condense'));
|
|
140
|
+
inputExpand = document.createElement('input');
|
|
141
|
+
div.appendChild(inputExpand);
|
|
142
|
+
inputExpand.type = 'checkbox';
|
|
143
|
+
inputExpand.style.width = 'initial';
|
|
144
|
+
inputExpand.oninput = (e)=> updateParticles(1);
|
|
145
|
+
div.appendChild(document.createTextNode(' Expand'));
|
|
145
146
|
}
|
|
146
147
|
|
|
147
148
|
//div.appendChild(document.createTextNode('JavaScript Code... '));
|
|
@@ -171,7 +172,7 @@ function gameInit()
|
|
|
171
172
|
updateParticles();
|
|
172
173
|
}
|
|
173
174
|
|
|
174
|
-
function updateParticles()
|
|
175
|
+
function updateParticles(shouldUpdateInput)
|
|
175
176
|
{
|
|
176
177
|
for (const setting of particleSettings)
|
|
177
178
|
{
|
|
@@ -212,7 +213,7 @@ function updateParticles()
|
|
|
212
213
|
else
|
|
213
214
|
particleSystem[name] = clamp(inputFloat, setting.min, setting.max);
|
|
214
215
|
}
|
|
215
|
-
updateInputs()
|
|
216
|
+
shouldUpdateInput && updateInputs()
|
|
216
217
|
}
|
|
217
218
|
|
|
218
219
|
function updateInputs(save=1)
|
|
@@ -260,7 +261,7 @@ function updateInputs(save=1)
|
|
|
260
261
|
|
|
261
262
|
function getCode()
|
|
262
263
|
{
|
|
263
|
-
const
|
|
264
|
+
const expand = inputExpand.checked;
|
|
264
265
|
let code = '';
|
|
265
266
|
|
|
266
267
|
// https://www.codingem.com/javascript-how-to-limit-decimal-places/
|
|
@@ -270,10 +271,10 @@ function getCode()
|
|
|
270
271
|
}
|
|
271
272
|
|
|
272
273
|
code = 'new ParticleEmitter(';
|
|
273
|
-
if (
|
|
274
|
-
code += 'vec2(), 0, ';
|
|
275
|
-
else
|
|
274
|
+
if (expand)
|
|
276
275
|
code += '\n vec2(), 0,\t//position, angle\n';
|
|
276
|
+
else
|
|
277
|
+
code += 'vec2(), 0, ';
|
|
277
278
|
|
|
278
279
|
let count = 0;
|
|
279
280
|
for (const setting of particleSettings)
|
|
@@ -296,12 +297,12 @@ function getCode()
|
|
|
296
297
|
value = particleSystem[name] ? 1 : 0;
|
|
297
298
|
else
|
|
298
299
|
value = particleSystem[name].round(3);
|
|
299
|
-
if (
|
|
300
|
+
if (expand)
|
|
300
301
|
code += ' ';
|
|
301
302
|
code += value;
|
|
302
303
|
|
|
303
304
|
const isEnd = name == 'randomColorLinear';
|
|
304
|
-
if (
|
|
305
|
+
if (expand)
|
|
305
306
|
{
|
|
306
307
|
code += ',\t// ' + name;
|
|
307
308
|
if (!isEnd)
|
|
@@ -311,11 +312,10 @@ function getCode()
|
|
|
311
312
|
code += ', ';
|
|
312
313
|
}
|
|
313
314
|
|
|
314
|
-
|
|
315
|
-
if (condense)
|
|
316
|
-
code += ');';
|
|
317
|
-
else
|
|
315
|
+
if (expand)
|
|
318
316
|
code += '\n); // particle emitter';
|
|
317
|
+
else
|
|
318
|
+
code += ');';
|
|
319
319
|
|
|
320
320
|
return code;
|
|
321
321
|
}
|
|
@@ -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?
|
|
9
|
-
<script src=gameObjects.js?
|
|
10
|
-
<script src=gamePlayer.js?
|
|
11
|
-
<script src=gameEffects.js?
|
|
12
|
-
<script src=gameLevel.js?
|
|
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>
|
|
13
13
|
<script src=game.js?103></script>
|
package/examples/puzzle/game.js
CHANGED
|
@@ -129,7 +129,9 @@ function gameUpdate()
|
|
|
129
129
|
else if (mouseIsDown(0) && dragStartPos)
|
|
130
130
|
{
|
|
131
131
|
// if dragging to a neighbor tile
|
|
132
|
-
|
|
132
|
+
const dx = abs(dragStartPos.x - mouseTilePos.x);
|
|
133
|
+
const dy = abs(dragStartPos.y - mouseTilePos.y);
|
|
134
|
+
if (dx == 1 && dy == 0 || dx == 0 && dy == 1)
|
|
133
135
|
{
|
|
134
136
|
const startTile = getTile(dragStartPos);
|
|
135
137
|
const endTile = getTile(mouseTilePos);
|
package/game.js
CHANGED
|
@@ -5,8 +5,7 @@
|
|
|
5
5
|
'use strict';
|
|
6
6
|
|
|
7
7
|
// popup errors if there are any (help diagnose issues on mobile devices)
|
|
8
|
-
|
|
9
|
-
onerror = (...parameters)=> alert(parameters);
|
|
8
|
+
//onerror = (...parameters)=> alert(parameters);
|
|
10
9
|
|
|
11
10
|
// game variables
|
|
12
11
|
let particleEmiter, clickCount = 0;
|
|
@@ -15,7 +14,7 @@ let particleEmiter, clickCount = 0;
|
|
|
15
14
|
const sound_click = new Sound([.5,.5]);
|
|
16
15
|
|
|
17
16
|
// medals
|
|
18
|
-
const medal_example
|
|
17
|
+
const medal_example = new Medal(0, 'Example Medal', 'Medal description goes here.');
|
|
19
18
|
medalsInit('Hello World');
|
|
20
19
|
|
|
21
20
|
///////////////////////////////////////////////////////////////////////////////
|
|
@@ -109,17 +108,7 @@ function gameRender()
|
|
|
109
108
|
function gameRenderPost()
|
|
110
109
|
{
|
|
111
110
|
// draw to overlay canvas for hud rendering
|
|
112
|
-
|
|
113
|
-
{
|
|
114
|
-
overlayContext.textAlign = 'center';
|
|
115
|
-
overlayContext.textBaseline = 'top';
|
|
116
|
-
overlayContext.font = size + 'px arial';
|
|
117
|
-
overlayContext.fillStyle = '#fff';
|
|
118
|
-
overlayContext.lineWidth = 3;
|
|
119
|
-
overlayContext.strokeText(text, x, y);
|
|
120
|
-
overlayContext.fillText(text, x, y);
|
|
121
|
-
}
|
|
122
|
-
drawText('Hello World', overlayCanvas.width/2, 40);
|
|
111
|
+
drawTextScreen('Hello World', vec2(overlayCanvas.width/2, 80), 80, new Color, 9);
|
|
123
112
|
}
|
|
124
113
|
|
|
125
114
|
///////////////////////////////////////////////////////////////////////////////
|
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?
|
|
10
|
-
<script src=engine/engineUtilities.js?
|
|
11
|
-
<script src=engine/engineSettings.js?
|
|
12
|
-
<script src=engine/engineObject.js?
|
|
13
|
-
<script src=engine/engineDraw.js?
|
|
14
|
-
<script src=engine/engineInput.js?
|
|
15
|
-
<script src=engine/engineAudio.js?
|
|
16
|
-
<script src=engine/engineTileLayer.js?
|
|
17
|
-
<script src=engine/engineParticles.js?
|
|
18
|
-
<script src=engine/engineMedals.js?
|
|
19
|
-
<script src=engine/engineWebGL.js?
|
|
20
|
-
<script src=engine/engine.js?
|
|
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>
|
|
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?
|
|
26
|
+
<script src=game.js?108></script>
|