extra-game-loop 0.1.2 → 0.1.4
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 +2 -2
- package/dist/es2015/index.min.mjs +1 -1
- package/dist/es2015/index.min.mjs.map +1 -1
- package/dist/es2015/index.mjs +178 -145
- package/dist/es2015/index.mjs.map +1 -1
- package/dist/es2015/index.umd.js +178 -145
- package/dist/es2015/index.umd.js.map +1 -1
- package/dist/es2015/index.umd.min.js +1 -1
- package/dist/es2015/index.umd.min.js.map +1 -1
- package/dist/es2018/index.min.mjs +1 -1
- package/dist/es2018/index.min.mjs.map +1 -1
- package/dist/es2018/index.mjs +178 -145
- package/dist/es2018/index.mjs.map +1 -1
- package/dist/es2018/index.umd.js +178 -145
- package/dist/es2018/index.umd.js.map +1 -1
- package/dist/es2018/index.umd.min.js +1 -1
- package/dist/es2018/index.umd.min.js.map +1 -1
- package/lib/es2015/game-loop.d.ts +1 -1
- package/lib/es2015/game-loop.js +6 -5
- package/lib/es2015/game-loop.js.map +1 -1
- package/lib/es2018/game-loop.d.ts +1 -1
- package/lib/es2018/game-loop.js +6 -5
- package/lib/es2018/game-loop.js.map +1 -1
- package/package.json +11 -11
|
@@ -3,7 +3,7 @@ interface IGameLoopOptions<FixedDeltaTime extends number> {
|
|
|
3
3
|
maximumDeltaTime: number;
|
|
4
4
|
fixedUpdate: (deltaTime: FixedDeltaTime) => void;
|
|
5
5
|
update: (deltaTime: number) => void;
|
|
6
|
-
render: () => void;
|
|
6
|
+
render: (alpha: number) => void;
|
|
7
7
|
}
|
|
8
8
|
export declare class GameLoop<FixedDeltaTime extends number> {
|
|
9
9
|
private readonly fsm;
|
package/lib/es2015/game-loop.js
CHANGED
|
@@ -17,7 +17,8 @@ class GameLoop {
|
|
|
17
17
|
this.fsm = new structures_1.FiniteStateMachine(schema, State.Stopped);
|
|
18
18
|
this.deltaTimeAccumulator = 0;
|
|
19
19
|
this.lastDeltaTime = 0;
|
|
20
|
-
this.loop = (
|
|
20
|
+
this.loop = () => {
|
|
21
|
+
const timestamp = performance.now();
|
|
21
22
|
const deltaTime = timestamp - this.lastTimestamp;
|
|
22
23
|
this.lastDeltaTime = deltaTime;
|
|
23
24
|
this.lastTimestamp = timestamp;
|
|
@@ -33,9 +34,8 @@ class GameLoop {
|
|
|
33
34
|
}
|
|
34
35
|
start() {
|
|
35
36
|
this.fsm.send('start');
|
|
36
|
-
|
|
37
|
-
this.
|
|
38
|
-
this.loop(timestamp);
|
|
37
|
+
this.lastTimestamp = performance.now();
|
|
38
|
+
this.loop();
|
|
39
39
|
}
|
|
40
40
|
stop() {
|
|
41
41
|
this.fsm.send('stop');
|
|
@@ -61,7 +61,8 @@ class GameLoop {
|
|
|
61
61
|
this.deltaTimeAccumulator -= this.fixedDeltaTime;
|
|
62
62
|
}
|
|
63
63
|
this.update(deltaTime);
|
|
64
|
-
this.
|
|
64
|
+
const alpha = this.deltaTimeAccumulator / this.fixedDeltaTime;
|
|
65
|
+
this.render(alpha);
|
|
65
66
|
}
|
|
66
67
|
}
|
|
67
68
|
exports.GameLoop = GameLoop;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"game-loop.js","sourceRoot":"","sources":["../../src/game-loop.ts"],"names":[],"mappings":";;;AAAA,uDAAsF;AACtF,iDAA4C;AAkC5C,IAAK,KAGJ;AAHD,WAAK,KAAK;IACR,4BAAmB,CAAA;IACnB,4BAAmB,CAAA;AACrB,CAAC,EAHI,KAAK,KAAL,KAAK,QAGT;AAMD,MAAM,MAAM,GAA4C;IACtD,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE;IACzC,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE;CACzC,CAAA;AAED,MAAa,QAAQ;IAYnB,YAAY,OAAyC;QAXpC,QAAG,GAAG,IAAI,+BAAkB,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;QAQ5D,yBAAoB,GAAG,CAAC,CAAA;QACxB,kBAAa,GAAG,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"game-loop.js","sourceRoot":"","sources":["../../src/game-loop.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ interface IGameLoopOptions<FixedDeltaTime extends number> {
|
|
|
3
3
|
maximumDeltaTime: number;
|
|
4
4
|
fixedUpdate: (deltaTime: FixedDeltaTime) => void;
|
|
5
5
|
update: (deltaTime: number) => void;
|
|
6
|
-
render: () => void;
|
|
6
|
+
render: (alpha: number) => void;
|
|
7
7
|
}
|
|
8
8
|
export declare class GameLoop<FixedDeltaTime extends number> {
|
|
9
9
|
private readonly fsm;
|
package/lib/es2018/game-loop.js
CHANGED
|
@@ -17,7 +17,8 @@ class GameLoop {
|
|
|
17
17
|
this.fsm = new structures_1.FiniteStateMachine(schema, State.Stopped);
|
|
18
18
|
this.deltaTimeAccumulator = 0;
|
|
19
19
|
this.lastDeltaTime = 0;
|
|
20
|
-
this.loop = (
|
|
20
|
+
this.loop = () => {
|
|
21
|
+
const timestamp = performance.now();
|
|
21
22
|
const deltaTime = timestamp - this.lastTimestamp;
|
|
22
23
|
this.lastDeltaTime = deltaTime;
|
|
23
24
|
this.lastTimestamp = timestamp;
|
|
@@ -33,9 +34,8 @@ class GameLoop {
|
|
|
33
34
|
}
|
|
34
35
|
start() {
|
|
35
36
|
this.fsm.send('start');
|
|
36
|
-
|
|
37
|
-
this.
|
|
38
|
-
this.loop(timestamp);
|
|
37
|
+
this.lastTimestamp = performance.now();
|
|
38
|
+
this.loop();
|
|
39
39
|
}
|
|
40
40
|
stop() {
|
|
41
41
|
this.fsm.send('stop');
|
|
@@ -61,7 +61,8 @@ class GameLoop {
|
|
|
61
61
|
this.deltaTimeAccumulator -= this.fixedDeltaTime;
|
|
62
62
|
}
|
|
63
63
|
this.update(deltaTime);
|
|
64
|
-
this.
|
|
64
|
+
const alpha = this.deltaTimeAccumulator / this.fixedDeltaTime;
|
|
65
|
+
this.render(alpha);
|
|
65
66
|
}
|
|
66
67
|
}
|
|
67
68
|
exports.GameLoop = GameLoop;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"game-loop.js","sourceRoot":"","sources":["../../src/game-loop.ts"],"names":[],"mappings":";;;AAAA,uDAAsF;AACtF,iDAA4C;AAkC5C,IAAK,KAGJ;AAHD,WAAK,KAAK;IACR,4BAAmB,CAAA;IACnB,4BAAmB,CAAA;AACrB,CAAC,EAHI,KAAK,KAAL,KAAK,QAGT;AAMD,MAAM,MAAM,GAA4C;IACtD,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE;IACzC,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE;CACzC,CAAA;AAED,MAAa,QAAQ;IAYnB,YAAY,OAAyC;QAXpC,QAAG,GAAG,IAAI,+BAAkB,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;QAQ5D,yBAAoB,GAAG,CAAC,CAAA;QACxB,kBAAa,GAAG,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"game-loop.js","sourceRoot":"","sources":["../../src/game-loop.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "extra-game-loop",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.4",
|
|
4
4
|
"description": "",
|
|
5
5
|
"keywords": [],
|
|
6
6
|
"files": [
|
|
@@ -40,24 +40,24 @@
|
|
|
40
40
|
},
|
|
41
41
|
"devDependencies": {
|
|
42
42
|
"@blackglory/jest-matchers": "^0.3.1",
|
|
43
|
-
"@commitlint/cli": "^17.
|
|
44
|
-
"@commitlint/config-conventional": "^17.0
|
|
43
|
+
"@commitlint/cli": "^17.1.2",
|
|
44
|
+
"@commitlint/config-conventional": "^17.1.0",
|
|
45
45
|
"@rollup/plugin-commonjs": "^22.0.2",
|
|
46
46
|
"@rollup/plugin-json": "^4.1.0",
|
|
47
|
-
"@rollup/plugin-node-resolve": "^
|
|
47
|
+
"@rollup/plugin-node-resolve": "^14.1.0",
|
|
48
48
|
"@rollup/plugin-replace": "^4.0.0",
|
|
49
|
-
"@rollup/plugin-typescript": "^8.
|
|
49
|
+
"@rollup/plugin-typescript": "^8.5.0",
|
|
50
50
|
"@types/jest": "^27.4.1",
|
|
51
|
-
"@typescript-eslint/eslint-plugin": "^5.
|
|
52
|
-
"@typescript-eslint/parser": "^5.
|
|
53
|
-
"eslint": "^8.
|
|
54
|
-
"extra-promise": "^3.
|
|
51
|
+
"@typescript-eslint/eslint-plugin": "^5.37.0",
|
|
52
|
+
"@typescript-eslint/parser": "^5.37.0",
|
|
53
|
+
"eslint": "^8.23.1",
|
|
54
|
+
"extra-promise": "^3.2.2",
|
|
55
55
|
"extra-timers": "^0.2.5",
|
|
56
56
|
"husky": "^4.3.8",
|
|
57
57
|
"jest": "^27.5.1",
|
|
58
58
|
"npm-run-all": "^4.1.5",
|
|
59
59
|
"rimraf": "^3.0.2",
|
|
60
|
-
"rollup": "^2.
|
|
60
|
+
"rollup": "^2.79.0",
|
|
61
61
|
"rollup-plugin-analyzer": "^4.0.0",
|
|
62
62
|
"rollup-plugin-terser": "^7.0.2",
|
|
63
63
|
"standard-version": "^9.5.0",
|
|
@@ -67,7 +67,7 @@
|
|
|
67
67
|
"typescript": "^4.8.2"
|
|
68
68
|
},
|
|
69
69
|
"dependencies": {
|
|
70
|
-
"@blackglory/prelude": "^0.1.
|
|
70
|
+
"@blackglory/prelude": "^0.1.5",
|
|
71
71
|
"@blackglory/structures": "^0.10.14"
|
|
72
72
|
}
|
|
73
73
|
}
|