#5 Render inventory when pressing i
This commit is contained in:
parent
f529fc5237
commit
d0302c3156
9 changed files with 76 additions and 52 deletions
|
@ -4,7 +4,7 @@ module RPGEngine.Render.LevelSelection
|
|||
|
||||
import RPGEngine.Render.Core (Renderer)
|
||||
|
||||
import RPGEngine.Config (resolution, zoom)
|
||||
import RPGEngine.Config (resolution, zoom, uizoom)
|
||||
import RPGEngine.Data (State (..))
|
||||
|
||||
import Graphics.Gloss ( pictures, color, text, translate, blank )
|
||||
|
@ -25,8 +25,7 @@ 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 zoomed zoomed $ translate 0 (offset i) $ text path
|
||||
| otherwise = scale zoomed zoomed $ translate 0 (offset i) $ text path
|
||||
zoomed = 0.1 * zoom
|
||||
offset i = negate (2 * resolution * zoom * fromIntegral i)
|
||||
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
|
||||
offset i = negate (250 * uizoom * fromIntegral i)
|
||||
renderLevelList _ = blank
|
|
@ -2,20 +2,21 @@ module RPGEngine.Render.Playing
|
|||
( renderPlaying
|
||||
) where
|
||||
|
||||
import RPGEngine.Render.Core (Renderer, getRender, setRenderPos)
|
||||
import RPGEngine.Render.Core (Renderer, getRender, setRenderPos, overlay)
|
||||
|
||||
import RPGEngine.Config (resolution, zoom)
|
||||
import RPGEngine.Config (resolution, zoom, uizoom)
|
||||
import RPGEngine.Data (State(..), Player (..), Game (..), Level (..), Layout, Physical (..), Item (..), Entity (..))
|
||||
|
||||
import Graphics.Gloss ( pictures, Picture, translate )
|
||||
import Graphics.Gloss.Data.Picture (blank)
|
||||
import Graphics.Gloss ( pictures, Picture, translate, white )
|
||||
import Graphics.Gloss.Data.Picture ( blank, text, color, scale )
|
||||
|
||||
------------------------------ Exported ------------------------------
|
||||
|
||||
renderPlaying :: Renderer State
|
||||
renderPlaying Playing { level = lvl, player = player } = pictures [
|
||||
renderLevel lvl,
|
||||
renderPlayer player
|
||||
renderPlayer player,
|
||||
renderInventory player
|
||||
]
|
||||
renderPlaying _ = blank
|
||||
|
||||
|
@ -83,4 +84,12 @@ renderEntities list = pictures $ map renderEntity list
|
|||
|
||||
renderEntity :: Entity -> Picture
|
||||
renderEntity Entity{ entityId = id, entityX = x, entityY = y} = setRenderPos x y image
|
||||
where image = getRender id
|
||||
where image = getRender id
|
||||
|
||||
renderInventory :: Player -> Picture
|
||||
renderInventory Player{ showInventory = False } = blank
|
||||
renderInventory Player{ inventory = list } = pictures [overlay, title, items]
|
||||
where title = translate 0 (offset (-1)) $ scale uizoom uizoom $ color white $ text "Inventory"
|
||||
items = pictures $ map move $ zip [0::Int ..] (map (getRender . itemId) list)
|
||||
move (i, pic) = translate 0 (offset i) pic
|
||||
offset i = negate (zoom * resolution * fromIntegral i)
|
Reference in a new issue