Haskell gloss loading.bmp ——|主要功能 main::IO() main=do 墙(状态->图片)->(事件->状态->状态)->(浮动->状态->状态)->IO() 播放初始状态drawState reactEvent reactTime=播放 (InWindow“游戏”(900900)(0,0))--窗口化 (格雷恩0.5)——背景色 1--刷新率 初始状态——初始状态 drawState——绘制游戏状态 reactEvent——对事件进行指示 反应时间——对时间作出反应 --|一局代表 类型状态=(映射、图片) --|初始博弈状态 initialState::State initialState=((地图13 0),墙)
函数映射创建我的映射。 我的游戏已经运行良好,但我需要用一些BMP图像替换我使用的表示(来自光泽的圆圈),但我甚至无法加载一个原因当我尝试加载此墙时,我在此处共享的最后一行中出现错误: 不在“墙”的范围内Haskell gloss loading.bmp ——|主要功能 main::IO() main=do 墙(状态->图片)->(事件->状态->状态)->(浮动->状态->状态)->IO() 播放初始状态drawState reactEvent reactTime=播放 (InWindow“游戏”(900900)(0,0))--窗口化 (格雷恩0.5)——背景色 1--刷新率 初始状态——初始状态 drawState——绘制游戏状态 reactEvent——对事件进行指示 反应时间——对时间作出反应 --|一局代表 类型状态=(映射、图片) --|初始博弈状态 initialState::State initialState=((地图13 0),墙),haskell,gloss,Haskell,Gloss,函数映射创建我的映射。 我的游戏已经运行良好,但我需要用一些BMP图像替换我使用的表示(来自光泽的圆圈),但我甚至无法加载一个原因当我尝试加载此墙时,我在此处共享的最后一行中出现错误: 不在“墙”的范围内 有人知道为什么会发生这种情况吗?当您定义main时,您在那里创建的变量在main的定义之外是无法访问的初始状态不在main的定义范围内 您需要通过如下更改main和initialState将wall传递到initialState: -- | Main function main :: IO (
有人知道为什么会发生这种情况吗?当您定义
main
时,您在那里创建的变量在main
的定义之外是无法访问的<代码>初始状态不在main
的定义范围内
您需要通过如下更改main
和initialState
将wall
传递到initialState
:
-- | 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)
谢谢你,我会试试这个,告诉你是怎么回事。
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)