将Observable转换为Observable,在执行动画后发出

时间:2015-01-11 11:46:39

标签: scala rx-java

我正在使用RxScala构建游戏。我希望在用户死亡时制作动画,之后我想将用户返回到游戏的开始位置。

我有一个热的Observable positionObservable,每次用户移动时都会发出用户的位置。 要找出用户何时死亡,我可以使用以下代码:

positionObservable.filter(isDead)

使用函数die(points)我可以启动动画让用户死掉。此函数返回一个新的Observable,它在动画完成时发出。 我在考虑将这两个链接到:

val gameLostObservable = positionObservable.filter(isDead).flatMap(points =>die(points))

但是当没有订阅者时,die函数将永远不会运行,并且当有多个订阅者时,它将运行多次。我还读到不鼓励在变压器功能中做副作用。

将原始positionObservable转换为在动画完成时发出的新Observable的最佳方法是什么?

0 个答案:

没有答案