blob: 11f63113f12be304e0ac8462cddcca679145108a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
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
|