gpt4 book ai didi

haskell - 使用 reactive-banana 实现游戏状态

转载 作者:行者123 更新时间:2023-12-02 03:21:24 24 4
gpt4 key购买 nike

在我的突破实现中,有两个主要行为描述了游戏的主要状态:

paddlePosition :: Behavior t Point
ballPosition :: Behavior t Point

两者都是根据 tickEvent::Event t () 实现的,它离散地更新它们。

gameOverEvent::Event t() 过滤掉球所在的所有滴答事件位置在屏幕下方。

我想尽快用新行为替换 paddlePosition是一个 gameOverEvent,在伪代码中将 Racket 留在原地:

newPaddlePosition = \t -> case gameOverEvent of
[] -> paddlePosition t
((t',()) : _) -> paddlePosition t'

第一个问题是:如何使用 newPaddlePosition 表达 active 香蕉?

第二个问题有点模糊:What is a good way to organize the整个程序取决于游戏是否结束?还有其他考虑因素,例如:如何处理 ballPosition,如何绘制游戏等等上。

最佳答案

您可能正在寻找动态事件切换,尤其是 switchB 组合器。

另见 this question .

请注意,newPaddlePosition 函数的伪代码没有多大意义:它表示当 gameOverEvent 从未发生时,新的桨位置等于 paddlePosition,否则它是常数,等于事件发生时 paddlePosition 的值。这在因果 FRP 库中是不可能表达的。你可能指的是别的意思。

关于haskell - 使用 reactive-banana 实现游戏状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33107871/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com