forked from ysbaddaden/sdl.cr
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path04_keyboard.cr
41 lines (35 loc) · 910 Bytes
/
04_keyboard.cr
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
require "../sdl"
SDL.init(SDL::Init::VIDEO)
at_exit { SDL.quit }
window = SDL::Window.new("SDL tutorial", 640, 480)
surfaces = {
default: SDL.load_bmp(File.join(__DIR__, "data", "press.bmp")),
up: SDL.load_bmp(File.join(__DIR__, "data", "up.bmp")),
down: SDL.load_bmp(File.join(__DIR__, "data", "down.bmp")),
left: SDL.load_bmp(File.join(__DIR__, "data", "left.bmp")),
right: SDL.load_bmp(File.join(__DIR__, "data", "right.bmp")),
}
bmp = surfaces[:default]
loop do
case event = SDL::Event.wait
when SDL::Event::Quit
break
when SDL::Event::Keyboard
case event.sym
when .up?
bmp = surfaces[:up]
when .down?
bmp = surfaces[:down]
when .left?
bmp = surfaces[:left]
when .right?
bmp = surfaces[:right]
when .q?
break
else
bmp = surfaces[:default]
end if event.keyup?
end
bmp.blit(window.surface)
window.update
end