littlejsengine 1.2.0 → 1.2.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 -8
- package/engine/engine.all.js +82 -79
- package/engine/engine.all.min.js +1 -1
- package/engine/engine.all.release.js +81 -78
- package/engine/engine.js +8 -31
- package/engine/engineDebug.js +1 -1
- package/engine/engineDraw.js +8 -5
- package/engine/engineFont.png +0 -0
- package/engine/engineInput.js +22 -6
- package/engine/engineMedals.js +3 -3
- package/engine/engineParticles.js +5 -3
- package/engine/engineSettings.js +5 -0
- package/engine/engineWebGL.js +30 -30
- package/engine/index.d.ts +14 -9
- package/examples/breakout/gameObjects.js +2 -2
- package/examples/breakout/index.html +3 -3
- package/examples/platformer/game.js +4 -4
- package/examples/platformer/gameEffects.js +3 -3
- package/examples/platformer/gameObjects.js +2 -2
- package/examples/platformer/index.html +6 -6
- package/examples/puzzle/game.js +1 -1
- package/examples/puzzle/index.html +2 -2
- package/examples/screenshot.jpg +0 -0
- package/examples/stress/index.html +2 -2
- package/game.js +4 -4
- package/index.html +13 -13
- package/package.json +1 -1
package/engine/index.d.ts
CHANGED
|
@@ -760,6 +760,10 @@ declare let inputWASDEmulateDirection: number;
|
|
|
760
760
|
* @default
|
|
761
761
|
* @memberof Settings */
|
|
762
762
|
declare let touchGamepadEnable: number;
|
|
763
|
+
/** True if touch gamepad should be analog stick or false to use if 8 way dpad
|
|
764
|
+
* @default
|
|
765
|
+
* @memberof Settings */
|
|
766
|
+
declare let touchGamepadAnalog: number;
|
|
763
767
|
/** Size of virutal gamepad for touch devices in pixels
|
|
764
768
|
* @default
|
|
765
769
|
* @memberof Settings */
|
|
@@ -974,6 +978,7 @@ declare function worldToScreen(worldPos: Vector2): Vector2;
|
|
|
974
978
|
* // draw text
|
|
975
979
|
* font.drawTextScreen("LittleJS\nHello World!", vec2(200, 50));
|
|
976
980
|
*/
|
|
981
|
+
declare let engineFontImage: any;
|
|
977
982
|
declare class FontImage {
|
|
978
983
|
/** Create an image font
|
|
979
984
|
* @param {Image} [image] - The image the font is stored in, if undefined the default font is used
|
|
@@ -983,7 +988,7 @@ declare class FontImage {
|
|
|
983
988
|
* @param {CanvasRenderingContext2D} [context=overlayContext] - context to draw to
|
|
984
989
|
*/
|
|
985
990
|
constructor(image?: new (width?: number, height?: number) => HTMLImageElement, tileSize?: Vector2, paddingSize?: Vector2, startTileIndex?: number, context?: CanvasRenderingContext2D);
|
|
986
|
-
image:
|
|
991
|
+
image: any;
|
|
987
992
|
tileSize: Vector2;
|
|
988
993
|
paddingSize: Vector2;
|
|
989
994
|
startTileIndex: number;
|
|
@@ -1102,7 +1107,6 @@ declare const isTouchDevice: boolean;
|
|
|
1102
1107
|
declare let touchGamepadTimer: Timer;
|
|
1103
1108
|
declare let touchGamepadButtons: any[];
|
|
1104
1109
|
declare let touchGamepadStick: Vector2;
|
|
1105
|
-
declare let touchGamepadAnalog: number;
|
|
1106
1110
|
/**
|
|
1107
1111
|
* Sound Object - Stores a zzfx sound for later use and can be played positionally
|
|
1108
1112
|
* <br>
|
|
@@ -1337,9 +1341,9 @@ declare class TileLayer extends EngineObject {
|
|
|
1337
1341
|
* let pos = vec2(2,3);
|
|
1338
1342
|
* let particleEmiter = new ParticleEmitter
|
|
1339
1343
|
* (
|
|
1340
|
-
* pos, 1, 0, 500, PI, // pos, emitSize, emitTime, emitRate, emiteCone
|
|
1344
|
+
* pos, 0, 1, 0, 500, PI, // pos, angle, emitSize, emitTime, emitRate, emiteCone
|
|
1341
1345
|
* 0, vec2(16), // tileIndex, tileSize
|
|
1342
|
-
* new Color,
|
|
1346
|
+
* new Color(1,1,1), new Color(0,0,0), // colorStartA, colorStartB
|
|
1343
1347
|
* new Color(1,1,1,0), new Color(0,0,0,0), // colorEndA, colorEndB
|
|
1344
1348
|
* 2, .2, .2, .1, .05, // particleTime, sizeStart, sizeEnd, particleSpeed, particleAngleSpeed
|
|
1345
1349
|
* .99, 1, 1, PI, .05, // damping, angleDamping, gravityScale, particleCone, fadeRate,
|
|
@@ -1349,6 +1353,7 @@ declare class TileLayer extends EngineObject {
|
|
|
1349
1353
|
declare class ParticleEmitter extends EngineObject {
|
|
1350
1354
|
/** Create a particle system with the given settings
|
|
1351
1355
|
* @param {Vector2} position - World space position of the emitter
|
|
1356
|
+
* @param {Number} [angle=0] - Angle to rotate the object
|
|
1352
1357
|
* @param {Number} [emitSize=0] - World space size of the emitter (float for circle diameter, vec2 for rect)
|
|
1353
1358
|
* @param {Number} [emitTime=0] - How long to stay alive (0 is forever)
|
|
1354
1359
|
* @param {Number} [emitRate=100] - How many particles per second to spawn, does not emit if 0
|
|
@@ -1375,7 +1380,7 @@ declare class ParticleEmitter extends EngineObject {
|
|
|
1375
1380
|
* @param {Boolean} [randomColorLinear=1] - Should color be randomized linearly or across each component
|
|
1376
1381
|
* @param {Number} [renderOrder=0] - Render order for particles (additive is above other stuff by default)
|
|
1377
1382
|
*/
|
|
1378
|
-
constructor(pos: any, emitSize?: number, emitTime?: number, emitRate?: number, emitConeAngle?: number, tileIndex?: number, tileSize?: number, colorStartA?: Color, colorStartB?: Color, colorEndA?: Color, colorEndB?: Color, particleTime?: number, sizeStart?: number, sizeEnd?: number, speed?: number, angleSpeed?: number, damping?: number, angleDamping?: number, gravityScale?: number, particleConeAngle?: number, fadeRate?: number, randomness?: number, collideTiles?: boolean, additive?: boolean, randomColorLinear?: boolean, renderOrder?: number);
|
|
1383
|
+
constructor(pos: any, angle?: number, emitSize?: number, emitTime?: number, emitRate?: number, emitConeAngle?: number, tileIndex?: number, tileSize?: number, colorStartA?: Color, colorStartB?: Color, colorEndA?: Color, colorEndB?: Color, particleTime?: number, sizeStart?: number, sizeEnd?: number, speed?: number, angleSpeed?: number, damping?: number, angleDamping?: number, gravityScale?: number, particleConeAngle?: number, fadeRate?: number, randomness?: number, collideTiles?: boolean, additive?: boolean, randomColorLinear?: boolean, renderOrder?: number);
|
|
1379
1384
|
/** @property {Number} - World space size of the emitter (float for circle diameter, vec2 for rect) */
|
|
1380
1385
|
emitSize: number;
|
|
1381
1386
|
/** @property {Number} - How long to stay alive (0 is forever) */
|
|
@@ -1514,8 +1519,6 @@ declare class Newgrounds {
|
|
|
1514
1519
|
* @param {Number} id - The scoreboard id
|
|
1515
1520
|
* @param {Number} value - The score value */
|
|
1516
1521
|
postScore(id: number, value: number): any;
|
|
1517
|
-
/** Send message to log a view */
|
|
1518
|
-
logView(): any;
|
|
1519
1522
|
/** Get scores from a scoreboard
|
|
1520
1523
|
* @param {Number} id - The scoreboard id
|
|
1521
1524
|
* @param {String} [user=0] - A user's id or name
|
|
@@ -1525,6 +1528,8 @@ declare class Newgrounds {
|
|
|
1525
1528
|
* @return {Object} - The response JSON object
|
|
1526
1529
|
*/
|
|
1527
1530
|
getScores(id: number, user?: string, social?: number, skip?: number, limit?: number): any;
|
|
1531
|
+
/** Send message to log a view */
|
|
1532
|
+
logView(): any;
|
|
1528
1533
|
/** Send a message to call a component of the Newgrounds API
|
|
1529
1534
|
* @param {String} component - Name of the component
|
|
1530
1535
|
* @param {Object} [parameters=0] - Parameters to use for call
|
|
@@ -1583,7 +1588,7 @@ declare const gl_VERTEX_BYTE_STRIDE: number;
|
|
|
1583
1588
|
/** Name of engine */
|
|
1584
1589
|
declare const engineName: "LittleJS";
|
|
1585
1590
|
/** Version of engine */
|
|
1586
|
-
declare const engineVersion: "1.2.
|
|
1591
|
+
declare const engineVersion: "1.2.3";
|
|
1587
1592
|
/** Frames per second to update objects
|
|
1588
1593
|
* @default */
|
|
1589
1594
|
declare const frameRate: 60;
|
|
@@ -1609,4 +1614,4 @@ declare let tileImageFixBleed: any;
|
|
|
1609
1614
|
declare let averageFPS: any;
|
|
1610
1615
|
declare let drawCount: any;
|
|
1611
1616
|
declare const styleBody: string;
|
|
1612
|
-
declare const styleCanvas: "position:absolute";
|
|
1617
|
+
declare const styleCanvas: "position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)";
|
|
@@ -56,11 +56,11 @@ class Block extends EngineObject
|
|
|
56
56
|
const color1 = this.color;
|
|
57
57
|
const color2 = color1.lerp(new Color, .5);
|
|
58
58
|
new ParticleEmitter(
|
|
59
|
-
this.pos, this.size, .1, 200, PI,
|
|
59
|
+
this.pos, 0, this.size, .1, 200, PI, // pos, angle, emitSize, emitTime, emitRate, emiteCone
|
|
60
60
|
0, vec2(16), // tileIndex, tileSize
|
|
61
61
|
color1, color2, // colorStartA, colorStartB
|
|
62
62
|
color1.scale(1,0), color2.scale(1,0), // colorEndA, colorEndB
|
|
63
|
-
.2, 1, 1, .1, .05,
|
|
63
|
+
.2, 1, 1, .1, .05, // particleTime, sizeStart, sizeEnd, particleSpeed, particleAngleSpeed
|
|
64
64
|
.99, .95, .4, PI, .1, // damping, angleDamping, gravityScale, particleCone, fadeRate,
|
|
65
65
|
1, 0, 1 // randomness, collide, additive, randomColorLinear, renderOrder
|
|
66
66
|
);
|
|
@@ -5,6 +5,6 @@
|
|
|
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=game.js?
|
|
10
|
-
<script src=gameObjects.js?
|
|
8
|
+
<script src=../../engine/engine.all.js?102></script>
|
|
9
|
+
<script src=game.js?102></script>
|
|
10
|
+
<script src=gameObjects.js?102></script>
|
|
@@ -73,18 +73,18 @@ function gameRender()
|
|
|
73
73
|
function gameRenderPost()
|
|
74
74
|
{
|
|
75
75
|
// draw to overlay canvas for hud rendering
|
|
76
|
-
const drawText = (text, x, y, size=
|
|
76
|
+
const drawText = (text, x, y, size=50) =>
|
|
77
77
|
{
|
|
78
78
|
overlayContext.textAlign = 'center';
|
|
79
79
|
overlayContext.textBaseline = 'top';
|
|
80
80
|
overlayContext.font = size + 'px arial';
|
|
81
81
|
overlayContext.fillStyle = '#fff';
|
|
82
|
-
overlayContext.lineWidth =
|
|
82
|
+
overlayContext.lineWidth = 2;
|
|
83
83
|
overlayContext.strokeText(text, x, y);
|
|
84
84
|
overlayContext.fillText(text, x, y);
|
|
85
85
|
}
|
|
86
|
-
drawText('Score: ' + score, overlayCanvas.width*1/
|
|
87
|
-
drawText('Deaths: ' + deaths, overlayCanvas.width*
|
|
86
|
+
drawText('Score: ' + score, overlayCanvas.width*1/4, 20);
|
|
87
|
+
drawText('Deaths: ' + deaths, overlayCanvas.width*3/4, 20);
|
|
88
88
|
}
|
|
89
89
|
|
|
90
90
|
///////////////////////////////////////////////////////////////////////////////
|
|
@@ -39,7 +39,7 @@ function makeDebris(pos, color = new Color, amount = 100, size=.2, elasticity =
|
|
|
39
39
|
{
|
|
40
40
|
const color2 = color.lerp(new Color, .5);
|
|
41
41
|
const emitter = new ParticleEmitter(
|
|
42
|
-
pos, 1, .1, 100, PI, // pos, emitSize, emitTime, emitRate, emiteCone
|
|
42
|
+
pos, 0, 1, .1, 100, PI, // pos, angle, emitSize, emitTime, emitRate, emiteCone
|
|
43
43
|
undefined, undefined, // tileIndex, tileSize
|
|
44
44
|
color, color2, // colorStartA, colorStartB
|
|
45
45
|
color, color2, // colorEndA, colorEndB
|
|
@@ -100,7 +100,7 @@ function explosion(pos, radius=3)
|
|
|
100
100
|
|
|
101
101
|
// smoke
|
|
102
102
|
new ParticleEmitter(
|
|
103
|
-
pos, radius/2, .2, 50*radius, PI, // pos, emitSize, emitTime, emitRate, emiteCone
|
|
103
|
+
pos, 0, radius/2, .2, 50*radius, PI, // pos, angle, emitSize, emitTime, emitRate, emiteCone
|
|
104
104
|
0, undefined, // tileIndex, tileSize
|
|
105
105
|
new Color(0,0,0), new Color(0,0,0), // colorStartA, colorStartB
|
|
106
106
|
new Color(0,0,0,0), new Color(0,0,0,0), // colorEndA, colorEndB
|
|
@@ -111,7 +111,7 @@ function explosion(pos, radius=3)
|
|
|
111
111
|
|
|
112
112
|
// fire
|
|
113
113
|
new ParticleEmitter(
|
|
114
|
-
pos, radius/2, .1, 100*radius, PI, // pos, emitSize, emitTime, emitRate, emiteCone
|
|
114
|
+
pos, 0, radius/2, .1, 100*radius, PI, // pos, angle, emitSize, emitTime, emitRate, emiteCone
|
|
115
115
|
0, undefined, // tileIndex, tileSize
|
|
116
116
|
new Color(1,.5,.1), new Color(1,.1,.1), // colorStartA, colorStartB
|
|
117
117
|
new Color(1,.5,.1,0), new Color(1,.1,.1,0), // colorEndA, colorEndB
|
|
@@ -210,7 +210,7 @@ class Weapon extends EngineObject
|
|
|
210
210
|
|
|
211
211
|
// shell effect
|
|
212
212
|
this.addChild(this.shellEmitter = new ParticleEmitter(
|
|
213
|
-
vec2(), 0, 0, 0, .1, // pos, emitSize, emitTime, emitRate, emiteCone
|
|
213
|
+
vec2(), 0, 0, 0, 0, .1, // pos, angle, emitSize, emitTime, emitRate, emiteCone
|
|
214
214
|
undefined, undefined, // tileIndex, tileSize
|
|
215
215
|
new Color(1,.8,.5), new Color(.9,.7,.5), // colorStartA, colorStartB
|
|
216
216
|
new Color(1,.8,.5), new Color(.9,.7,.5), // colorEndA, colorEndB
|
|
@@ -321,7 +321,7 @@ class Bullet extends EngineObject
|
|
|
321
321
|
|
|
322
322
|
// spark effects
|
|
323
323
|
const emitter = new ParticleEmitter(
|
|
324
|
-
this.pos, 0, .1, 100, .5, // pos, emitSize, emitTime, emitRate, emiteCone
|
|
324
|
+
this.pos, 0, 0, .1, 100, .5, // pos, angle, emitSize, emitTime, emitRate, emiteCone
|
|
325
325
|
undefined, undefined, // tileIndex, tileSize
|
|
326
326
|
new Color(1,1,0), new Color(1,0,0), // colorStartA, colorStartB
|
|
327
327
|
new Color(1,1,0), new Color(1,0,0), // colorEndA, colorEndB
|
|
@@ -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?102></script>
|
|
9
|
+
<script src=gameObjects.js?102></script>
|
|
10
|
+
<script src=gamePlayer.js?102></script>
|
|
11
|
+
<script src=gameEffects.js?102></script>
|
|
12
|
+
<script src=gameLevel.js?102></script>
|
|
13
|
+
<script src=game.js?102></script>
|
package/examples/puzzle/game.js
CHANGED
|
@@ -284,7 +284,7 @@ function clearMatches()
|
|
|
284
284
|
const color1 = tileColors[data];
|
|
285
285
|
const color2 = color1.lerp(new Color, .5);
|
|
286
286
|
new ParticleEmitter(
|
|
287
|
-
pos.add(vec2(.5)), 1, .1, 100, PI
|
|
287
|
+
pos.add(vec2(.5)), 0, 1, .1, 100, PI,// pos, angle, emitSize, emitTime, emitRate, emiteCone
|
|
288
288
|
undefined, undefined, // tileIndex, tileSize
|
|
289
289
|
color1, color2, // colorStartA, colorStartB
|
|
290
290
|
color1.scale(1,0), color2.scale(1,0),// colorEndA, colorEndB
|
package/examples/screenshot.jpg
CHANGED
|
Binary file
|
|
@@ -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?102></script>
|
|
9
9
|
<script>
|
|
10
10
|
|
|
11
11
|
/*
|
|
@@ -54,7 +54,7 @@ function gameInit()
|
|
|
54
54
|
|
|
55
55
|
// display stats using a div so when using glOverlay it still appears on top
|
|
56
56
|
document.body.appendChild(statsDisplay = document.createElement('div'));
|
|
57
|
-
statsDisplay.style = 'position:absolute;width:100%;top:50%;left:50%;transform:translate(-50%,-50%);font-size:
|
|
57
|
+
statsDisplay.style = 'position:absolute;width:100%;top:50%;left:50%;transform:translate(-50%,-50%);font-size:6em;text-align:center;font-family:arial;user-select:none';
|
|
58
58
|
}
|
|
59
59
|
|
|
60
60
|
///////////////////////////////////////////////////////////////////////////////
|
package/game.js
CHANGED
|
@@ -57,12 +57,12 @@ function gameInit()
|
|
|
57
57
|
// create particle emitter
|
|
58
58
|
const center = tileCollisionSize.scale(.5).add(vec2(0,9));
|
|
59
59
|
particleEmiter = new ParticleEmitter(
|
|
60
|
-
center, 1, 0, 500, PI, // pos, emitSize, emitTime, emitRate, emiteCone
|
|
60
|
+
center, 0, 1, 0, 500, PI, // pos, angle, emitSize, emitTime, emitRate, emiteCone
|
|
61
61
|
0, vec2(16), // tileIndex, tileSize
|
|
62
|
-
new Color,
|
|
62
|
+
new Color(1,1,1), new Color(0,0,0), // colorStartA, colorStartB
|
|
63
63
|
new Color(1,1,1,0), new Color(0,0,0,0), // colorEndA, colorEndB
|
|
64
|
-
2, .2, .2, .1, .05,
|
|
65
|
-
.99, 1, 1, PI, .05,
|
|
64
|
+
2, .2, .2, .1, .05, // particleTime, sizeStart, sizeEnd, particleSpeed, particleAngleSpeed
|
|
65
|
+
.99, 1, 1, PI, .05, // damping, angleDamping, gravityScale, particleCone, fadeRate,
|
|
66
66
|
.5, 1, 1 // randomness, collide, additive, randomColorLinear, renderOrder
|
|
67
67
|
);
|
|
68
68
|
particleEmiter.elasticity = .3;
|
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?102></script>
|
|
10
|
+
<script src=engine/engineUtilities.js?102></script>
|
|
11
|
+
<script src=engine/engineSettings.js?102></script>
|
|
12
|
+
<script src=engine/engineObject.js?102></script>
|
|
13
|
+
<script src=engine/engineDraw.js?102></script>
|
|
14
|
+
<script src=engine/engineInput.js?102></script>
|
|
15
|
+
<script src=engine/engineAudio.js?102></script>
|
|
16
|
+
<script src=engine/engineTileLayer.js?102></script>
|
|
17
|
+
<script src=engine/engineParticles.js?102></script>
|
|
18
|
+
<script src=engine/engineMedals.js?102></script>
|
|
19
|
+
<script src=engine/engineWebGL.js?102></script>
|
|
20
|
+
<script src=engine/engine.js?102></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?102></script>
|