Move wall collisions around
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
module Dodge.Base.Wall where
|
||||
import Dodge.Data
|
||||
import Geometry
|
||||
|
||||
wlIsOpaque :: Wall -> Bool
|
||||
wlIsOpaque wl = case _wlOpacity wl of
|
||||
Opaque -> True
|
||||
_ -> False
|
||||
|
||||
wlIsSeeThrough :: Wall -> Bool
|
||||
wlIsSeeThrough wl = case _wlOpacity wl of
|
||||
SeeThrough -> True
|
||||
_ -> False
|
||||
|
||||
reflDirWall :: Point2 -> Point2 -> Wall -> Float
|
||||
reflDirWall sp ep wl = argV (reflectIn (uncurry (-.-) (_wlLine wl)) (ep -.- sp))
|
||||
|
||||
-- point free nonsense
|
||||
reflVelWallDamp :: Float -> Wall -> Point2 -> Point2
|
||||
reflVelWallDamp x = reflectInParam x . uncurry (-.-) . _wlLine
|
||||
|
||||
-- point free nonsense
|
||||
reflVelWall :: Wall -> Point2 -> Point2
|
||||
reflVelWall = reflectIn . uncurry (-.-) . _wlLine
|
||||
Reference in New Issue
Block a user