FrameSpeed

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

ToeB

Betreff: FrameSpeed

BeitragMo, Dez 07, 2009 15:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Also ich habe in meinem Spiel (TankWar) jetzt FrameSpeed eingebaut. Das ist eine Var die einen wert speichert, wenn dieser 1 ist ist es normal schnell, wenn es größer wird wird es langsamer. Also ein Faktor. Wenn ich normal alles um 10 erhöhe, und die Geschindigkeit um die Hälfte runter geht (2), dann wird alles *2 genommen, also 20. Viele kennen das ja. Jetzt habe ich aber ein Problem. Ich verringer den Speed immer um 0.98 (also immer den Speed mit 0.98 multiplizieren). Wie baue ich dort jetzt den Fakor mit ein ? Ich mein wenn ich mal neme dann wird es ja nicht verringert sondern dazugezählt ?

mfg ToeB
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art
SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek
Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt!

ZaP

BeitragMo, Dez 07, 2009 15:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Das Problem hatte ich mit meinem Projekt (Partikel Alphawerte), ich habe es so gelöst, dass ich einfach von (in Deinem Fall) Speed etwas subtrahiert hab. Also etwa Speed = Speed - (0.02 * Frametime), das ist zwar linear, aber man merkt den Unterschied kaum Wink
Starfare: Worklog, Website (download)

ToeB

BeitragMo, Dez 07, 2009 15:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja das Problem ist nur, das Speed + oder - seinen kann... dann muss ich halt ne abfrage drann hängen Wink

Außerdem klappt das auch nicht, weil wenn ich den Speed um 0.01 hochzähle gleich wieder 0.02 abgezogen werden (Beispiel), das heißt der würde rükckwärts fahren.

Danke trotzdem... hat keiner sonst eine Idee ?

mfg ToeB
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art
SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek
Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt!

mpmxyz

BeitragMo, Dez 07, 2009 17:55
Antworten mit Zitat
Benutzer-Profile anzeigen
exponentiale Abnahme
Code: [AUSKLAPPEN]
Speed=Speed*Faktor^ZeitFaktor

oder
lineare Abnahme
BlitzBasic: [AUSKLAPPEN]
SpeedX#
SpeedY#
...
Speed#=Sqr(SpeedX*SpeedX+SpeedY*SpeedY);Betrag der Geschwindigkeit

RichtungX#=SpeedX/Speed;normalisierter Geschwindigkeitsvektor
RichtungY#=SpeedY/Speed

Speed=Speed-Bremsbeschleunigung# ;Betrag verringern
If Speed#<0 Then Speed#=0 ;Richtungsänderungen aber vermeiden
SpeedX=RichtungX*Speed
SpeedY=RichtungY*Speed


Zum ersten Beispiel kenne ich keine 100%ig genaue Berechnung der Bewegung.
Die Ungenauigkeiten sollten aber minimal sein.

Zum zweiten Beispiel habe ich mir mal etwas ausgedacht gehabt:
BlitzBasic: [AUSKLAPPEN]
ObjX ;Position in "Einheiten"
ObjXs ;Geschwindigkeit in Einheiten pro s
ObjXAcc ;Beschleunigung in Einheiten pro s²
DeltaTFk# ;Vergangene Zeit seit dem letzten Frame in s (dein Faktor)

;Bewegung
ObjX=ObjX+ObjXs*DeltaTFk+ObjXAcc*0.5*DeltaTFk*DeltaTFk
ObjY=ObjY+ObjYs*DeltaTFk+ObjYAcc*0.5*DeltaTFk*DeltaTFk

ObjXs=ObjXs+XAcc*DeltaTFk
ObjYs=ObjYs+YAcc*DeltaTFk


mfG
mpmxyz
Moin Moin!
Projekte: DBPC CodeCruncher Mandelbrot-Renderer

ToeB

BeitragMo, Dez 07, 2009 18:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke das mit dem ^FrameSpeed klappt gut Wink

mfg ToeB
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art
SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek
Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt!

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group