• Animieren mit Javascript
  • mcsvi
  • 30.06.2020
  • Mittlere Reife
Um die Lizenzinformationen zu sehen, klicken Sie bitte den gewünschten Inhalt an.
1
Heute las­sen wir einen Ball mit Ja­va­script flie­gen. Gib fol­gen­de Adres­se voll­stän­dig ein:

www.jsbin.com/wale­pec/edit

Das Can­vas Ele­ment is be­reits vor­be­rei­tet und steht in der Va­ri­a­ble lein­wand zur Ver­fü­gung (wie letz­te Woche).
2
Er­stel­le zwei Va­ri­a­blen, wel­che die ak­tu­el­le Po­si­ti­on des Bal­les dar­stel­len und lege die An­fangs­wer­te fest (z.b. Ur­sprung):

var posX = 0
var posY = 0
3
Er­stel­le zwei wei­te­re Va­ri­a­blen, wel­che die ak­tu­el­len Ge­schwin­dig­keit in x und y Rich­tung ent­hal­ten (Diese Werte kannst du sel­ber fest­le­gen):

var spee­dX = 1
var spee­dY = 2
4
Er­stel­le eine Va­ri­a­ble und lege damit einen be­lie­bi­gen Ra­di­us des Bal­les fest:

var ra­di­us = 10
5
Eine Funk­ti­on ist eine Art Con­tai­ner für Code, die du immer wie­der auf­ru­fen und aus­füh­ren kannst. Schrei­be die Funk­ti­on be­we­ge­Ball(), die dafür sorgt, dass sich der Ball be­wegt.


func­tion be­we­ge­Ball() {

lein­wand.cle­ar­Rect(0,0,500,500)

posX =posX + spee­dX
posY =posY + spee­dY



lein­wand.be­gin­Path()
lein­wand.arc(posX,posY, ra­di­us, 0, 2*Math.PI)
lein­wand.fill()

win­dow.re­quest­Ani­ma­ti­on­Frame(be­we­ge­Ball)
}

löscht das ge­sam­te Can­vas vor jedem neuen Frame. Warum?

In jedem Schritt wird die Po­si­ti­on des Bal­les ver­än­dert, indem die mo­men­ta­nen Ge­schwin­dig­kei­ten ad­diert wer­den. Da­durch be­wegt sich der Ball.

Hier wird der Ball an die mo­men­ta­ne Po­si­ti­on ge­zeich­net (wie letz­te Woche)

Diese Zeile sorgt dafür, dass die Funk­ti­on in der Klam­mer (also be­we­ge­Ball) 60 Mal in der Se­kun­de auf­ge­ru­fen wird.

6
Um die Ani­ma­ti­on zu star­ten, rufen wir ab­schlie­ßend noch un­se­re Funk­ti­on be­we­ge­Ball auf:

be­we­ge­Ball()

Jetzt soll­te der Ball flie­gen.
7
Wie kannst du dafür sor­gen, dass der Ball an den Wän­den des Can­vas re­flek­tiert wird?
8
Wie könn­te man dar­aus ein Ping-​Pong Spiel bauen?
x