User manual
12 2 | Ball – Einstieg in die Spiele programmierung
2
Ü
ber die controlBall
()
-Funktion können Sie nun den Ball auch steuern.
Die Tasten des Joypads werden dabei auf einfache Weise ab
g
efra
g
t. Die
Funktion en
g
ine.
j
oypad.isPressed
(
UP
)
g
ibt den Wert TRUE zurück, wenn
die Taste
g
erade
g
edrückt ist. Dann wird die y-Position des Balls um ein
Pixel verrin
g
ert, was zur Fol
g
e hat, dass sich der Ball dem oberen Dis-
p
layrand nähert. Analo
g
dazu
g
ibt es die Funktion en
g
ine.
j
oypad.isPres
-
s
ed
(
DOWN
)
. Sie können also über die Richtun
g
stasten nach oben und
u
nten die Höhe des Balls beeinfl ussen, während er sich auf dem Display
n
ach rechts bewe
g
t. Erreicht er das eine Ende des Displays, erscheint e
r
wieder am anderen Ende. Damit diese drei Funktionen
g
ut zusammen-
s
pielen, müssen sie an passender Stelle in der loop-Routine auf
g
erufen
w
e
r
de
n
.
001
void loo
p
()
{
002
if
(
engine.up
d
ate
()){
003 controlBall()
;
004 if(en
g
ine.isFrameCount(20))
{
005 moveBall()
;
006
}
007
d
rawBa
ll()
;
00
8
}
00
9
}
Dazu gibt es in Arduino die loop-Funktion, die dauerhaft durchläuft.
Ü
be
r
die Funktion en
g
ine.update
()
wird sicher
g
estellt, dass alle En
g
ine-Funk
-
tionen, wie das Zeichnen des Balls und das Auswerten der Tasten, ausge-
f
ührt wurden, bevor der nächste Durch
g
an
g
durchlaufen wird. Die Funk-
tion moveBall
()
hat allerdings noch eine weitere Einschränkung – sie wird
n
ur alle 20 Frames auf
g
erufen. Es wird also zunächst 20-mal der Inhalt
des Displays aktualisiert, bevor sich die Position des Balls verändern darf.
Der Grund dafür ist, dass sich der Ball sonst viel zu schnell bewegen wür
-
de.
10223-0 Spieleprogrammierung mit dem Arduino_03.indd 1210223-0 Spieleprogrammierung mit dem Arduino_03.indd 12 14.09.2016 08:37:5614.09.2016 08:37:56