Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

31

07.08.2010, 19:40

gegen das abrauchen der cpu hilft ein aufruf von sf::Sleep(0.f); in der hauptschleife.
Eine Millisekunde muss schon drin sein, sonst bringt das nichts. ;)

Was hat die Framerate mit Kontrolle zu tun? Der einzigste Sinn die zu limitieren is damit die CPU nicht abbraucht -> Vsync
Mit Vsync verhinderst du das Flackern im Vollbild bei über 60hz
stɪl traɪ tuː θɪŋk ˈpɒzətɪv

Mastermind

unregistriert

32

07.08.2010, 19:41

Ach und ich dachte immer gegen das Abrauchen der CPU bringt man einen Lüfter darauf an.

BurningWave

Alter Hase

Beiträge: 1 106

Wohnort: Filderstadt/Konstanz

Beruf: Student

  • Private Nachricht senden

33

07.08.2010, 19:58

Wobei VSync niemand braucht, da sowieso nichts flackert ;) - und seit wann raucht ne CPU ab, wenn das Programm zu schnell läuft? Das Betriebssystem regelt solche Sachen automatisch...

CBenni::O

1x Contest-Sieger

Beiträge: 1 145

Wohnort: Stuttgart

  • Private Nachricht senden

34

07.08.2010, 20:08

Wobei VSync niemand braucht, da sowieso nichts flackert ;)


Kommt drauf an... Ich hatte es schon, dass bei (nicht professionellen) Spielen immer Wieder ein Knick in der Optig sichtbar wurde...

mfg CBenni::O
Ein Mitglied der VEGeiCoUndGraSonMaWiGeS Bewegung.
42!
Aufräumen kann jeder, nur das Genie überblickt das Chaos!
Metal will never die!
1. Sppro Gamecontest - mein Beitrag

35

07.08.2010, 20:19

Wobei VSync niemand braucht, da sowieso nichts flackert ;) - und seit wann raucht ne CPU ab, wenn das Programm zu schnell läuft? Das Betriebssystem regelt solche Sachen automatisch...
Bei mir auf 1280x800 (75hz im Normalfall) merkt man das SEHR stark. Das sieht durch Vsync alles sehr viel flüssiger und schöner aus.

Wenn das Programm nicht limitiert wird, wird mein Rechner so laut, das glaubst du gar nicht. ;)
Das meint idontknow wohl damit. Und sowas ist extrem nervig, und bei 2D-Spielen dazu noch unnötig.
stɪl traɪ tuː θɪŋk ˈpɒzətɪv

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Wollnashorn« (07.08.2010, 20:26)


Errschaffer

Alter Hase

  • »Errschaffer« ist der Autor dieses Themas

Beiträge: 865

Wohnort: Frankfurt

  • Private Nachricht senden

36

07.08.2010, 22:42

Ob es noch funktioniert, wenn auf einem Computer die 60FPS nicht erreicht werden bezweifle ich... Überprüfe am besten deine Berechnungen alle noch mal.


Ich finde aber keinen Fehler. Bei meinen SDL Spielen hab ich es auch so gemacht (ohne Framelimit) und kann es daher überhaupt nicht verstehen.
Naja ich werde weiter versuchen den eigentlichen Fehler zu finden , belasse es aber erstmal so.

Danke an alle.

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

37

07.08.2010, 23:12

gegen das abrauchen der cpu hilft ein aufruf von sf::Sleep(0.f); in der hauptschleife.
Eine Millisekunde muss schon drin sein, sonst bringt das nichts. ;)

doch. der thread gibt den nicht benötigten teil der zeitscheibe ab ;)

Zitat

If you specify 0 milliseconds, the thread will relinquish the remainder of its time slice but remain ready.

die ursache für die langsame bewegung war vermutlich ein rundungsfehler. sobald du etwas mehr als ein sprite zeichnest sollte das problem sich selbst lösen^^

gegen die lautstärke des rechners bei hoher leistung hilft ein gutes lukü-system und ein gutes gehäuse. wenn man kann sollte man sich sowieso ne pcgames hardware kaufen und den rechner selbst zusammenstellen und -bauen.
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

idontknow

unregistriert

38

08.08.2010, 00:45

Ich weiß was Vsync ist und der PC rattert eben bei einem simplen Grafikprogramm auf einer unnötig hohen Geschwindigkeit durch wenn man keien feste Framerate hat. daher entweder Vsync anmachen (was die einfachste Lößung wäre) oder eben ne Framerate festlegen, die aktuelle Framerate berechnen und dann eben die restliche zeit sleepen, ja alles nicht so wild.

Aber wie gesagt: wenn SFML mit 2 Windows und Vsync nicht klar kommt is daran sicher nicht Vsync schuld :O

39

08.08.2010, 06:04

doch. der thread gibt den nicht benötigten teil der zeitscheibe ab ;)
Achso, ok, ich habs in einer leeren Schleife probiert

gegen die lautstärke des rechners bei hoher leistung hilft ein gutes lukü-system und ein gutes gehäuse. wenn man kann sollte man sich sowieso ne pcgames hardware kaufen und den rechner selbst zusammenstellen und -bauen.
Ich hab mir den Rechner selbst zusammengebaut, und auch ein relativ gutes Gehäuse mit externen Lüfter. Aber gegen die Lautstärke einer HD4870 bei Volllast kannst du nichts machen. ;)
Im Normalfall kommt es ja auch nur bei Spielen wie GTA IV vor, wo dann jeder Komponente viel abverlangt wird. ^^ Oder eben, wenn jemand zu faul war die Framerate zu limitieren.

Aber wie gesagt: wenn SFML mit 2 Windows und Vsync nicht klar kommt is daran sicher nicht Vsync schuld :O
Das ist wahrscheinlich nur, wenn die Anwendung zwei mal an ist, denk ich... Müsste man mal ausprobieren.
stɪl traɪ tuː θɪŋk ˈpɒzətɪv

40

08.08.2010, 09:51

Man sollte die Framerate eh in beide Richtungen begrenzen. Ist die Framerate sehr hoch, muss sich jedes Objekt pro Frame um einen sehr kleinen Schritt bewegen, da floats nur endliche Genauigkeit haben, addieren sich viele kleine Fehler zu einem großen.
Ist die Framerate sehr hoch, kann man z.B. bei der Kollisionserkennung Probleme bekommen, weil das Objekt im ersten Schritt vor der Mauer ist und im nächsten schon komplett dahinter. Oder weil ein Counter runter läuft, wann der Spieler das nächste mal zuschlagen darf, der Schritt aber so groß ist, dass er in dieser Zeit 2 mal hätte zuschlagen müssen.
Lieber dumm fragen, als dumm bleiben!

Werbeanzeige