我正在制作一个需要在屏幕上绘制随机线条的游戏。现在看来 Random 需要一个信号才能在 0.13 中工作(我们被迫在 0.13 中工作)。那么如何获得这些随机数呢?
我从 elm-lang 网站上提供的游戏骨架开始,得到了这个:
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 中提供信号来获得随机浮点数。我在 step 函数附近有输入信号,但是当我将标题更改为
stepGame : Signal Input -> GameState -> GameState
让它无法编译时。那么如何在该函数中获取信号以获取一些随机数...我似乎找不到解决方案,这让我发疯。