Designfrage: Input
-
Hi,
ich habe folgendes Problem:
Wenn ich meinen Input (per SDL) in jedem Frame hole, ist das ja schön und gut, aber, wie wahrscheinlich jeder schonmal gemerkt hat) ist diese Eingabe doch etwas zu schnell ^^. Also habe ich mir gedacht, ich bastle mir mit nem Timer das ganze so, dass die Eingabe nur registriert wird, wenn eine bestimmte Zeit vergangen ist (z.B. 33 ms). Nunja, schön und gut, man hat die Möglichkeit Tasten gescheit zu drücken ok - aber was mache ich mit der Mauseingabe? Also ein Mausklick. Behandle ich diesen genauso, wird vielleicht nicht genügend Input angenommem. Also gibt es denke ich mehrer Möglichkeiten:
-Der Funktion zum Prüfen einer Maustaste einen Parameter geben, mit dem man die Zeiteinschränkung umgehen kann
-Die Zeitprüfung ganz rauslassen
-Jeweils eine Funktion für beide MöglichkeitenWas denkt ihr welche Möglichkeit die beste ist?
Oder eine ganz andere Lösung?
Danke
MfG
Irrenhaus
-
Irrenhaus schrieb:
ist diese Eingabe doch etwas zu schnell ^^
Bitte genauer erklären... warum zu schnell?
Meinst Du für Texteingabe oder für Steuerung?
-
In erster Linie für Texteingabe.
Außerdem z.B. wenn ich etwas durch einen Tastendruck auf meinetwegen Enter umändere, aber dem Benutzer die Möglichkeit lassen will die Taste gedrückt zu halten und nicht immer wieder neu zu drücken... (z.B. Eintrage in einer Auswahlbox durchlaufen - Taste gedrückt lassen und die Makierung der Einträge wandert)MfG
-
Sehe nicht, wo da deine fps was mit zu tun hat. Wenn du nur 5 Einträge pro s runterscrollen willst, dann musst du es machen, egal wieviele Frames die Taste gedrückt wurde.
Bye, TGGC (Wähle deine Helden)
-
Mein Problem besteht darin, dass ich in einer Testapplikation der Engine zu der das ganze gehört, auf einem Feld zuerst Punkte setze, diese aber mit einem Mausklick auf selbige wieder "wegmachen" kann. Das ist kein Problem und es ist auch kein Problem das so zu machen, dass es nur alle 5s geht.
Aber ich dachte mir es ist blöd, wenn das in der späteren Applikation drin ist, dass man das doch gleich in der Engine lösen kann.
Vielleicht gehörts auch nicht rein, ich bin noch am Erfahrungen sammeln ums mal so auszudrückenMfG
-
Warum reagierst Du nicht ganz einfach nur auf das Ereignis "Taste heruntergedrückt" (also wenn die Taste gerade gedrückt wurde und im vorherigen Moment noch nicht gedrückt war)?
Das geht z.B. mit WM_KEYDOWN oder WM_LBUTTONDOWN.
-
Hm, ok so werd ichs mal machen...
Danke sehrMfG