Buchempfehlung
Visual Basic 6 Kochbuch
Visual Basic 6 Kochbuch
Viele praktische Tipps zum Programmieren mit Visual Basic 6, die sich oft auch auf FB übertragen lassen. [Mehr Infos...]
FreeBASIC-Chat
Es sind Benutzer im FreeBASIC-Chat online.
(Stand:  )
FreeBASIC bei Twitter
Twitter FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!

fb:porticula NoPaste

Info
Info / Hilfe
Liste
Übersicht / Liste
Neu
Datei hochladen
Suche
Quellcode suchen
Download
Dateidownload

3.6: Bewegung mit Beschleunigung

Uploader:Redakteurnemored
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