#6 Win/End state #8 End screen #9 level selection

This commit is contained in:
Tibo De Peuter 2022-12-22 16:25:29 +01:00
parent becd305e01
commit 5cc96cbdba
10 changed files with 53 additions and 21 deletions

View file

@ -44,6 +44,7 @@ allItems = [
allGui :: [(String, FilePath)]
allGui = [
("main", "main.png"),
("health", "health.png")
]

View file

@ -4,7 +4,7 @@ module RPGEngine.Render.LevelSelection
import RPGEngine.Render.Core (Renderer)
import RPGEngine.Config (resolution, zoom, uizoom)
import RPGEngine.Config (resolution, zoom, uizoom, textColor, selectionColor )
import RPGEngine.Data (State (..))
import Graphics.Gloss ( pictures, color, text, translate, blank )
@ -25,7 +25,8 @@ renderLevelList LevelSelection{ levelList = list, selector = selector } = everyt
where everything = pictures $ map render entries
sel = selection selector
entries = zip [0::Int .. ] list
render (i, path) | i == sel = color red $ scale uizoom uizoom $ translate 0 (offset i) $ text path
| otherwise = scale uizoom uizoom $ translate 0 (offset i) $ text path
render (i, path) | i == sel = color selectionColor $ make (i, path)
| otherwise = color textColor $ make (i, path)
make (i, path) = scale uizoom uizoom $ translate 0 (offset i) $ text path
offset i = negate (250 * uizoom * fromIntegral i)
renderLevelList _ = blank

View file

@ -1,15 +1,21 @@
module RPGEngine.Render.Lose
( renderLose
) where
import RPGEngine.Render.Core (Renderer)
import RPGEngine.Config (uizoom, textColor)
import RPGEngine.Data (State)
import Graphics.Gloss (text)
import Graphics.Gloss (text, scale, color, translate)
------------------------------ Constants -----------------------------
message :: String
message = "You lose! Press any key to retry."
------------------------------ Exported ------------------------------
-- TODO
renderLose :: Renderer State
renderLose _ = text "You lose"
renderLose _ = scaled $ center $ color textColor $ text message
where scaled = scale uizoom uizoom
center = translate (-1200) 0

View file

@ -2,16 +2,23 @@ module RPGEngine.Render.Menu
( renderMenu
) where
import RPGEngine.Render.Core (Renderer)
import RPGEngine.Render.Core (Renderer, getRender)
import RPGEngine.Config ( uizoom, textColor )
import RPGEngine.Data (State)
import Graphics.Gloss (text, scale, color, white, translate)
import Graphics.Gloss (text, scale, color, translate, pictures)
------------------------------ Constants -----------------------------
message :: String
message = "[Press any key to start]"
------------------------------ Exported ------------------------------
renderMenu :: Renderer State
renderMenu _ = scaled $ center $ color textColor $ text "[Press any key to start]"
where scaled = scale uizoom uizoom
center = translate (-750) 0
renderMenu _ = pictures [main, pressAny]
where pressAny = scaled $ center $ color textColor $ text message
scaled = scale uizoom uizoom
center = translate (-800) (-320)
main = getRender "main"

View file

@ -4,12 +4,19 @@ module RPGEngine.Render.Win
import RPGEngine.Render.Core (Renderer)
import RPGEngine.Config (uizoom, textColor)
import RPGEngine.Data (State)
import Graphics.Gloss (text)
import Graphics.Gloss (text, scale, color, translate)
------------------------------ Constants -----------------------------
message :: String
message = "You win! Press any key to return to the menu."
------------------------------ Exported ------------------------------
-- TODO
renderWin :: Renderer State
renderWin _ = text "You win!\nPress any key to return to the menu."
renderWin _ = scaled $ center $ color textColor $ text message
where scaled = scale uizoom uizoom
center = translate (-1500) 0