1
-- | Main function
main :: IO ()
main = do 
          wall <- loadBMP "wall.bmp" -- loads wall image
          play initialState drawState reactEvent reactTime


-- | Function that creates the game
play :: State -> (State -> Picture) -> (Event -> State -> State) -> (Float -> State -> State) -> IO ()
play initialState drawState reactEvent reactTime = play
            (InWindow "Game" (900, 900) (0, 0))      -- Window ize
            (greyN 0.5)                              -- background coloer
            1                                        -- refresh rate
            initialState                             -- initial state
            drawState                                -- draws game state
            reactEvent                               -- teacts to evente
            reactTime                                -- reacts to time

-- | One game represenction
type State = (Map,Picture)

-- | Initial game state
initialState :: State
initialState = ((map 13 0),wall)

関数マップは私のマップを作成します。私のゲームは既に正常に実行されていますが、使用した表現 (グロスの円) をいくつかの BMP 画像に置き換える必要がありますが、この壁を読み込もうとすると、最後の行にエラーが表示される原因が 1 つでも読み込めません。私はここで共有しました:スコープ「壁」ではありません

誰かがなぜこれが起こっているのか分かりますか?

4

1 に答える 1

2

を定義するmainと、そこで作成する変数は、 の定義の外ではアクセスできませんmaininitialStateの定義外ですmain

次のように変更wallして渡す必要があります。initialStatemaininitialState

main :: IO ()
main = do 
          wall <- loadBMP "wall.bmp" -- loads wall image
          play (initialState wall) drawState reactEvent reactTime

 

initialState :: Picture -> State
initialState wall = ((map 13 0),wall)
于 2016-12-30T06:07:31.633 に答える