extra-game-loop 0.3.7 → 0.3.9
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/lib/game-loop-lite.js +5 -3
- package/lib/game-loop-lite.js.map +1 -1
- package/lib/game-loop.js +5 -3
- package/lib/game-loop.js.map +1 -1
- package/package.json +1 -1
- package/src/game-loop-lite.ts +6 -3
- package/src/game-loop.ts +6 -3
package/lib/game-loop-lite.js
CHANGED
|
@@ -20,7 +20,9 @@ class GameLoopLite {
|
|
|
20
20
|
this.lastDeltaTime = deltaTime;
|
|
21
21
|
this.lastTimestamp = timestamp;
|
|
22
22
|
this.nextFrame(deltaTime);
|
|
23
|
-
|
|
23
|
+
if (this.fsm.matches(State.Running)) {
|
|
24
|
+
this.requstId = requestAnimationFrame(this.loop);
|
|
25
|
+
}
|
|
24
26
|
};
|
|
25
27
|
this.update = options.update;
|
|
26
28
|
this.render = options.render;
|
|
@@ -34,8 +36,8 @@ class GameLoopLite {
|
|
|
34
36
|
stop() {
|
|
35
37
|
this.fsm.send('stop');
|
|
36
38
|
cancelAnimationFrame(this.requstId);
|
|
37
|
-
|
|
38
|
-
|
|
39
|
+
this.requstId = undefined;
|
|
40
|
+
this.lastTimestamp = undefined;
|
|
39
41
|
this.lastDeltaTime = 0;
|
|
40
42
|
}
|
|
41
43
|
getFramesOfSecond() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"game-loop-lite.js","sourceRoot":"","sources":["../src/game-loop-lite.ts"],"names":[],"mappings":";;;AAAA,yCAAyE;AAczE,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,YAAY;IAQvB,YAAY,OAA6B;QAPxB,QAAG,GAAG,IAAI,8BAAkB,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;QAK5D,kBAAa,GAAG,CAAC,CAAA;QAmCjB,SAAI,GAAG,CAAC,SAAiB,EAAQ,EAAE;YAGzC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,aAAc,EAAE,CAAC,CAAC,CAAA;YAE9D,IAAI,CAAC,aAAa,GAAG,SAAS,CAAA;YAC9B,IAAI,CAAC,aAAa,GAAG,SAAS,CAAA;YAE9B,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"game-loop-lite.js","sourceRoot":"","sources":["../src/game-loop-lite.ts"],"names":[],"mappings":";;;AAAA,yCAAyE;AAczE,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,YAAY;IAQvB,YAAY,OAA6B;QAPxB,QAAG,GAAG,IAAI,8BAAkB,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;QAK5D,kBAAa,GAAG,CAAC,CAAA;QAmCjB,SAAI,GAAG,CAAC,SAAiB,EAAQ,EAAE;YAGzC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,aAAc,EAAE,CAAC,CAAC,CAAA;YAE9D,IAAI,CAAC,aAAa,GAAG,SAAS,CAAA;YAC9B,IAAI,CAAC,aAAa,GAAG,SAAS,CAAA;YAE9B,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;YAGzB,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;gBACnC,IAAI,CAAC,QAAQ,GAAG,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;aACjD;QACH,CAAC,CAAA;QA9CC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAA;QAC5B,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAA;IAC9B,CAAC;IAED,KAAK;QACH,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAEtB,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAA;QACnC,IAAI,CAAC,aAAa,GAAG,SAAS,CAAA;QAC9B,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IACtB,CAAC;IAED,IAAI;QACF,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAErB,oBAAoB,CAAC,IAAI,CAAC,QAAS,CAAC,CAAA;QAEpC,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAA;QACzB,IAAI,CAAC,aAAa,GAAG,SAAS,CAAA;QAC9B,IAAI,CAAC,aAAa,GAAG,CAAC,CAAA;IACxB,CAAC;IAED,iBAAiB;QACf,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;YACnC,OAAO,IAAI,CAAC,aAAa,KAAK,CAAC;gBAC1B,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,aAAa;gBAC3B,CAAC,CAAC,CAAC,CAAA;SACT;aAAM;YACL,OAAO,CAAC,CAAA;SACT;IACH,CAAC;IAkBD,SAAS,CAAC,SAAiB;;QACzB,MAAA,IAAI,CAAC,MAAM,qDAAG,SAAS,CAAC,CAAA;QAExB,MAAA,IAAI,CAAC,MAAM,oDAAI,CAAA;IACjB,CAAC;CACF;AA9DD,oCA8DC"}
|
package/lib/game-loop.js
CHANGED
|
@@ -22,7 +22,9 @@ class GameLoop {
|
|
|
22
22
|
this.lastDeltaTime = deltaTime;
|
|
23
23
|
this.lastTimestamp = timestamp;
|
|
24
24
|
this.nextFrame(deltaTime);
|
|
25
|
-
|
|
25
|
+
if (this.fsm.matches(State.Running)) {
|
|
26
|
+
this.requstId = requestAnimationFrame(this.loop);
|
|
27
|
+
}
|
|
26
28
|
};
|
|
27
29
|
this.fixedDeltaTime = options.fixedDeltaTime;
|
|
28
30
|
this.maximumDeltaTime = options.maximumDeltaTime;
|
|
@@ -41,8 +43,8 @@ class GameLoop {
|
|
|
41
43
|
stop() {
|
|
42
44
|
this.fsm.send('stop');
|
|
43
45
|
cancelAnimationFrame(this.requstId);
|
|
44
|
-
|
|
45
|
-
|
|
46
|
+
this.requstId = undefined;
|
|
47
|
+
this.lastTimestamp = undefined;
|
|
46
48
|
this.lastDeltaTime = 0;
|
|
47
49
|
}
|
|
48
50
|
getFramesOfSecond() {
|
package/lib/game-loop.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"game-loop.js","sourceRoot":"","sources":["../src/game-loop.ts"],"names":[],"mappings":";;;AAAA,yCAAyE;AACzE,iDAA4C;AAwC5C,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;IAanB,YAAY,OAAyC;QAZpC,QAAG,GAAG,IAAI,8BAAkB,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;QAS5D,yBAAoB,GAAG,CAAC,CAAA;QACxB,kBAAa,GAAG,CAAC,CAAA;QA4CjB,SAAI,GAAG,CAAC,SAAiB,EAAQ,EAAE;YAGzC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,aAAc,EAAE,CAAC,CAAC,CAAA;YAE9D,IAAI,CAAC,aAAa,GAAG,SAAS,CAAA;YAC9B,IAAI,CAAC,aAAa,GAAG,SAAS,CAAA;YAE9B,IAAI,CAAC,SAAS,CAAC,SAAS,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
package/src/game-loop-lite.ts
CHANGED
|
@@ -52,8 +52,8 @@ export class GameLoopLite {
|
|
|
52
52
|
|
|
53
53
|
cancelAnimationFrame(this.requstId!)
|
|
54
54
|
|
|
55
|
-
|
|
56
|
-
|
|
55
|
+
this.requstId = undefined
|
|
56
|
+
this.lastTimestamp = undefined
|
|
57
57
|
this.lastDeltaTime = 0
|
|
58
58
|
}
|
|
59
59
|
|
|
@@ -77,7 +77,10 @@ export class GameLoopLite {
|
|
|
77
77
|
|
|
78
78
|
this.nextFrame(deltaTime)
|
|
79
79
|
|
|
80
|
-
|
|
80
|
+
// 在`nextFrame()`期间游戏循环可能被停止, 因此需要检查游戏循环的状态.
|
|
81
|
+
if (this.fsm.matches(State.Running)) {
|
|
82
|
+
this.requstId = requestAnimationFrame(this.loop)
|
|
83
|
+
}
|
|
81
84
|
}
|
|
82
85
|
|
|
83
86
|
nextFrame(deltaTime: number): void {
|
package/src/game-loop.ts
CHANGED
|
@@ -93,8 +93,8 @@ export class GameLoop<FixedDeltaTime extends number> {
|
|
|
93
93
|
|
|
94
94
|
cancelAnimationFrame(this.requstId!)
|
|
95
95
|
|
|
96
|
-
|
|
97
|
-
|
|
96
|
+
this.requstId = undefined
|
|
97
|
+
this.lastTimestamp = undefined
|
|
98
98
|
this.lastDeltaTime = 0
|
|
99
99
|
}
|
|
100
100
|
|
|
@@ -118,7 +118,10 @@ export class GameLoop<FixedDeltaTime extends number> {
|
|
|
118
118
|
|
|
119
119
|
this.nextFrame(deltaTime)
|
|
120
120
|
|
|
121
|
-
|
|
121
|
+
// 在`nextFrame()`期间游戏循环可能被停止, 因此需要检查游戏循环的状态.
|
|
122
|
+
if (this.fsm.matches(State.Running)) {
|
|
123
|
+
this.requstId = requestAnimationFrame(this.loop)
|
|
124
|
+
}
|
|
122
125
|
}
|
|
123
126
|
|
|
124
127
|
/**
|