haskanoid-0.1.6: src/Constants.hs
-- |
-- Copyright : (c) Ivan Perez & Henrik Nilsson, 2014.
-- License : See LICENSE file.
-- Maintainer : Ivan Perez <ivan.perez@keera.co.uk>
--
-- Game constants.
module Constants where
-- External imports
import FRP.Yampa
-- Internal imports
import Physics.TwoDimensions.Dimensions
width :: Double
width = 640
height :: Double
height = 600
gameTop :: Double
gameTop = 100
gameLeft :: Double
gameLeft = 0
gameWidth :: Double
gameWidth = width
gameHeight :: Double
gameHeight = height - gameTop
loadingDelay :: DTime
loadingDelay = 2 -- seconds
paddleWidth, paddleHeight :: Double
paddleWidth = 104
paddleHeight = 24
paddleMargin :: Double
paddleMargin = 50
ballWidth, ballHeight :: Double
ballWidth = 10
ballHeight = 10
ballMargin :: Double
ballMargin = 30
blockWidth, blockHeight :: Double
blockWidth = 64
blockHeight = 32
blockSeparation :: Double
blockSeparation = 10
maxBlockLife :: Int
maxBlockLife = 3
minBlockLife :: Int
minBlockLife = 1
initialBallVel :: Pos2D
initialBallVel = (300, -300)
collisionErrorMargin :: Double
collisionErrorMargin = 100
stdLives :: Int
stdLives = 3
-- Energy transmission between objects in collisions
velTrans :: Double
velTrans = 0.2
-- Max speed
maxVNorm :: Double
maxVNorm = 300
-- * Debugging
-- | Initial level. Change this in the code to start
-- from a different level.
initialLevel :: Int
initialLevel = 0