Timebased Movement (Erledigt !)

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

Bura.Tino

Betreff: Timebased Movement (Erledigt !)

BeitragDi, Aug 14, 2007 21:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Servus.

Bin grad dabei ein bissl zu proggen und damit das auf allen Rechnern nahezu gleichschnell läuft, hab ich die Bewegung zeitgesteuert gemacht.
Ich hab dabei allerdings das Problem, daß sich die Variable 'Zeit' (Float) ständig verändert. Sie liegt bei mir im Schnitt zwischen -7 und +49. Das hat zur Folge, daß sich mein bewegendes Objekt mal ein bissl schneller und mal ein bissl langsamer fortbewegt. Es stockt also.

Diese Variable wird wie folgt berechnet:

Code: [AUSKLAPPEN]

Global Zeit#=0.0

While Not KeyHit(1)

  Zeit#=(MilliSecs()-Timer#)
  Timer#=MilliSecs()

   ;Programmablauf...

  UpdateWorld
  RenderWorld
 Flip
Wend


Ich hab die Aktualisierung der Variable 'Zeit' testweise auch in die Abfrage für den FPS-Counter eingebaut damit diese nur jede Sekunde aktualisiert wird, aber dann wirds noch schlimmer. Manchmal schleicht das Objekt vor sich hin und im nächsten Augenblick rast es.

Genommen habe ich eine Auflösung von 800x600 und 75Hz. Mein Monitor schafft maximal 85Hz, aber da ist es auch nicht anders.

Hat jemand eine Idee wieso diese Variable so stark variiert und wie ich das Problem am Besten lösen könnte ? Rolling Eyes

VG, Bura.Tino
Rolling Eyes <- Ich liebe dieses Smilie ! Very Happy
  • Zuletzt bearbeitet von Bura.Tino am Mo, Aug 27, 2007 6:45, insgesamt einmal bearbeitet

Xeres

Moderator

BeitragDi, Aug 14, 2007 22:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Liegt vielleicht an Berechnungsfehlern die mit Floats auftreten können... jedenfalls sollte es funktionieren wenn du einfach Ints verwendest, zumal Millisecs() meines Wissens auch nur Ganzzahlen zurückgibt.
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

Bura.Tino

BeitragDi, Aug 14, 2007 22:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Hm. Ich hab die mal von Float auf Integer umgestellt und hab das Gefühl, als wär das Ruckeln weg. Kann ich nur nicht ganz verstehen wieso, weil die Floatvariable auch vorher schon keine Kommazahlen geliefert hat, also nach dem Komma waren eh immer Nullen.

Könntest Du das eventuell mal bei Dir am Rechner probieren (Oder jeder andere der das liest) ? Also so quasi als Vor-Vor-Alpha-Versions-Tester. Laughing
Rolling Eyes <- Ich liebe dieses Smilie ! Very Happy
 

Dreamora

BeitragMi, Aug 15, 2007 9:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Das Problem das man häufig vergisst ist das int / int eine intdivision gibt und das resultat darum falsch ist.
Muss dann entweder int / float oder float / int sein damits ne float division ist.

vielleicht hat das dein problem ausgelöst.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Bura.Tino

BeitragFr, Aug 17, 2007 18:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Keine Ahnung ob dem so war. Jedenfalls geht es jetzt und das ist auch gut so. Smile
Rolling Eyes <- Ich liebe dieses Smilie ! Very Happy

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group