Files
loop/src/Dodge/Particle/Draw.hs
T
2022-07-24 13:53:35 +01:00

55 lines
1.7 KiB
Haskell

module Dodge.Particle.Draw where
import Dodge.Data
import Picture
--drawParticle :: Particle -> Picture
--drawParticle pt = case pt of
-- ShockLine {} -> drawSonicWave pt
--
--drawShockwave :: Particle -> Picture
--drawShockwave pt = setDepth 20
-- . setLayer BloomLayer
-- . uncurryV translate (_ptPos pt)
-- . color (_ptColor pt)
-- $ thickCircle rad thickness
-- where
-- r = _ptRad pt
-- thickness = tFraction**2 * r
-- rad = r - (3/4) * r * tFraction
-- tFraction = fromIntegral (_ptTimer pt) / fromIntegral (_ptMaxTime pt)
--drawInverseShockwave :: Particle -> Picture
--drawInverseShockwave pt
-- = setLayer BloomLayer $ setDepth 20 $ uncurryV translate p
-- $ color cyan $ thickCircle rad thickness
-- where
-- p = _ptPos pt
-- r = _ptRad pt
-- t = _ptTimer pt
-- rad = r - 0.1 * r * fromIntegral (10 - t)
-- thickness = fromIntegral (10 - t) **2 * rad / 40
--drawTeslaArc :: Particle -> Picture
--drawTeslaArc pt = setLayer BloomNoZWrite $ pictures
-- [ setDepth 20.5 $ color (brightX 2 1 $ _ptColor pt) $ thickLine 3 ps
-- , setDepth 20 $ color (V4 0 0 0 0.5) $ thickLine 10 ps
-- ]
-- where
-- ps = _ptPoints pt
drawTargetLaser :: Laser -> Picture
drawTargetLaser pt = setLayer BloomNoZWrite $ pictures
[ setDepth 19 . color (brightX 0 0.5 col) $ thickLine 5 (sp:ps)
, setDepth 19.5 . color (brightX 5 1 col) $ thickLine 1 (sp:ps)
]
where
col = _laColor pt
(sp:ps) = _laPoints pt
--drawSonicWave :: Particle -> Picture
--drawSonicWave pt = foldMap (color (_ptColor pt) . setLayer BloomNoZWrite . setDepth 20
-- . lineThick 20
-- . map fst)
-- $ _ptPointDirs pt