Fix wall zoning bug

This commit is contained in:
jgk
2021-08-16 16:54:27 +02:00
parent c58ee6d56c
commit 37db056f23
4 changed files with 63 additions and 11 deletions
+9
View File
@@ -3,8 +3,10 @@ import Dodge.Data
import Dodge.Picture
import Dodge.Picture.Layer
import Geometry.Data
import Geometry
import Picture
import qualified IntMapHelp as IM
import qualified Data.IntSet as IS
import Control.Lens
@@ -49,3 +51,10 @@ pjTimerF :: Int -> Int -> World -> World
pjTimerF 0 i = projectiles %~ IM.delete i
pjTimerF time i = projectiles . ix i . pjUpdate .~ (\_ -> pjTimerF (time - 1) i)
drawDDA :: IM.IntMap IS.IntSet -> Picture
drawDDA = setLayer 1 . color (withAlpha 0.5 green) . IM.foldlWithKey' f []
where
f pic x' ys' = concatMap (\y -> polygon (rectNSEW (y+50) y (x+50) x)) ys ++ pic
where
x = 50 * fromIntegral x'
ys = map ((50 *) . fromIntegral) $ IS.toList ys'