-
Notifications
You must be signed in to change notification settings - Fork 1
/
Types.elm
51 lines (36 loc) · 750 Bytes
/
Types.elm
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
42
43
44
45
46
47
48
49
50
51
module Types where
type Sfx =
LaserSfx | HitSfx | CrashSfx | SpawnSfx
type alias Vector =
( Float
, Float)
type alias Point =
{ x: Int
, y: Int
}
type alias Input =
{ dir : Point -- arrow key status
, dt : Float -- delta time
}
type alias Gamestate =
{ particles : List Particle
, lasers : List Particle
, asteroids : List Asteroid
, player : Player
, sfx : List Sfx
}
type alias Player =
{ position : Vector
, speed : Vector
, angle : Float
}
type alias Particle =
{ position : Vector
, speed : Vector
, life : Float
}
type alias Asteroid =
{ position : Vector
, speed : Vector
, angle : Float
}