Portability | non-portable |
---|---|
Stability | experimental |
Maintainer | Fumiaki Kinsohita <fumiexcel@gmail.com> |
Safe Haskell | None |
Abstract structures that represents user interfaces
- type Game = Free GameAction
- data GameAction a
- = Tick a
- | EmbedIO (IO a)
- | Bracket (Game a)
- | DrawPicture Picture a
- | AskInput Key (Bool -> a)
- | GetMouseState (MouseState -> a)
- | QuitGame
- tick :: MonadFree GameAction m => m ()
- embedIO :: MonadFree GameAction m => IO a -> m a
- bracket :: MonadFree GameAction m => Game a -> m a
- quitGame :: MonadFree GameAction m => m a
- data Vec2 = Vec2 !Float !Float
- data Picture
- transPicture :: (Picture -> Picture) -> GameAction cont -> GameAction cont
- drawPicture :: MonadFree GameAction m => Picture -> m ()
- askInput :: MonadFree GameAction m => Key -> m Bool
- getMouseState :: MonadFree GameAction m => m MouseState
- data GameParam = GameParam {
- framePerSecond :: Int
- windowSize :: (Int, Int)
- windowTitle :: String
- windowed :: Bool
- defaultGameParam :: GameParam
- loadPicture :: MonadFree GameAction m => Bitmap -> m Picture
Types
data GameAction a Source
A base for Game
monad.
Tick a | |
EmbedIO (IO a) | |
Bracket (Game a) | |
DrawPicture Picture a | |
AskInput Key (Bool -> a) | |
GetMouseState (MouseState -> a) | |
QuitGame |
Basic operations
tick :: MonadFree GameAction m => m ()Source
Finalize the current frame and refresh the screen.
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.
quitGame :: MonadFree GameAction m => m aSource
Break the current computation.
Pictures
data Vec2
A 2D Picture.
BitmapPicture Bitmap | |
Pictures [Picture] | A picture consist of some |
IOPicture (IO Picture) | A picture that may have side effects. |
Rotate Float Picture | Rotated picture by the given angle (in degrees, counterclockwise). |
Scale Vec2 Picture | Scaled picture. |
Translate Vec2 Picture | A picture translated by the given coordinate. |
Colored Color Picture | Colored picture. |
transPicture :: (Picture -> Picture) -> GameAction cont -> GameAction contSource
Lift a picture transformation into transformation of GameAction
drawPicture :: MonadFree GameAction m => Picture -> m ()Source
Draw a Picture
.
Inputs
getMouseState :: MonadFree GameAction m => m MouseStateSource
Get the mouse's state.
Settings
Parameters of the application.
GameParam | |
|
defaultGameParam :: GameParamSource
640*480(windowed), 60fps
Deprecated
loadPicture :: MonadFree GameAction m => Bitmap -> m PictureSource