Monad transformers

This commit is contained in:
Oleg Sobolev 2026-03-29 19:40:54 +03:00
parent befd198c93
commit b2b81b444c
3 changed files with 63 additions and 63 deletions

View file

@ -24,9 +24,9 @@ renderTile :: Renderer -> Texture -> (Pos, Tile) -> IO ()
renderTile renderer texture (pos, tile) = case tile of
Empty -> return ()
Apple -> renderSpriteAt renderer texture APPLE pos
Snake orientation -> renderSpriteAt renderer texture (snakeSprite orientation) pos
SnakeSegment orientation -> renderSpriteAt renderer texture (snakeSprite orientation) pos
snakeSprite :: SnakeOrientation -> Sprite
snakeSprite :: SnakeSegmentOrientation -> Sprite
snakeSprite HEAD_DOWN = SNAKE_HEAD_DOWN
snakeSprite HEAD_LEFT = SNAKE_HEAD_LEFT
snakeSprite HEAD_UP = SNAKE_HEAD_UP

View file

@ -17,7 +17,7 @@ main = do
texture <- IMG.loadTexture renderer "assets/spritesheet.png"
appLoop renderer texture (initialState (20, 20) (2, 2))
appLoop renderer texture (initialState (10, 10) (2, 2))
destroyTexture texture
destroyRenderer renderer
@ -49,7 +49,7 @@ appLoop renderer texture game = do
input = foldMap eventDirectionPressed events
frameEnd <- getTicks
let elapsed = frameEnd - frameStart
let updatedGame = execTick game input
(_, updatedGame) <- runTick game input
renderFrame renderer texture updatedGame
unless exitPressed $ do