Historisch-Kulturwissenschaftliche Informationsverarbeitung Übung: Softwaretechnologie II / Visuelle Programmierung Dozent: Prof. Dr. Manfred Thaller WS 2014/2015 Robert Lee Phillips DIRECT INPUT
Was ist Direct Input? Interaktivität Informationen über angeschlossene Geräte Force-Feedback Unterstützung
Wie geht Direct Input vor? Aufteilung in Klassen: – Tastaturen – Zeigegeräte (Mäuse) – Joysticks GUID (Globally Unique ID)
Woraus bestehen Eingabegeräte? Achsen = analog, z.B. x-Achse eines Joysticks Knöpfe = digital, z.B. linke Maustaste
Wie funktioniert Direct Input? COM-System IDirectInput8 IDirectInputDevice8
Erstellen des IDirectInput8 -Objekts Benötigt #include Funktion DirectInput8Create zum Erstellen eines IDirectInput8 -Objekts
Beispielprogramm 1 Abzählen aller Geräte Werden aufgelistet über die Methode IDirectInput8::EnumDevices
Initialisierung eines Geräts Methode: IDirectInput8::CreateDevice 1. Parameter GUID-Nummer 2. Parameter Zeiger auf IDirectInputDevice8 -Objekt
Datenformat setzen Methode: IDirectInputDevice8::SetDataFormat Parameter: Zeiger auf Vorgabestrukturen
Kooperationsebene Methode: IDirectInputDevice8::setCooperativeLevel 1. Parameter: Verknüpfung mit Fenster 2. Parameter: Zugriff bestimmen
Zugriff aktivieren Methode: IDirectInputDevice8::acquire Methode: IDirectInputDevice8::Get DeviceState
Die Tastatur Keine extra definierten Strukturen 256 Bytes für 256 Tasten Das achte Bit: gedrückt oder nicht gedrückt Jede Taste erhält DIK-Konstante (DirectInputKey) Beispielprogramm 2
Die Maus c_dfDIMouse und c_dfDIMouse2 Mausachsen sind relativ Wieder Bit Nr. 8 für gedrückt/nicht gedrückt Windows-Mauszeiger unsichtbar über Kooperationsebene DISCL_EXCLUSIVE Beispielprogramm 3
Der Joystick POV-Controller Schiebregler Rz-Achse Achsen sind absolut Keine vordefinierte GUID Beispielprogramm 4
Vielen Dank für die Aufmerksamkeit!