我不熟悉RxJS的反应式编程,并希望构建一个简单的游戏,以此来掌握图书馆。
仔细阅读文档后,我没有看到一个明确的例子,说明如何使用Observables实现游戏循环(见下文)。
有人可以提供解决方案,或者如果不是合适的用例,可以解释原因。
function gameLoop() {
// emit tick event
window.requestAnimationFrame(gameLoop);
}
window.requestAnimationFrame(gameLoop);
答案 0 :(得分:1)
也许是这样的事情?
import { Observable } from "rxjs/Observable";
import { Scheduler } from "rxjs/Scheduler";
import "rxjs/add/observable/of";
import "rxjs/add/operator/do";
import "rxjs/add/operator/repeat";
Observable
.of(null, Scheduler.animationFrame)
.do(() => {})
.repeat()
.subscribe();
答案 1 :(得分:1)
从RxJs> = 5.5开始,您可以通过以下方式进行操作:
import { animationFrameScheduler, of } from 'rxjs';
import { repeat, tap } from 'rxjs/operators';
of(null, animationFrameScheduler)
.pipe(
tap(() => {
gameLoop()
}),
repeat(),
)
.subscribe();