#9 Added level selection render

This commit is contained in:
Tibo De Peuter 2022-12-21 16:07:05 +01:00
parent 0786a41006
commit 2055ef234e
17 changed files with 401 additions and 34 deletions

View file

@ -9,14 +9,24 @@ module RPGEngine.Render
import RPGEngine.Data
( State(..),
Game(..) )
import RPGEngine.Render.Level
Game(..), Player (..) )
import RPGEngine.Render.Level
( renderLevel )
import Graphics.Gloss
( white, pictures, text, Display(InWindow), Color, Picture )
import RPGEngine.Render.Player (renderPlayer)
( white,
pictures,
text,
Display(InWindow),
Color,
Picture,
scale,
translate )
import RPGEngine.Render.Player (renderPlayer, focusPlayer)
import RPGEngine.Render.GUI (renderGUI)
import Graphics.Gloss.Data.Picture (color)
import RPGEngine.Render.Core (overlay)
import RPGEngine.Input.LvlSelect (getLvlList)
import RPGEngine.Render.LvlSelect (renderLvlList)
----------------------------- Constants ------------------------------
@ -32,11 +42,12 @@ 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
render g@Game{ state = Menu } = renderMenu g
render g@Game{ state = LvlSelect } = renderLevelSelection 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
----------------------------------------------------------------------
@ -44,6 +55,10 @@ render g@Game{ state = Lose } = renderLose g
renderMenu :: Game -> Picture
renderMenu _ = text "[Press any key to start]"
-- TODO
renderLevelSelection :: Game -> Picture
renderLevelSelection _ = renderLvlList getLvlList
renderPlaying :: Game -> Picture
renderPlaying g@Game{ playing = lvl, player = player } = pictures [
renderLevel lvl,
@ -51,9 +66,12 @@ renderPlaying g@Game{ playing = lvl, player = player } = pictures [
renderGUI g
]
-- TODO
renderPause :: Game -> Picture
renderPause _ = text "[Press any key to continue]"
renderPause g = pictures [renderPlaying g, pause]
where pause = pictures [
overlay,
color white $ scale 0.5 0.5 $ text "[Press any key to continue]"
]
-- TODO
renderWin :: Game -> Picture