module Number where import qualified Graphics.UI.SDL as SDL import Resource import Pos numberBmp = "./resource/image/number.bmp" numberSize = (15.0, 30.0) number2Bmp = "./resource/image/number2.bmp" number2Size = (17.4, 50.0) numberPaints :: String -> RealPos -> Pos -> Int -> [Paint] numberPaints filename (w, h) (x, y) n = let (iw, ih) = floorPos (w, h) :: Pos tips = map (\n -> (filename, Just (SDL.Rect (floor $ (fromIntegral n)*w) 0 iw ih))) (sepInt n) in zip tips [Just (SDL.Rect (floor $ (fromIntegral x)+dx) y iw ih) | dx <- [0,w..]] sepInt :: Int -> [Int] sepInt 0 = [0] sepInt n = (case div n 10 of 0 -> []; u->sepInt u) ++ [mod n 10] -- 描画 -- 画像ファイル・文字サイズ・描画位置・表示値 renderNumber :: SDL.Surface -> Resource -> String -> RealPos -> Pos -> Int -> IO () renderNumber surf res filename (w, h) (x, y) n = mapM_ (renderPaint res surf) (numberPaints filename (w, h) (x, y) n)