littlejsengine 1.3.8 → 1.4.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.
- package/README.md +30 -9
- package/build.bat +1 -1
- package/buildSetup.bat +2 -2
- package/engine/engine.all.js +276 -167
- package/engine/engine.all.min.js +1 -1
- package/engine/engine.all.module.js +4812 -0
- package/engine/engine.all.release.js +259 -143
- package/engine/engine.all.release.module.js +4457 -0
- package/engine/engine.js +12 -8
- package/engine/engineBuild.bat +1 -1
- package/engine/engineBuildModule.mjs +14 -0
- package/engine/engineDebug.js +17 -24
- package/engine/engineDraw.js +16 -16
- package/engine/engineExportModule.js +333 -0
- package/engine/engineInput.js +9 -8
- package/engine/engineMedals.js +10 -6
- package/engine/engineObject.js +4 -4
- package/engine/engineParticles.js +45 -21
- package/engine/engineTileLayer.js +2 -2
- package/engine/engineUtilities.js +47 -25
- package/engine/engineWebGL.js +114 -54
- package/engine/index.d.ts +64 -30
- package/examples/breakout/game.js +63 -11
- package/examples/breakout/gameObjects.js +14 -12
- package/examples/breakout/index.html +3 -3
- package/examples/empty/game.js +35 -0
- package/examples/empty/index.html +9 -0
- package/examples/empty/tiles.png +0 -0
- package/examples/module/game.js +122 -0
- package/examples/module/index.html +9 -0
- package/examples/module/tiles.png +0 -0
- package/examples/particles/index.html +14 -14
- package/examples/particles/tiles.png +0 -0
- package/examples/platformer/game.js +1 -1
- package/examples/platformer/gameObjects.js +7 -7
- package/examples/platformer/gamePlayer.js +7 -5
- package/examples/platformer/index.html +6 -6
- package/examples/puzzle/index.html +2 -2
- package/examples/stress/index.html +2 -2
- package/game.js +10 -12
- package/index.html +13 -13
- package/package.json +36 -32
|
@@ -15,18 +15,18 @@ 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?118></script>
|
|
19
|
+
<script src=../../engine/engineUtilities.js?118></script>
|
|
20
|
+
<script src=../../engine/engineSettings.js?118></script>
|
|
21
|
+
<script src=../../engine/engineObject.js?118></script>
|
|
22
|
+
<script src=../../engine/engineDraw.js?118></script>
|
|
23
|
+
<script src=../../engine/engineInput.js?118></script>
|
|
24
|
+
<script src=../../engine/engineAudio.js?118></script>
|
|
25
|
+
<script src=../../engine/engineTileLayer.js?118></script>
|
|
26
|
+
<script src=../../engine/engineParticles.js?118></script>
|
|
27
|
+
<script src=../../engine/engineMedals.js?118></script>
|
|
28
|
+
<script src=../../engine/engineWebGL.js?118></script>
|
|
29
|
+
<script src=../../engine/engine.js?118></script>
|
|
30
30
|
<script>
|
|
31
31
|
|
|
32
32
|
'use strict';
|
|
@@ -103,7 +103,7 @@ function gameInit()
|
|
|
103
103
|
if (type == 'color')
|
|
104
104
|
{
|
|
105
105
|
const color = particleSystem[name];
|
|
106
|
-
defaultValue = color.
|
|
106
|
+
defaultValue = color.toString(0);
|
|
107
107
|
}
|
|
108
108
|
else if (type == 'alpha')
|
|
109
109
|
{
|
|
@@ -277,7 +277,7 @@ function updateSetting(setting, save=1)
|
|
|
277
277
|
if (type == 'color')
|
|
278
278
|
{
|
|
279
279
|
const color = particleSystem[name];
|
|
280
|
-
input.value = color.
|
|
280
|
+
input.value = color.toString(0);
|
|
281
281
|
}
|
|
282
282
|
else if (type == 'alpha')
|
|
283
283
|
{
|
|
Binary file
|
|
@@ -25,7 +25,7 @@ class GameObject extends EngineObject
|
|
|
25
25
|
// flash white when damaged
|
|
26
26
|
if (!this.isDead() && this.damageTimer.isSet())
|
|
27
27
|
{
|
|
28
|
-
const a = .5*percent(this.damageTimer
|
|
28
|
+
const a = .5*percent(this.damageTimer, .15, 0);
|
|
29
29
|
this.additiveColor = new Color(a,a,a,0);
|
|
30
30
|
}
|
|
31
31
|
else
|
|
@@ -72,7 +72,7 @@ class Crate extends GameObject
|
|
|
72
72
|
this.health = 5;
|
|
73
73
|
|
|
74
74
|
// make it a solid object for collision
|
|
75
|
-
this.setCollision(
|
|
75
|
+
this.setCollision();
|
|
76
76
|
}
|
|
77
77
|
|
|
78
78
|
kill()
|
|
@@ -98,7 +98,7 @@ class Enemy extends GameObject
|
|
|
98
98
|
this.color = (new Color).setHSLA(rand(), 1, .7);
|
|
99
99
|
this.health = 5;
|
|
100
100
|
this.bounceTime = new Timer(rand(1e3));
|
|
101
|
-
this.setCollision(1);
|
|
101
|
+
this.setCollision(1,0);
|
|
102
102
|
}
|
|
103
103
|
|
|
104
104
|
update()
|
|
@@ -134,7 +134,7 @@ class Enemy extends GameObject
|
|
|
134
134
|
render()
|
|
135
135
|
{
|
|
136
136
|
// bounce by changing size
|
|
137
|
-
const bounceTime = this.bounceTime
|
|
137
|
+
const bounceTime = this.bounceTime*6;
|
|
138
138
|
this.drawSize = vec2(1-.1*Math.sin(bounceTime), 1+.1*Math.sin(bounceTime));
|
|
139
139
|
|
|
140
140
|
// make bottom flush
|
|
@@ -157,7 +157,7 @@ class Grenade extends GameObject
|
|
|
157
157
|
this.friction = .9;
|
|
158
158
|
this.angleDamping = .96;
|
|
159
159
|
this.renderOrder = 1e8;
|
|
160
|
-
this.setCollision(1);
|
|
160
|
+
this.setCollision(1,0);
|
|
161
161
|
}
|
|
162
162
|
|
|
163
163
|
update()
|
|
@@ -206,7 +206,7 @@ class Weapon extends EngineObject
|
|
|
206
206
|
this.renderOrder = parent.renderOrder + 1;
|
|
207
207
|
this.fireTimeBuffer = this.localAngle = 0;
|
|
208
208
|
this.recoilTimer = new Timer;
|
|
209
|
-
parent.addChild(
|
|
209
|
+
parent.addChild(this, vec2(.6,0));
|
|
210
210
|
|
|
211
211
|
// shell effect
|
|
212
212
|
this.addChild(this.shellEmitter = new ParticleEmitter(
|
|
@@ -271,7 +271,7 @@ class Bullet extends EngineObject
|
|
|
271
271
|
this.renderOrder = 100;
|
|
272
272
|
this.drawSize = vec2(.2,.5);
|
|
273
273
|
this.range = 20;
|
|
274
|
-
this.setCollision(1);
|
|
274
|
+
this.setCollision(1,0);
|
|
275
275
|
}
|
|
276
276
|
|
|
277
277
|
update()
|
|
@@ -15,7 +15,8 @@ class Character extends GameObject
|
|
|
15
15
|
{
|
|
16
16
|
super(pos, vec2(.6,.95), 32);
|
|
17
17
|
|
|
18
|
-
|
|
18
|
+
this.weapon = new Weapon(pos, this);
|
|
19
|
+
this.lastPos = pos;
|
|
19
20
|
this.groundTimer = new Timer;
|
|
20
21
|
this.jumpTimer = new Timer;
|
|
21
22
|
this.pressedJumpTimer = new Timer;
|
|
@@ -29,7 +30,7 @@ class Character extends GameObject
|
|
|
29
30
|
this.walkCyclePercent = 0;
|
|
30
31
|
this.health = 1;
|
|
31
32
|
this.moveInput = 0;
|
|
32
|
-
this.setCollision(1);
|
|
33
|
+
this.setCollision(1,0);
|
|
33
34
|
}
|
|
34
35
|
|
|
35
36
|
update()
|
|
@@ -103,8 +104,8 @@ class Character extends GameObject
|
|
|
103
104
|
else if (moveInput.y)
|
|
104
105
|
this.climbingLadder = 1;
|
|
105
106
|
|
|
106
|
-
// update weapon trigger
|
|
107
|
-
|
|
107
|
+
if (this.weapon) // update weapon trigger
|
|
108
|
+
this.weapon.triggerIsDown = this.holdingShoot && !this.dodgeTimer.active();
|
|
108
109
|
|
|
109
110
|
// update ladder
|
|
110
111
|
if (this.climbingLadder)
|
|
@@ -246,7 +247,8 @@ class Character extends GameObject
|
|
|
246
247
|
sound_die.play(this.pos);
|
|
247
248
|
|
|
248
249
|
this.health = 0;
|
|
249
|
-
this.weapon
|
|
250
|
+
if (this.weapon)
|
|
251
|
+
this.weapon.destroy();
|
|
250
252
|
this.deadTimer.set();
|
|
251
253
|
this.size = this.size.scale(.5);
|
|
252
254
|
const fallDirection = damagingObject ? sign(damagingObject.velocity.x) : randSign();
|
|
@@ -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?
|
|
13
|
-
<script src=game.js?
|
|
8
|
+
<script src=../../engine/engine.all.js?118></script>
|
|
9
|
+
<script src=gameObjects.js?118></script>
|
|
10
|
+
<script src=gamePlayer.js?118></script>
|
|
11
|
+
<script src=gameEffects.js?118></script>
|
|
12
|
+
<script src=gameLevel.js?118></script>
|
|
13
|
+
<script src=game.js?118></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?
|
|
8
|
+
<script src=../../engine/engine.all.min.js?118></script>
|
|
9
9
|
<script>
|
|
10
10
|
|
|
11
11
|
/*
|
|
@@ -31,7 +31,7 @@ class TestObject extends EngineObject
|
|
|
31
31
|
super(pos, vec2(1), 0, vec2(16), 0, spriteColor);
|
|
32
32
|
|
|
33
33
|
this.additiveColor = spriteAdditiveColor;
|
|
34
|
-
this.setCollision(
|
|
34
|
+
this.setCollision();
|
|
35
35
|
}
|
|
36
36
|
}
|
|
37
37
|
|
package/game.js
CHANGED
|
@@ -4,19 +4,16 @@
|
|
|
4
4
|
|
|
5
5
|
'use strict';
|
|
6
6
|
|
|
7
|
-
// popup errors if there are any (help diagnose issues on mobile devices)
|
|
8
|
-
//onerror = (...parameters)=> alert(parameters);
|
|
9
|
-
|
|
10
|
-
// game variables
|
|
11
|
-
let particleEmiter;
|
|
12
|
-
|
|
13
7
|
// sound effects
|
|
14
8
|
const sound_click = new Sound([.5,.5]);
|
|
15
9
|
|
|
16
10
|
// medals
|
|
17
|
-
const medal_example = new Medal(0, 'Example Medal', '
|
|
11
|
+
const medal_example = new Medal(0, 'Example Medal', 'Welcome to LittleJS!');
|
|
18
12
|
medalsInit('Hello World');
|
|
19
13
|
|
|
14
|
+
// game variables
|
|
15
|
+
let particleEmiter;
|
|
16
|
+
|
|
20
17
|
///////////////////////////////////////////////////////////////////////////////
|
|
21
18
|
function gameInit()
|
|
22
19
|
{
|
|
@@ -56,13 +53,14 @@ function gameInit()
|
|
|
56
53
|
// create particle emitter
|
|
57
54
|
const center = tileCollisionSize.scale(.5).add(vec2(0,9));
|
|
58
55
|
particleEmiter = new ParticleEmitter(
|
|
59
|
-
center, 0,
|
|
56
|
+
center, 0, // emitPos, emitAngle
|
|
57
|
+
1, 0, 500, PI, // emitSize, emitTime, emitRate, emiteCone
|
|
60
58
|
0, vec2(16), // tileIndex, tileSize
|
|
61
59
|
new Color(1,1,1), new Color(0,0,0), // colorStartA, colorStartB
|
|
62
60
|
new Color(1,1,1,0), new Color(0,0,0,0), // colorEndA, colorEndB
|
|
63
|
-
2, .2, .2, .1, .05,
|
|
64
|
-
.99, 1, 1, PI,
|
|
65
|
-
.5, 1, 1
|
|
61
|
+
2, .2, .2, .1, .05, // time, sizeStart, sizeEnd, speed, angleSpeed
|
|
62
|
+
.99, 1, 1, PI, // damping, angleDamping, gravityScale, cone
|
|
63
|
+
.05, .5, 1, 1 // fadeRate, randomness, collide, additive
|
|
66
64
|
);
|
|
67
65
|
particleEmiter.elasticity = .3; // bounce when it collides
|
|
68
66
|
particleEmiter.trailScale = 2; // stretch in direction of motion
|
|
@@ -108,7 +106,7 @@ function gameRender()
|
|
|
108
106
|
function gameRenderPost()
|
|
109
107
|
{
|
|
110
108
|
// draw to overlay canvas for hud rendering
|
|
111
|
-
drawTextScreen('Hello World', vec2(
|
|
109
|
+
drawTextScreen('Hello World', vec2(mainCanvasSize.x/2, 80), 80);
|
|
112
110
|
}
|
|
113
111
|
|
|
114
112
|
///////////////////////////////////////////////////////////////////////////////
|
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?118></script>
|
|
10
|
+
<script src=engine/engineUtilities.js?118></script>
|
|
11
|
+
<script src=engine/engineSettings.js?118></script>
|
|
12
|
+
<script src=engine/engineObject.js?118></script>
|
|
13
|
+
<script src=engine/engineDraw.js?118></script>
|
|
14
|
+
<script src=engine/engineInput.js?118></script>
|
|
15
|
+
<script src=engine/engineAudio.js?118></script>
|
|
16
|
+
<script src=engine/engineTileLayer.js?118></script>
|
|
17
|
+
<script src=engine/engineParticles.js?118></script>
|
|
18
|
+
<script src=engine/engineMedals.js?118></script>
|
|
19
|
+
<script src=engine/engineWebGL.js?118></script>
|
|
20
|
+
<script src=engine/engine.js?118></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?118></script>
|
package/package.json
CHANGED
|
@@ -1,32 +1,36 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "littlejsengine",
|
|
3
|
-
"version": "1.
|
|
4
|
-
"description": "LittleJS - Tiny and Fast HTML5 Game Engine",
|
|
5
|
-
"main": "engine/engine.all.js",
|
|
6
|
-
"repository": {
|
|
7
|
-
"type": "git",
|
|
8
|
-
"url": "git+https://github.com/KilledByAPixel/LittleJS.git"
|
|
9
|
-
},
|
|
10
|
-
"keywords": [
|
|
11
|
-
"HTML5",
|
|
12
|
-
"JavaScript",
|
|
13
|
-
"game",
|
|
14
|
-
"engine",
|
|
15
|
-
"library",
|
|
16
|
-
"JS13K",
|
|
17
|
-
"webgl"
|
|
18
|
-
],
|
|
19
|
-
"author": "Frank Force",
|
|
20
|
-
"license": "MIT",
|
|
21
|
-
"bugs": {
|
|
22
|
-
"url": "https://github.com/KilledByAPixel/LittleJS/issues"
|
|
23
|
-
},
|
|
24
|
-
"homepage": "https://github.com/KilledByAPixel/LittleJS",
|
|
25
|
-
"
|
|
26
|
-
"
|
|
27
|
-
"
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
"
|
|
31
|
-
|
|
32
|
-
|
|
1
|
+
{
|
|
2
|
+
"name": "littlejsengine",
|
|
3
|
+
"version": "1.4.5",
|
|
4
|
+
"description": "LittleJS - Tiny and Fast HTML5 Game Engine",
|
|
5
|
+
"main": "engine/engine.all.module.js",
|
|
6
|
+
"repository": {
|
|
7
|
+
"type": "git",
|
|
8
|
+
"url": "git+https://github.com/KilledByAPixel/LittleJS.git"
|
|
9
|
+
},
|
|
10
|
+
"keywords": [
|
|
11
|
+
"HTML5",
|
|
12
|
+
"JavaScript",
|
|
13
|
+
"game",
|
|
14
|
+
"engine",
|
|
15
|
+
"library",
|
|
16
|
+
"JS13K",
|
|
17
|
+
"webgl"
|
|
18
|
+
],
|
|
19
|
+
"author": "Frank Force",
|
|
20
|
+
"license": "MIT",
|
|
21
|
+
"bugs": {
|
|
22
|
+
"url": "https://github.com/KilledByAPixel/LittleJS/issues"
|
|
23
|
+
},
|
|
24
|
+
"homepage": "https://github.com/KilledByAPixel/LittleJS",
|
|
25
|
+
"scripts": {
|
|
26
|
+
"build:esm": "node --experimental-modules engine/engineBuildModule.mjs",
|
|
27
|
+
"build": "build.bat && npm run build:esm && npm run check-filesize"
|
|
28
|
+
},
|
|
29
|
+
"dependencies": {
|
|
30
|
+
"ect-bin": "^1.4.1",
|
|
31
|
+
"google-closure-compiler": "^20221102.0.1",
|
|
32
|
+
"roadroller": "^2.1.0",
|
|
33
|
+
"typescript": "^4.9.4",
|
|
34
|
+
"uglify-js": "^3.17.4"
|
|
35
|
+
}
|
|
36
|
+
}
|