fb:porticula NoPaste
3.6: Bewegung mit Beschleunigung
Uploader: | nemored |
Datum/Zeit: | 24.09.2011 12:03:12 |
Hinweis: Dieser Quelltext ist Bestandteil des Projekts OpenBook: 2D-Spieleprogrammierung, zu dem es auf FreeBASIC-Portal.de eine Projektseite gibt.
' *** CODE 3.6: Bewegung mit Beschleunigung
SCREENRES 200, 200
DIM AS INTEGER mausX, mausY, mausB, faktor = 100
DIM AS INTEGER ballX = 100*faktor, ballY = 100*faktor, vx = 0, vy = 0
SETMOUSE 100, 100, 0, 1 ' Maus im Fenster zentrieren und ausblenden
CIRCLE (ballX/faktor, ballY/faktor), 5 ' Ball zeichnen
DO
GETMOUSE mausX, mausY, , mausB ' Maus abfragen ...
SETMOUSE 100, 100 ' ... und zuruecksetzen
vX += mausX - 100 ' Geschwindigkeiten anpassen
vY += mausY - 100
vx -= SGN(vx) ' allgemeine Abbremsung
vy -= SGN(vy)
IF ABS(vx) > 5*faktor THEN vx = 5*faktor*SGN(vx) ' Hoechstgeschwindigkeit
IF ABS(vy) > 5*faktor THEN vy = 5*faktor*SGN(vy)
LINE (ballX/faktor-5, ballY/faktor-5)-step(10, 10), 0, BF
ballX += vX ' neue Position berechnen
ballY += vY
IF ballX < 5*faktor THEN vX = ABS(vX) ' Ball am Fensterrand wird
IF ballX > 195*faktor THEN vX = -ABS(vX) ' zurueckgeworfen
IF ballY < 5*faktor THEN vY = ABS(vy)
IF ballY > 195*faktor THEN vY = -ABS(vy)
CIRCLE (ballX/faktor, ballY/faktor), 5 ' Ball zeichnen
SLEEP 10
LOOP UNTIL mausB > 0