Ich frage derzeit die Position des Mauscursors mit der OnMouseMove-Funktion ab. Es klappt ja alles ganz gut, bis auf das Ruckeln, was fast immer auftritt, denn die MouseMove-Funktion ist anscheinend nicht die schnellste. Ich würde gerne zu einer Alternative wechseln, hab' aber keine Ahnung. Kann mir jemand helfen?
Mfg, Gran
_________________ Der Bump Mapping User ist nur zu faul, selbst eine Wand mit Tesselation zu erstellen
Registriert: Fr Mai 14, 2004 18:56 Beiträge: 804 Wohnort: GER/OBB/TÖL-WOR/Greiling
es gibt ein objekt namens "Mouse". und von diesem kannst du, wann immer du lustig bist, die attribute - in deinem fall den TPoint cursorpos - abfragen.
objektorientierte programmierung ist schön, nicht? *grins*
...naja, Code kann ich leider nicht (oder wenn, dann sehr umständlich und auch nur wenn unbedingt nötig) posten, aber luketheduke's Post hat mir leider nicht weitergeholfen (trotzdem danke!!), obwohl ich auf seine Methode umgestiegen bin. Es ruckelt leider immer noch, ich beschreibe mal, was so alles passiert bis zur Translation: Die Werte werden dividiert (double Variable) und der errechnete Wert direkt an glTranslate übergeben. Das Seltsame ist, dass es auch nur gelegentlich ruckelt, also erst geht es super flüssig, und plötzlich nur noch so 20 - 30 MMPS (MouseMoves per Second ), die FPS-Zahl ist aber weit darüber. Dann, nach einiger Zeit läuft es wieder flüssig und so weiter.
Mfg, Gran
_________________ Der Bump Mapping User ist nur zu faul, selbst eine Wand mit Tesselation zu erstellen
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Kann es vielleicht sein, dass deine Berechnung nicht so ganz funktioniert? Wenn du bei der Berechnung der Maus etwas verkehrt macht, dann kann es mitunter so aussehen als ob es ruckelt obwohl nur die Berechnung falsch ist.
MouseMove lediglich nur ein Aufruf einer ziemlich leeren Methoden und das ist sehr sehr schnell. Daran liegt es 100%tig nicht.
Das was du in dem MouseMove allerdings lediglich machen darfst ist deine Berechnungen durchführen und die Werte dann in Variablen schreiben. Auf diese Variablen greifst du dann in deiner Renderschleife zu. Wenn du das so gemacht hast, dann liegt der Fehler noch wo anderes und dann musst du Code raus rücken. Anderfalls können wir dir nicht helfen!
Was du noch bedenken solltest. Wenn du im OnIdle renderst und dort sehr viel zu tun hast, dann werden für den Zeitraum des Renderns keine anderen Windowsbotschaften verarbeitet. Also auch kein OnMouseMove. Evtl hängt es ja auch mit so etwas zusammen. Aber ohne Code können wir nur Raten! Und dafür ist mir meine Zeit zu schade.
wer denkt denn an sowas: Batterien der Maus schwach. Habe die Batterien jetzt ausgetauscht, läuft flüssig Habe aber jetzt ein anderes, naja, Problem kann man nicht sagen, aber es ist sehr unschön auf diese Weise: Obwohl meine Anwendung 2 dimensional ist, rendere ich nicht im Ortogonal Modus. Dementsprechend rendere ich auch das Fadenkreuz nicht im Orto Modus, weil ich denke, dass ich da später mit der Abfrage des Winkels zum Fadenkreuz (Sinus und das ganze Zeugs) bekomme, da es ja zwei verschiedene Arten von Koordinaten gibt auf diese Weise. Also rendere ich mein Fadenkreuz auf der gleichen Ebene (ok, ein klein wenig darüber, damit es alles überblendet), habe jetzt aber kleinere Probs bei der Umrechnung der Mauskoordinaten in die Position des Fadenkreuzes. Wie erwähnt, ist es 10 Einheiten vom Screen entfernt, und ich habe keine Ahnung, wie ich das rechnerisch hinbekomme, dass mein Fadenkreuz ganz rechts ist, wenn der Cursor am rechten Bildschirmrand ist.
Mfg, Gran
_________________ Der Bump Mapping User ist nur zu faul, selbst eine Wand mit Tesselation zu erstellen
Mitglieder in diesem Forum: 0 Mitglieder und 5 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.