Hallo schon wieder. In letzter Zeit muss ich mich des öfteren Fragen, was die Leute bei Microsoft sich eigentlich dabei denken, irgendwelche APIs zu entwickeln und diese dann nicht ordentlich zu dokumentieren. Dieses mal ist es DirectInput. Bei der Tastatur blicke ich noch durch, weil es da noch einigermaßen logisch ist, aber bei der Maus bin ich absolut überfordert. Wenn ich die maustasten abfrage, dann bekomme ich nur ein Boolean-Array zurück, auf MSDN ist das nur als Button1 ... ButtonX besch…
@thefiloe So sieht das in SharpDX leider nicht ganz aus. Da gibts MouseState.Buttons (ein bool-Array) und ein MouseOffset-Enum (mit den Werten Button0 bis Button7 sowie X, Y und Z). Kann ich also MouseState.Buttons[Mouseoffset.Button0] schreiben, um die linke Maustaste abzufragen?
Vielen herzlichen Dank. Ich hätte dann noch ne Frage, und zwar hab ich bei meiner Suche irgendwo gelesen, die Koordinaten wären relativ. Stimmt das? Und wenn ja, wie komme ich dann an die absoluten Koordinaten? Ich brauche ja dann zumindest du Startkoordinaten, danach kann ich immer die relativen dazurechnen. Und wie habe ich Z auszuwerten? Ist das auch so, dass ein "Tick" als 120 dargestellt wird?
Passt schon, ich hab noch mal ein bisschen weitergesucht und die Koordinaten sind wohl tatsächlich relativ. Also es wird immer nur zurückgegeben, wie sich der Cursor seit dem letzten Aufruf bewegt hat. Für die Absolutposition benutze ich jetzt einfach Cursor.Position, ich sehe gar nicht ein, warum ich es mir absichtlich schwer machen sollte.
Ja natürlich, aber dann müsste ich trotzdem zu Beginn die absolute Position abfragen. Ich habs jetzt sowieso so geregelt, dass beides zur Verfügung gestellt wird.
Den Cursor clippe ich nur im Vollbildmodus, nicht im Fenstermodus. Es gibt keinen Grund, in den Fenstermodus zu gehen, wenn der Cursor dann trotzdem in dem Fenster festhängt.
Ich verstehs immer noch nicht, sorry. Selbst wenn ich den Cursor in die Mitte setzt, muss ich doch zu Beginn trotzdem die Absolutposition abfragen, nur, dass ich diese halt dann selbst festlege. Aber ich halte es sowieso für keine gute Idee, einfach so den Cursor irgendwohin zu setzen.
Dann erklär mir doch bitte einfach mal: wie kann ich Bestimmen, wo der Cursor sich gerade befindet, wenn ich ein frei bewegliches Fenster habe und nur relative Bewegungen empfange. Und sei bitte nachsichtig, ich bin in solchen Sachen absoluter Noob (versuchs mir ja gerade erst beizubringen).
Hm, nur wie definiere ich "Menümodus"? Das ist ja alles für GameUtils, und die Engine weiß ja nicht, wofür sie benutzt wird. Was für eine Art Spiel es ist, ob es nun FullScreen oder Windowed ist und ob der Cursor ins Fenster geclippt wird oder nicht, weiß die Engine nicht. Oder sollte ich das dann noch stärker verknüpfen, also dass wirklich die gesamte Cursorsteuerung von der Engine geregelt wird?
Also ich würde gerne einfach mal bei meinem jetzigen Rendering-System bleiben, wos nur ein IRenderable-Interface gibt und gut ist. Kannst du dir ja im Thread ansehen. Menüelemente sollen später noch kommen, aber ich brauche zuerst mal die Input-Klassen.