Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- doSDL :: IO ()
- doSDL = do
- initialize [InitEverything]
- putStrLn "Initialized"
- window <- createWindow (pack "my first window") windowConfig
- renderer <- createRenderer window (-1) rendererConfig
- textureBG <- prepareTexture "bg.bmp" renderer
- textureGround <- prepareTexture "ground.bmp" renderer
- textureGuy <- prepareTexture "stick.bmp" renderer
- let background = GameObj {_size = V2 1024 768, _pos = V2 0 0,
- _srcRect = Rectangle (P (V2 0 0)) (V2 1024 768),
- _destRect = Rectangle (P (V2 0 0)) (V2 1024 768), _img = prepareTexture "bg.bmp" renderer}
- let ground = GameObj {_size = V2 1024 768, _pos = V2 0 0,
- _srcRect = Rectangle (P (V2 0 0)) (V2 1024 768),
- _destRect = Rectangle (P (V2 0 0)) (V2 1024 768), _img = textureGround}
- let guy = GameObj {_size = V2 45 100, _pos = V2 0 0,
- _srcRect = Rectangle (P (V2 0 0)) (V2 45 100),
- _destRect = Rectangle (P (V2 0 0)) (V2 45 100), _img = textureGuy}
- setRenderDrawColor renderer (V4 255 155 155 0)
- let keyState = fromList [0, 0, 0, 0]
- gameLoop renderer keyState background ground guy
- destroyTextures [textureGuy, textureBG, textureGround]
- destroyRenderer renderer
- destroyWindow window
- quit
- putStrLn "quitted"
- prepareTexture :: [Char] -> Renderer -> IO Texture
- prepareTexture filename renderer = do
- -- needs a 24 bit bitmap
- surface <- loadBMP filename
- surfacePixelFormat <- surfaceFormat surface
- transparentColor <- mapRGB surfacePixelFormat (V3 255 0 255)
- setColorKey surface (Just transparentColor)
- texture <- createTextureFromSurface renderer surface
- freeSurface surface
- return texture
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement