Portability | non-portable |
---|---|
Stability | provisional |
Maintainer | Fumiaki Kinsohita <fumiexcel@gmail.com> |
Safe Haskell | None |
Abstract structures that represents user interfaces
- type Game = Free GameAction
- data GameAction cont
- = Tick cont
- | EmbedIO (IO cont)
- | Bracket (Game cont)
- | DrawPicture Picture cont
- | LoadPicture Bitmap (Picture -> cont)
- | AskInput Key (Bool -> cont)
- | GetMouseState (MouseState -> cont)
- data GameParam = GameParam {
- framePerSecond :: Int
- windowSize :: (Int, Int)
- windowTitle :: String
- windowed :: Bool
- data Picture
- transPicture :: (Picture -> Picture) -> GameAction cont -> GameAction cont
- defaultGameParam :: GameParam
- tick :: MonadFree GameAction m => m ()
- drawPicture :: MonadFree GameAction m => Picture -> m ()
- loadPicture :: MonadFree GameAction m => Bitmap -> m Picture
- askInput :: MonadFree GameAction m => Key -> m Bool
- getMouseState :: MonadFree GameAction m => m MouseState
- embedIO :: MonadFree GameAction m => IO a -> m a
- bracket :: MonadFree GameAction m => Game a -> m a
Documentation
type Game = Free GameActionSource
data GameAction cont Source
A base for Game
monad.
Tick cont | |
EmbedIO (IO cont) | |
Bracket (Game cont) | |
DrawPicture Picture cont | |
LoadPicture Bitmap (Picture -> cont) | |
AskInput Key (Bool -> cont) | |
GetMouseState (MouseState -> cont) |
Parameters of the application.
GameParam | |
|
A 2D Picture.
transPicture :: (Picture -> Picture) -> GameAction cont -> GameAction contSource
Lift a picture transformation into transformation of GameAction
defaultGameParam :: GameParamSource
640*480(windowed), 60fps
tick :: MonadFree GameAction m => m ()Source
Finalize the current frame and refresh the screen.
drawPicture :: MonadFree GameAction m => Picture -> m ()Source
Draw a Picture
.
loadPicture :: MonadFree GameAction m => Bitmap -> m PictureSource
getMouseState :: MonadFree GameAction m => m MouseStateSource
Get the mouse's state.
bracket :: MonadFree GameAction m => Game a -> m aSource
Run a Game monad in a Game monad. resources (e.g. pictures) will be released when inner computation is done.