如何使用RxJS创建游戏循环

时间:2017-01-19 21:36:56

标签: javascript rxjs

我不熟悉RxJS的反应式编程,并希望构建一个简单的游戏,以此来掌握图书馆。

仔细阅读文档后,我没有看到一个明确的例子,说明如何使用Observables实现游戏循环(见下文)。

有人可以提供解决方案,或者如果不是合适的用例,可以解释原因。

function gameLoop() {
    // emit tick event

    window.requestAnimationFrame(gameLoop);
}

window.requestAnimationFrame(gameLoop);

2 个答案:

答案 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();