【发布时间】:2014-12-20 16:30:57
【问题描述】:
对于我正在开发的 Elm (0.13) 游戏,我希望有可重新配置的输入。我为此得到的模型的简化版本是
type Controls = {
up: KeyCode,
down: KeyCode,
left: KeyCode,
right: KeyCode
}
type Player = {
...
controls: Controls,
...
}
type Game = {
state: State,
players: [Player]
}
对于游戏循环,我使用标准的foldp 构造,我希望输入依赖于游戏的当前状态。到目前为止,我尝试了以下方法:
gameState =
let
initialGame = (newGame initialActive)
in
foldp update initialGame (input initialGame)
当然,输入信号生成函数 (input : Game -> Signal Input) 继续使用初始游戏,而不是更改后的游戏状态。
我已经在整个互联网上进行了搜索以找到解决此问题的方法,但我在这个方向上找不到任何东西。有没有办法按照我尝试的方式来做(通过在模型中包含控件),还是我必须通过让控件自己发出信号来从模型中释放控件?
【问题讨论】:
-
小注:编程语言的大小写为elm或Elm。 IIRC 这已在邮件列表中讨论过,但我目前找不到来源。
-
@Apanatshka 不过问题已经解决了,我还是会更新它;-)。