/
events.go
54 lines (47 loc) · 940 Bytes
/
events.go
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
52
53
54
package main
import (
"github.com/veandco/go-sdl2/sdl"
"os"
)
type Events struct {
up bool
down bool
left bool
right bool
quit bool
}
func (events *Events) GetEvents() {
for event := sdl.PollEvent(); event != nil; event = sdl.PollEvent() {
switch t := event.(type) {
case *sdl.QuitEvent:
os.Exit(0)
case *sdl.KeyDownEvent:
if t.Repeat != 0 {
continue
}
switch t.Keysym.Scancode {
case sdl.SCANCODE_UP:
events.up = true
case sdl.SCANCODE_DOWN:
events.down = true
case sdl.SCANCODE_LEFT:
events.left = true
case sdl.SCANCODE_RIGHT:
events.right = true
case sdl.SCANCODE_ESCAPE:
os.Exit(0)
}
case *sdl.KeyUpEvent:
switch t.Keysym.Scancode {
case sdl.SCANCODE_UP:
events.up = false
case sdl.SCANCODE_DOWN:
events.down = false
case sdl.SCANCODE_LEFT:
events.left = false
case sdl.SCANCODE_RIGHT:
events.right = false
}
}
}
}