} ! loop window state = do threadDelay 20000 pollEvents (left, right, up, down) <- getInputKeys window let newState = movePlayer (left,right,up,down) state renderFrame newState window if k then return () else loop window newState
} ! loop window state = do threadDelay 20000 pollEvents (left, right, up, down) <- getInputKeys window let newState = movePlayer (left,right,up,down) state renderFrame newState window if k then return () else loop window newState
do buf <- createBuffer (File path) -- Generate a single source, attach the buffer to it and start playing. source <- genObjectName buffer source $= Just buf play [source] errs <- get alErrors unless (null errs) $ do hPutStrLn stderr (concat (intersperse "," [ d | ALError _ d <- errs ])) return ()
network <- start $ do state <- transfer initialState movePlayer directionKey return $ renderFrame <$> state ! ! network <- start $ do state <- transfer initialState movePlayer directionKey … return $ outputFunction <$> state <*> soundState !