Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Nitroxis
Anmeldungsdatum: 27.02.2008 Beiträge: 300 Wohnort: Irgendwo...
|
Verfasst am: 25.11.2008, 15:00 Titel: FPS Konstant halten |
|
|
Hi!
Ich schreibe gerade ein Spiel. Ich habe in der Do-Loop-Schleife ein Sleep 10
Wie kann ich die FPS Konstant bei ca. 60 halten. Ich muss ja dafür den Wert beim Sleep ändern, aber wie kann ich den so ändern, dass das Spiel bei 60 FPS bleibt und nicht aufeinmal schneller wird? |
|
Nach oben |
|
 |
The_Muh aka Mark Aroni

Anmeldungsdatum: 11.09.2006 Beiträge: 718
|
Verfasst am: 25.11.2008, 16:29 Titel: |
|
|
So sinds nen bissel mehr als 60 FPS, das ", 1" sagt sleep das es wirklich 16 ms warten soll und nich bei tastendruck die pause unterbricht.
je nach rechenaufwand zwischen 2 pausen würde ich den sleep weiter rabsetzen. _________________ // nicht mehr aktiv // |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 25.11.2008, 17:10 Titel: |
|
|
ganz schlecht. GAAAANZ schlecht. Damit hast du aller, allerhöchstens 60fps.
Es gibt an sich 2 Möglichkeiten:
1.
- Starttimer setzen
- Alle relevanten Befehle ausführen
- Warten, bis 17 msec vergangen sind (falls mehr zeit vergangen ist, evtl frameskipping)
ODER (besser):
- Ein Thread erstellen, der Variablen berechnet
- Ein Thread erstellen, der das Bild zeichnet _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1876 Wohnort: D59192
|
Verfasst am: 25.11.2008, 19:08 Titel: |
|
|
Hi,
diese fps zählerei ist eigentlich für die Katz.
Wieviel Bildschirmaktualisierungen stattfinden wird durch deine Grafikkarte und Monitor bestimmt.
Hier: SCREENINFO sagt dir das.
Die Verzögerung mit Sleep ist wirklich die schlechteste Möglichkeit, da Sleep unter 100ms sehr ungenau ist.
Stormy hat das mal in einem Tutorial sehr gut beschrieben.
Dort beschreibt er auch wie man trotzdem gleichmäßige Bewegungen hinbekommt. _________________ Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater. |
|
Nach oben |
|
 |
Nitroxis
Anmeldungsdatum: 27.02.2008 Beiträge: 300 Wohnort: Irgendwo...
|
Verfasst am: 25.11.2008, 21:03 Titel: |
|
|
Danke, dass Tutorial hat mir sehr weitergeholfen (Ich habe sonst immer ScreenCopy benutzt, Screen(Un)Lock ist aber viel einfacher und schneller)
Ich habe da aber noch eine Frage, und zwar zu Joysticks: Wie kann ich den Joystick vibrieren lassen, wenn es vom Joystick unterstützt wird? |
|
Nach oben |
|
 |
darkinsanity aka sts

Anmeldungsdatum: 01.11.2006 Beiträge: 456
|
Verfasst am: 26.11.2008, 13:07 Titel: |
|
|
Möglicherweise hilft dir dieser Artikel im MSDN: "http://msdn.microsoft.com/en-us/library/bb153254(VS.85).aspx"
Das behandelt aber nur wie es mit DirectX 9 geht. _________________ Traue keinem Computer, den du nicht aus dem Fenster werfen kannst -- Steve Wozniak |
|
Nach oben |
|
 |
Nitroxis
Anmeldungsdatum: 27.02.2008 Beiträge: 300 Wohnort: Irgendwo...
|
Verfasst am: 26.11.2008, 14:14 Titel: |
|
|
OK!
Kann man eigentlich die CPU Auslastung des eigenen Programmes abfragen? |
|
Nach oben |
|
 |
OneCypher
Anmeldungsdatum: 23.09.2007 Beiträge: 802
|
Verfasst am: 26.11.2008, 14:54 Titel: |
|
|
Für CPU-Auslastungen würd ich einfach den Windows Taskmanager befragen. Unter Linux mit top.
Wie sehr ein Programm das System Auslastet kann man eigentlich pi-mal-daumen selbst bestimmen.
beispiel:
Code: |
do
locate 1,1:print "Hallo Welt!"
loop
|
Lastet meine CPU (Intel Core2Duo 1.86GHz) zu 10% aus.
Während:
Code: |
do
locate 1,1:print "Hallo Welt!"
sleep 1
loop
|
meine CPU zu 0% auslastet.
Soll heissen: Sobald man in eine Schleife geht, die dauerhaft irgendwelche Werte Abfragt oder auf irgendwelche Events/Ereignisse wartet, dann sollte man dem System mit "sleep 1" die möglichkeit geben sich um sich selbst zu kümmern.
Belastet man innerhalb einer Schleife das Grafik/Rechensystem stark wird die cpu natürlich nicht so viel zeit pro Schleifenzyklus haben um sich selbst zu kümmern. Dann steigt die CPU auslastung natürlich wieder...
[/code] |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 26.11.2008, 14:56 Titel: |
|
|
wozu...? braucht doch nur rechenzeit
es gibt bestimmt per winapi (google ist dein freund, vbarchiv.net auch), aber das ist ein typisches "schaut mal wie toll ich programmieren kann"-feature, das für den programmierer natürlich ultrageil ist (vor allem wenn dann noch die auslastung mit supertollen 3d-effekten versehen im spiel angezeigt wird!), für den benutzer jedoch völlig belanglos ist. _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
|