h-raylib-4.5.2.0: examples/custom-font-text/src/Main.hs
{-# OPTIONS -Wall #-}
module Main where
import Control.Monad (unless)
import Foreign (fromBool)
import Raylib.Colors (black, rayWhite)
import Raylib.Core
( beginDrawing,
changeDirectory,
clearBackground,
endDrawing,
getApplicationDirectory,
initWindow,
isKeyPressed,
setTargetFPS,
windowShouldClose, closeWindow
)
import Raylib.Text (drawText, drawTextEx, loadFont)
import Raylib.Types (Font, KeyboardKey (KeyDown, KeyUp), Vector2 (Vector2))
mainFontPath :: String
mainFontPath = "../../../../../../../../../examples/custom-font-text/assets/Lato-Regular.ttf"
main :: IO ()
main = do
initWindow 800 450 "raylib [text] example - custom font text"
setTargetFPS 60
_ <- getApplicationDirectory >>= changeDirectory
mainFont <- loadFont mainFontPath
gameLoop mainFont 20
closeWindow
gameLoop :: Font -> Int -> IO ()
gameLoop mainFont size = do
beginDrawing
clearBackground rayWhite
drawTextEx mainFont "Testing drawTextEx" (Vector2 20.0 12.0) (fromIntegral size) 1.0 black
drawText "Press the up and down arrows to change the font size" 20 (size + 15) 24 black
increaseSize <- isKeyPressed KeyUp
decreaseSize <- isKeyPressed KeyDown
endDrawing
shouldClose <- windowShouldClose
unless shouldClose $ gameLoop mainFont (size + fromBool increaseSize - fromBool decreaseSize)