3

画面上にランダムな線を描く必要があるゲームを作っています。Random が 0.13 で動作するにはシグナルが必要なようです (そして、0.13 で動作することを余儀なくされています)。では、これらの乱数を取得するにはどうすればよいですか?

elm-lang Web サイトで提供されているゲームのスケルトンから始めて、次のようになりました。

type UserInput = { space : Bool, keys : [KeyCode] }
type Input = { timeDelta : Float, userInput : UserInput }

userInput : Signal UserInput
userInput = lift2 UserInput Keyboard.space Keyboard.keysDown

framesPerSecond = 30

delta : Signal Float
delta = lift (\t -> t / framesPerSecond) (Time.fps framesPerSecond)

input : Signal Input
input = Signal.sampleOn delta (Signal.lift2 Input delta userInput)

gameState : Signal GameState
gameState = Signal.foldp stepGame defaultGame input

stepGame : Input -> GameState -> GameState
stepGame i g =
  if g.state == Start then *Get random floats*

stepGame で、ランダムな線を描きたいと思います。問題は、 0.13 でシグナルを提供することによってのみランダムなフロートを取得できることです。ステップ関数の近くに入力信号がありますが、ヘッダーを変更すると、 stepGame : Signal Input -> GameState -> GameStateコンパイルされません。では、乱数を取得するためにその関数で信号を取得するにはどうすればよいですか...解決策を見つけることができないようです。それは私を夢中にさせています。

4

1 に答える 1