19 lines
478 B
Haskell
19 lines
478 B
Haskell
module Dodge.Shockwave.Draw where
|
|
|
|
import Dodge.Data.Shockwave
|
|
import Geometry
|
|
import Picture
|
|
|
|
drawShockwave :: Shockwave -> Picture
|
|
drawShockwave sw =
|
|
setDepth 20
|
|
. setLayer BloomLayer
|
|
. uncurryV translate (_swPos sw)
|
|
. color (_swColor sw)
|
|
$ thickCircle rad thickness
|
|
where
|
|
r = _swRad sw
|
|
thickness = tFraction ** 2 * r
|
|
rad = r - (3 / 4) * r * tFraction
|
|
tFraction = fromIntegral (_swTimer sw) / fromIntegral (_swMaxTime sw)
|