Advertisement
Guest User

Untitled

a guest
Nov 26th, 2014
159
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. doSDL :: IO ()
  2. doSDL = do
  3.     initialize [InitEverything]
  4.     putStrLn "Initialized"
  5.  
  6.     window <- createWindow (pack "my first window") windowConfig
  7.     renderer <- createRenderer window (-1) rendererConfig
  8.  
  9.     textureBG <- prepareTexture "bg.bmp" renderer
  10.     textureGround <- prepareTexture "ground.bmp" renderer
  11.     textureGuy <- prepareTexture "stick.bmp" renderer
  12.  
  13.     let background = GameObj {_size = V2 1024 768, _pos = V2 0 0,
  14.         _srcRect = Rectangle (P (V2 0 0)) (V2 1024 768),
  15.         _destRect = Rectangle (P (V2 0 0)) (V2 1024 768), _img = prepareTexture "bg.bmp" renderer}
  16.     let ground = GameObj {_size = V2 1024 768, _pos = V2 0 0,
  17.         _srcRect = Rectangle (P (V2 0 0)) (V2 1024 768),
  18.         _destRect = Rectangle (P (V2 0 0)) (V2 1024 768), _img = textureGround}
  19.     let guy = GameObj {_size = V2 45 100, _pos = V2 0 0,
  20.         _srcRect = Rectangle (P (V2 0 0)) (V2 45 100),
  21.         _destRect = Rectangle (P (V2 0 0)) (V2 45 100), _img = textureGuy}
  22.    
  23.     setRenderDrawColor renderer (V4 255 155 155 0)
  24.     let keyState = fromList [0, 0, 0, 0]
  25.     gameLoop renderer keyState background ground guy
  26.  
  27.     destroyTextures [textureGuy, textureBG, textureGround]
  28.     destroyRenderer renderer
  29.     destroyWindow window
  30.     quit
  31.     putStrLn "quitted"
  32.  
  33.  
  34. prepareTexture :: [Char] -> Renderer -> IO Texture
  35. prepareTexture filename renderer = do
  36.     -- needs a 24 bit bitmap
  37.     surface <- loadBMP filename
  38.     surfacePixelFormat <- surfaceFormat surface
  39.     transparentColor <- mapRGB surfacePixelFormat (V3 255 0 255)
  40.     setColorKey surface (Just transparentColor)
  41.     texture <- createTextureFromSurface renderer surface
  42.     freeSurface surface
  43.     return texture
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement