Jumpbacks and continue

This commit is contained in:
Tibo De Peuter 2022-12-22 09:43:17 +01:00
parent dab6fadad4
commit b7278d6afc
11 changed files with 59 additions and 44 deletions

View file

@ -15,8 +15,8 @@ import Graphics.Gloss.Data.Color (red)
------------------------------ Exported ------------------------------
renderLevelSelection :: Renderer Game
renderLevelSelection Game{ state = state } = result
renderLevelSelection :: Renderer State
renderLevelSelection state = result
where result = renderLevelList state
----------------------------------------------------------------------

View file

@ -4,11 +4,11 @@ module RPGEngine.Render.Lose
import RPGEngine.Render.Core ( Renderer )
import RPGEngine.Data ( Game )
import RPGEngine.Data ( State )
import Graphics.Gloss ( text )
----------------------------------------------------------------------
-- TODO
renderLose :: Renderer Game
renderLose :: Renderer State
renderLose _ = text "Win"

View file

@ -4,11 +4,11 @@ module RPGEngine.Render.Menu
import RPGEngine.Render.Core ( Renderer )
import RPGEngine.Data ( Game )
import RPGEngine.Data ( State )
import Graphics.Gloss (text)
----------------------------------------------------------------------
-- TODO
renderMenu :: Renderer Game
renderMenu :: Renderer State
renderMenu _ = text "[Press any key to start]"

View file

@ -4,7 +4,7 @@ module RPGEngine.Render.Paused
import RPGEngine.Render.Core ( Renderer, overlay )
import RPGEngine.Data ( Game )
import RPGEngine.Data ( State (..) )
import Graphics.Gloss ( pictures, scale, text )
import RPGEngine.Render.Playing ( renderPlaying )
import Graphics.Gloss.Data.Picture (color)
@ -12,9 +12,10 @@ import Graphics.Gloss.Data.Color (white)
------------------------------ Exported ------------------------------
renderPaused :: Renderer Game
renderPaused g = pictures [renderPlaying g, pause]
where pause = pictures [
renderPaused :: Renderer State
renderPaused state = pictures [playing, pause]
where playing = renderPlaying $ continue state
pause = pictures [
overlay,
color white $ scale 0.5 0.5 $ text "[Press any key to continue]"
]

View file

@ -16,14 +16,17 @@ import RPGEngine.Data
import Graphics.Gloss ( Picture, pictures )
import Graphics.Gloss.Data.Picture (translate)
import RPGEngine.Config (resolution, zoom)
import Graphics.Gloss (text)
import Graphics.Gloss (blank)
------------------------------ Exported ------------------------------
renderPlaying :: Renderer Game
renderPlaying g@Game{ state = Playing { level = lvl }, player = player } = pictures [
renderPlaying :: Renderer State
renderPlaying Playing { level = lvl, player = player } = pictures [
renderLevel lvl,
renderPlayer player
]
renderPlaying _ = blank
------------------------------- Player -------------------------------
@ -35,7 +38,7 @@ renderPlayer Player{ position = (x, y) } = move picture
-- Center the player in the middle of the screen.
-- Not in use at the moment, might be useful later.
focusPlayer :: Game -> Picture -> Picture
focusPlayer Game{ player = Player{ position = (x, y)}} = move
focusPlayer Game{ state = Playing{ player = Player{ position = (x, y) }}} = move
where move = translate centerX centerY
centerX = resolution * zoom * fromIntegral (negate x)
centerY = resolution * zoom * fromIntegral (negate y)

View file

@ -4,11 +4,11 @@ module RPGEngine.Render.Win
import RPGEngine.Render.Core ( Renderer )
import RPGEngine.Data ( Game )
import RPGEngine.Data ( State )
import Graphics.Gloss (text)
----------------------------------------------------------------------
-- TODO
renderWin :: Renderer Game
renderWin :: Renderer State
renderWin _ = text "Win"