free-game-1.1.79: Create games for free

Copyright(C) 2013 Fumiaki Kinoshita
LicenseBSD-style (see the file LICENSE)
MaintainerFumiaki Kinoshita <fumiexcel@gmail.com>
Stabilityprovisional
Portabilitynon-portable
Safe HaskellNone
LanguageHaskell2010

FreeGame.UI

Description

Provides the "free" embodiment.

Synopsis

Documentation

reUI :: FreeGame f => UI a -> f a Source

reFrame :: (FreeGame m, Monad m) => Frame a -> m a Source

Generalize Frame to any monad based on FreeGame.

reGame :: (FreeGame m, Monad m) => Game a -> m a Source

Generalize Game to any monad based on FreeGame.

type Frame = F UI Source

class (Picture2D m, Local m, Keyboard m, Mouse m, FromFinalizer m) => FreeGame m where Source

Methods

draw :: (forall f. (Applicative f, Monad f, Picture2D f, Local f) => f a) -> m a Source

Draw an action that consist of Picture2D's methods.

preloadBitmap :: Bitmap -> m () Source

Load a Bitmap to avoid the cost of the first invocation of bitmap.

bracket :: Frame a -> m a Source

Run a Frame, and release all the matter happened.

forkFrame :: Frame () -> m () Source

Run a Frame action concurrently. Do not use this function to draw pictures.

takeScreenshot :: m Bitmap Source

Generate a Bitmap from the front buffer.

setFPS :: Int -> m () Source

Set the goal FPS.

setTitle :: String -> m () Source

showCursor :: m () Source

hideCursor :: m () Source

clearColor :: Color -> m () Source

getFPS :: m Int Source

Get the actual FPS value.

getBoundingBox :: m BoundingBox2 Source

setBoundingBox :: BoundingBox2 -> m () Source

Instances

FreeGame UI 
(FreeGame m, Monad m) => FreeGame (IdentityT m) 
(FreeGame m, Functor m) => FreeGame (F m) 
(FreeGame m, Functor m) => FreeGame (Free m) 
(FreeGame m, Monad m) => FreeGame (IterT m) 
(FreeGame m, Monad m) => FreeGame (ListT m) 
(FreeGame m, Monad m) => FreeGame (MaybeT m) 
(FreeGame m, Monad m) => FreeGame (ContT r m) 
(FreeGame m, Monad m) => FreeGame (StateT s m) 
(FreeGame m, Monad m) => FreeGame (StateT s m) 
(FreeGame m, Monad m) => FreeGame (ExceptT e m) 
(FreeGame m, Monad m, Monoid w) => FreeGame (WriterT w m) 
(FreeGame m, Monad m, Monoid w) => FreeGame (WriterT w m) 
(FreeGame m, Monad m, Monoid w) => FreeGame (RWST r w s m) 
(FreeGame m, Monad m, Monoid w) => FreeGame (RWST r w s m)