Frameunabhängig

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

Christoph

Betreff: Frameunabhängig

BeitragMo, Jan 22, 2007 15:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich will jetzt zum ersten Mal ein frameunabhängiges Programm schreiben (in 3D). Ich habe eine Kamera und ein Flugzeug, deren Geschwindigkeit sich eben an die des Rechners anpasst.

1. Ich habe eine globale Variable Gamespeed#:
Diese Var. wird am ende jedes Schleifengangs errechnet. Dabei steht Gamespeed=1 für Normalgeschwindigkeit, während Gamespeed=2 für doppelten Speed steht (also für einen langsameren PC)

Code: [AUSKLAPPEN]
Gamespeed# = 200/(Schleifenstart-milllisecs())


2. Ich multipliziere die Kamerageschwindigkeit mit Gamespeed#:
Dabei ist x#/y#/z# die Zielposition der Kamera.
Code: [AUSKLAPPEN]
positionentity Cam, entityx(Cam)+(x-Entityx(Cam))*0.1*Gamespeed, entityy(Cam)+(y-Entityy(Cam))*0.1*Gamespeed, entityz(Cam)+(z-Entityz(Cam))*0.1*Gamespeed


3. Ich multipliziere die Flugzeuggeschwindigkeit mit Gamespeed#:

Code: [AUSKLAPPEN]
moveentity Player[i]\obj, 0,0,Player[i]\speed#*Gamespeed


Trotzdem kommt die Kamera, umso langsamer der PC ist, immer näher an das Flugzeug.

Hat jemand einen Verbesserungsvorschlag?/Sieht jemand einen Fehler?

StepTiger

BeitragMo, Jan 22, 2007 16:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Indem du die Kamera normal bewegst?
Du errechnest mit sinus und cosinus die Koordinaten, an die die Kamera gesetzt werden soll. DAS kannst du auch frame-unabhängig!
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer:
AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t
Gewinner: BP Code Compo #2
Π=3.141592653589793238...<--- und das aus dem kopf Laughing
Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser.

Christoph

BeitragMo, Jan 22, 2007 20:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Das will ich aber so nicht.

Muss das irgendwie so hinbekommen.

Ich frage mich nur, warum das eine manchmal bewegt wird als das andere.

(Sin und cos sind wohl deine Freunde, nicht? Wink )

StepTiger

BeitragMo, Jan 22, 2007 21:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Verbesserungsvorschlag:
Floats

Bin mir aber nicht sicher, ob das was ändert.

Frage:
Kannst du bitte den ganzen Code posten? So hat man recht wenig Einsicht auf die hier erwähnten Variablen!

Andere Frage:
Wieso machst du es dir so verdammt umständlich? Berechnungen sind um ein Vielfaches einfacher und wesentlich präziser, da auf Dauer so immer eine Ungenauigkeit entsteht. Auch Blitz-Floats sind begrenzt!

Antwort:
Ja, Sinus und Cosinus sind meine Freunde.
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer:
AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t
Gewinner: BP Code Compo #2
Π=3.141592653589793238...<--- und das aus dem kopf Laughing
Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser.

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group