Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Bewegungspfad?

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
0oFreako0



Anmeldungsdatum: 17.12.2011
Beiträge: 114

BeitragVerfasst am: 09.06.2012, 21:07    Titel: Bewegungspfad? Antworten mit Zitat

Hi ich habe ein kleines Problem und zwar Versuche ich mich gerade daran eine bewegungs pfad zu coden.

Meine Figur soll sich Automatisch-Dynamisch in der landschaft bewegen also nicht ruckartig von Richtung A nach Richtung B soweit bin ich schonmal gekommen.

Code:

ScreenRes 400,400,32

Declare Function rand(var1 As Double,var2 As double) As Double

Randomize




Dim x As Double = 200
Dim y As Double = 200
Dim speed As Double = 0.8

Dim angle As Double = 2.3
Dim angle_drift As Double = 2.3

Dim counter As Integer

Dim randvar As Double

Do
   
   x += (Sin(angle) * speed)
   y += (Cos(angle) * speed)
   
   
   If x < 50 Then
      randvar = rand(1,2.3)
      angle_drift = randvar
      angle = randvar
   EndIf
   
   If x > 350 Then
      randvar = - rand(1,2.5)
      angle_drift = randvar
      angle = randvar
   EndIf
   
   If y < 50 Then
      randvar =  rand(-0.8,0.8)
      angle_drift = randvar
      angle = randvar
   EndIf
   
   If y > 350 Then
      randvar =  rand(-1,1)
      angle_drift = randvar
      angle = randvar
   EndIf
   
   If angle_drift < angle Then angle -= 0.05
   If angle_drift > angle Then angle += 0.05
   
   
   counter += 1
   
   If counter = 120 Then
      counter = 0
      angle_drift = rand (-2,2)
   EndIf
   
   
   PSet (x,y),RGB(255,0,0)
   Sleep 10
Loop Until InKey = "q"
End


Function rand(var1 As Double,var2 As double) As Double
   Return var1 + (Rnd * (var2)+var1)
End Function



Das ganze klappt noch nicht so ganz vielleicht hat der ein oder andere von euch einen Tip wie ichs anders oder besser machen könnte.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Westbeam



Anmeldungsdatum: 22.12.2009
Beiträge: 760

BeitragVerfasst am: 10.06.2012, 18:10    Titel: Antworten mit Zitat

Was funktioniert denn nicht? Bei mir funktioniert es wunderbar. zwinkern
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz