blob: 28fb2d139299cd1c0dcc204af3c66dc4acbbd87a (
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
|
module Input where
import Char (toCode)
import Keyboard (KeyCode, keysDown, arrows, isDown)
import Random
import Time (Time, fps)
import Signal (..)
import Model.Vec2 (Vec2)
type alias Input =
{ dir : Vec2
, inputKeysDown : List KeyCode
, delta : Time
}
getInput : Signal Input
getInput =
let delta = fps 25
input =
Input
<~ map recordIntToVec2 arrows
~ keysDown
~ delta
in sampleOn delta input
recordIntToVec2 : {x : Int, y : Int} -> Vec2
recordIntToVec2 {x, y} =
{ x = toFloat x
, y = toFloat y
}
|