-- Allows to render the played game module RPGEngine.Render ( initWindow , bgColor , render ) where import RPGEngine.Data ( State(..), Game(..) ) import RPGEngine.Render.Level ( renderLevel ) import Graphics.Gloss ( white, pictures, text, Display(InWindow), Color, Picture ) import RPGEngine.Render.Player (renderPlayer) import RPGEngine.Render.GUI (renderGUI) ----------------------------- Constants ------------------------------ -- Game background color bgColor :: Color bgColor = white ---------------------------------------------------------------------- -- Initialize a window to play in initWindow :: String -> (Int, Int) -> (Int, Int) -> Display initWindow = InWindow -- Render the game render :: Game -> Picture render g@Game{ state = Menu } = renderMenu g render g@Game{ state = Playing } = renderPlaying g render g@Game{ state = Pause } = renderPause g render g@Game{ state = Win } = renderWin g render g@Game{ state = Lose } = renderLose g ---------------------------------------------------------------------- -- TODO renderMenu :: Game -> Picture renderMenu _ = text "[Press any key to start]" renderPlaying :: Game -> Picture renderPlaying g@Game{ playing = lvl, player = player } = pictures [ renderLevel lvl, renderPlayer player, renderGUI g ] -- TODO renderPause :: Game -> Picture renderPause _ = text "[Press any key to continue]" -- TODO renderWin :: Game -> Picture renderWin _ = text "Win" -- TODO renderLose :: Game -> Picture renderLose _ = text "Lose"