Render BG
This commit is contained in:
parent
ffb2a087e1
commit
fe45880384
1 changed files with 15 additions and 1 deletions
|
|
@ -13,6 +13,7 @@ import Snake
|
||||||
|
|
||||||
import Assets
|
import Assets
|
||||||
import qualified Data.Text as Text
|
import qualified Data.Text as Text
|
||||||
|
import Data.Word (Word8)
|
||||||
|
|
||||||
spriteSize :: CInt
|
spriteSize :: CInt
|
||||||
spriteSize = 16
|
spriteSize = 16
|
||||||
|
|
@ -22,13 +23,26 @@ tileSize = 64
|
||||||
|
|
||||||
renderFrame :: Renderer -> Assets -> Game -> IO ()
|
renderFrame :: Renderer -> Assets -> Game -> IO ()
|
||||||
renderFrame renderer (texture, font) game = do
|
renderFrame renderer (texture, font) game = do
|
||||||
rendererDrawColor renderer $= V4 32 32 32 255
|
rendererDrawColor renderer $= V4 0 0 0 255
|
||||||
clear renderer
|
clear renderer
|
||||||
|
renderBG renderer (gameBoardSize game)
|
||||||
rendererDrawColor renderer $= V4 255 255 255 255
|
rendererDrawColor renderer $= V4 255 255 255 255
|
||||||
renderGame renderer texture game
|
renderGame renderer texture game
|
||||||
renderScore renderer font game
|
renderScore renderer font game
|
||||||
present renderer
|
present renderer
|
||||||
|
|
||||||
|
renderBG :: Renderer -> (Int, Int) -> IO ()
|
||||||
|
renderBG renderer (w, h) = do
|
||||||
|
void $ traverse (renderBGTile renderer) [(x, y) | x <- [0..w-1], y <- [0..h-1]]
|
||||||
|
|
||||||
|
tileColors :: (V4 Word8, V4 Word8)
|
||||||
|
tileColors = (V4 32 32 32 255, V4 64 64 64 255)
|
||||||
|
|
||||||
|
renderBGTile :: Renderer -> (Int, Int) -> IO ()
|
||||||
|
renderBGTile renderer (x, y) = do
|
||||||
|
rendererDrawColor renderer $= ((if even (x + y) then fst else snd) tileColors)
|
||||||
|
fillRect renderer (Just $ Rectangle (P $ V2 (fromIntegral x * tileSize) (fromIntegral y * tileSize)) (V2 tileSize tileSize))
|
||||||
|
|
||||||
renderGame :: Renderer -> Texture -> Game -> IO ()
|
renderGame :: Renderer -> Texture -> Game -> IO ()
|
||||||
renderGame renderer texture state = do
|
renderGame renderer texture state = do
|
||||||
void $ traverse (renderTile renderer texture) (assocs $ gameBoard state)
|
void $ traverse (renderTile renderer texture) (assocs $ gameBoard state)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue