0

プログラムの開始時に、ユーザーはシミュレーションにいくつかの「情報」を与えることができます。

    main:: IO()
        main = do
        putStrLn("Hallo")
        val <- getLine
        startGUI(read val ::Float)

関数 (startGUI) :

startGUI :: Float -> IO ()
startGUI si  = simulate window background fps initialState render $ moveBall si

シミュレーション用のある種のループである関数を開始します。それは基本的にゲームを更新します。

moveBall 関数は次のように定義されます。

moveBall :: Float -> Float -> PongGame -> PongGame
moveBall seconds go game = game { ballLoc = (x', y') }
...

私が得るエラーメッセージは次のとおりです。

Couldn't match type ‘PongGame’ with ‘PongGame -> PongGame’
    Expected type: ViewPort -> Float -> PongGame -> PongGame
      Actual type: Float -> PongGame -> PongGame
    Possible cause: ‘moveBall’ is applied to too many arguments
    In the second argument of ‘($)’, namely ‘moveBall si’
    In the expression:
      simulate window background fps initialState render $ moveBall si

startGUI 関数を指します。

前もって感謝します。

4

1 に答える 1

1

重要なのは、開始情報を渡すことです。initalState 関数を介してそれらを渡します。

startGUI :: Float -> IO ()
startGUI si  = simulate window background fps (initialState si) render  update

次に、ゲーム用にデータセットを構成する必要があります。

于 2016-08-31T19:34:51.990 に答える