私が開発している 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
) は、変更されたゲーム状態ではなく、最初のゲームを使用し続けます。
これに対する解決策を見つけるためにインターネット全体を検索しましたが、この方向には何も見つかりませんでした。(モデルにコントロールを含めることによって) 私が試みていた方法でそれを行う方法はありますか、またはコントロール自体に信号を送ることによってモデルからコントロールを解放する必要がありますか?