diff options
author | Joris Guyonvarch | 2015-03-07 15:12:02 +0100 |
---|---|---|
committer | Joris Guyonvarch | 2015-03-07 15:12:02 +0100 |
commit | 17a58e0c4c67f27d87635bf1b2ca50fb11795ad3 (patch) | |
tree | 8de99cdf0b4021ca6db6920537e7d0fa250e90bc /src/Model/Cloud.elm | |
parent | 336816d2e8ab4afff1562123dfde61bf3a68e61c (diff) |
Organizing source code with subdirectories
Diffstat (limited to 'src/Model/Cloud.elm')
-rw-r--r-- | src/Model/Cloud.elm | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/src/Model/Cloud.elm b/src/Model/Cloud.elm new file mode 100644 index 0000000..11f6311 --- /dev/null +++ b/src/Model/Cloud.elm @@ -0,0 +1,41 @@ +module Model.Cloud + ( Cloud + , initCloud + , playerPointsCollision + , playerPointCollision + ) where + +import List + +import Model.Point (..) +import Model.Player (..) +import Model.Config (..) + +import Utils.Geometry (distance) + +type alias Cloud = + { points : Config -> List Point + , spawn : Float + , lastSpawn : Float + } + +initCloud : Cloud +initCloud = + let spawn = 600 + in { points config = + case config of + White -> [] + Black -> [] + , spawn = spawn + , lastSpawn = -spawn + } + +playerPointsCollision : Float -> Player -> List Point -> Bool +playerPointsCollision time player points = + let collision = playerPointCollision time player + in List.length (List.filter collision points) > 0 + +playerPointCollision : Float -> Player -> Point -> Bool +playerPointCollision time player point = + let pointPos = pointMove point time + in (distance pointPos player.pos) < pointSize + playerSize |