JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=27db2751b186ed35b5deccd1bf54be46Medaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Framerate begrenzen
Gehe zu Seite Zurück  1, 2, 3  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> DirectX, OpenGL
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Michael
JLI'ler



Anmeldedatum: 20.07.2002
Beiträge: 173
Wohnort: Münster / NRW
Medaillen: Keine

BeitragVerfasst am: 10.09.2002, 15:37    Titel: Antworten mit Zitat

eine variable deklarieren, die die zeit der letzten bewegung speichert. differenz zw aktueller und letzter zeit messen und mit der pixelzahl pro sekunde, um die bewegt werden soll, multiplizieren
_________________
Es geht auch ohne Wink
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
Hasenfuß
Senior JLI'ler


Alter: 37
Anmeldedatum: 20.08.2002
Beiträge: 291

Medaillen: Keine

BeitragVerfasst am: 10.09.2002, 17:16    Titel: Antworten mit Zitat

Sieht das ganze dann in etwa so aus Question
Code:

Differenz = thisTime-lastTime;
//Bewegung
(int)x += (int)dx * Differenz;
(int)y += (int)dy * Differenz;
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Hasenfuß
Senior JLI'ler


Alter: 37
Anmeldedatum: 20.08.2002
Beiträge: 291

Medaillen: Keine

BeitragVerfasst am: 11.09.2002, 08:32    Titel: Antworten mit Zitat

Also so funktionierts schonmal nicht Sad Wahrscheinlich weil ich dieses ...pro Sekunde... nicht beachtet hab, aber wie ist des genau gemeint?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Kampfhund
Super JLI'ler


Alter: 42
Anmeldedatum: 20.07.2002
Beiträge: 408

Medaillen: Keine

BeitragVerfasst am: 11.09.2002, 13:09    Titel: Antworten mit Zitat

hm, das müsste doch eigentlich funktionieren.

VergangeneZeit = Jetzt - Vorher;

x += GeschwindigkeitProSec * VergangeneZeit;
y += ....

allerdings muss VergangeneZeit dann in sec sein und du musst floats verwenden ansonsten bewegt es sich nicht.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Gast









BeitragVerfasst am: 11.09.2002, 15:07    Titel: Antworten mit Zitat

Achso natürlich!!
Hab bis jetzt immer int und 1000stel Sekunden benutzt. Probiers gleich mal so aus. Smile
Nach oben
Hasenfuß
Senior JLI'ler


Alter: 37
Anmeldedatum: 20.08.2002
Beiträge: 291

Medaillen: Keine

BeitragVerfasst am: 11.09.2002, 15:09    Titel: Antworten mit Zitat

Ups.... wurde gar nich angemeldet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Hasenfuß
Senior JLI'ler


Alter: 37
Anmeldedatum: 20.08.2002
Beiträge: 291

Medaillen: Keine

BeitragVerfasst am: 11.09.2002, 15:33    Titel: Antworten mit Zitat

Also meine Movefunktion sieht jetzt so aus und da läufts total langsam:
Code:

void Sprite::Move(float SpriteDX,float SpriteDY)
{
                thisTime = (timeGetTime()/1000);
if(lastTime!=0)
{
Abstand = thisTime - lastTime;
}
lastTime = (timeGetTime()/1000);
x += SpriteDX * Abstand;
y += SpriteDY * Abstand;
}


Muss ich mit den Pixelangaben SpriteDX und SpriteDY noch irgendwas machen? Oder muss ich trotz dieser Funktion noch ne Framerate festlegen?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Kampfhund
Super JLI'ler


Alter: 42
Anmeldedatum: 20.07.2002
Beiträge: 408

Medaillen: Keine

BeitragVerfasst am: 11.09.2002, 16:02    Titel: Antworten mit Zitat

was liefert timeGetTime zurück? Sekunden oder millisekunden?

Wenns zu langsam ist dann stell die geschwindigkeit n bischen höher, über SpriteDX und SpriteDY.

Eine Framebremse brauchst du eigentlich nicht, du kannst aber einen framecounter einbauen um zu gucken ob das prog so lahm läuft oder ob du nur kleine geschwindigkeiten eingestellt hast.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Hasenfuß
Senior JLI'ler


Alter: 37
Anmeldedatum: 20.08.2002
Beiträge: 291

Medaillen: Keine

BeitragVerfasst am: 11.09.2002, 16:26    Titel: Antworten mit Zitat

Frames hab ich normal(75). Aber es läuft nicht richtig langsam und flüssig, sondern stockend.
Aber ich glaub ich benutz die Funktion falsch, weil der Stockt im Sekundentakt(Bewegung um 3 Pixel(SpriteDX/DY),eine Sekunde vergeht, nächste Bewegung).
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Kampfhund
Super JLI'ler


Alter: 42
Anmeldedatum: 20.07.2002
Beiträge: 408

Medaillen: Keine

BeitragVerfasst am: 11.09.2002, 16:42    Titel: Antworten mit Zitat

meinst du , dass das objekt jede sekunde um 3 pixel weiter springt?

hast du für x und y auch floats verwendet?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Hasenfuß
Senior JLI'ler


Alter: 37
Anmeldedatum: 20.08.2002
Beiträge: 291

Medaillen: Keine

BeitragVerfasst am: 11.09.2002, 19:15    Titel: Antworten mit Zitat

Hab ich jetzt gemacht aber funktioniert immer noch nicht.(immer noch jede Sekunde 3 Pixel

P.S. Muss ich bei float-Variablen eigentlich immer das .0f hinzufügen?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Hasenfuß
Senior JLI'ler


Alter: 37
Anmeldedatum: 20.08.2002
Beiträge: 291

Medaillen: Keine

BeitragVerfasst am: 11.09.2002, 19:29    Titel: Antworten mit Zitat

Ich glaub ich hab den Fehler gefunden:
Die Koordinaten sind zwar float aber die Drawfunktion arbeitet ja mit BltFast und da sind die Parameter int. Kann des daran liegen?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Hazel
JLI MVP
JLI MVP


Alter: 40
Anmeldedatum: 19.07.2002
Beiträge: 1761

Medaillen: Keine

BeitragVerfasst am: 11.09.2002, 19:33    Titel: Antworten mit Zitat

Nein, spätestens beim Blitten musst du die Werte runden.
Aber sag mal, was gibst du für die beiden Deltas an?
_________________
*click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Hasenfuß
Senior JLI'ler


Alter: 37
Anmeldedatum: 20.08.2002
Beiträge: 291

Medaillen: Keine

BeitragVerfasst am: 11.09.2002, 19:35    Titel: Antworten mit Zitat

Deltas?! Was ist das Question Question
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Hazel
JLI MVP
JLI MVP


Alter: 40
Anmeldedatum: 19.07.2002
Beiträge: 1761

Medaillen: Keine

BeitragVerfasst am: 12.09.2002, 15:14    Titel: Antworten mit Zitat

Du nennst deine Variablen SpriteDX und SpriteDY ohne zu wissen was das heißt? O.o
DX = Delta X ... das solltest du aus dem Matheunterricht kennen -> Steigung bei linearen Funktionen.
_________________
*click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> DirectX, OpenGL Alle Zeiten sind GMT
Gehe zu Seite Zurück  1, 2, 3  Weiter
Seite 2 von 3

 
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.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum