Vorwort
Willkommen zum dritten Teil des Blogs. Es handelt sich um ein kleines Programmiertutorial. Am Ende dieses Tutorials ist der Grundstein für den Motion-Capture Teil der Anleitung gelegt.
Was machen wir heute:
- Wiederholung: Basisbefehle in GlovePie
- Analyse des Spiels
- Umsetzen in Codezeilen
Um diesen Blog nachvollziehen zu können, sind die letzten beiden Blogs wichtig. Deshalb hier die Links: erster Blog zweiter Blog
Bei Desinteresse oder chronischer Faulheit kann dieser Teil des Blogs übersprungen werden. Ihr könnt einfach zur unten stehenden Download-Sektion gehen.
Wiederholung: Basisbefehle in GlovePie
Ich nehme an, dass ihr die Wiimote mit dem Computer verbunden und GlovePie geöffnet habt. Nun beginne ich mit der Wiederholung.
Tasten können gedrückt oder nicht gedrückt sein. Also auf “Ja” oder “Nein” bzw. auf “1” oder “0” stehen. Viele Codezeilen des heutigen Blogs haben folgende Form:
(Mir wird etwas zugewiesen) = (Ich weise der linken Seite etwas zu)
Was links vom “=” steht, nimmt den Wert, also die 0 oder 1 von dem an, was rechts vom “=” steht.
wiimote.A
ist 1, wenn man die A-Taste der Wiimote drückt oder 0, wenn die A-Taste der Wiimote nicht gedrückt ist.
(Mir wird etwas zugewiesen) = wiimote.A
bedeutet also, dass der linken Seite 1 zugeordnet wird, wenn die A-Taste der Wiimote gedrückt wird und 0 zugeordnet, wenn die A-Taste der Wiimote nicht gedrückt wird.
Wir wollen, dass die Tastatur-A-Taste genau dann gedrückt ist, wenn die Wiimote-A-Taste gedrückt ist. Da Tastatur auf Englisch “keyboard” heißt:
keyboard.A = wiimote.A
Dies bedeutet, dass der PC “denkt”, dass die Tastatur-A-Taste genau dann gedrückt ist, wenn die Wiimote-A-Taste gedrückt ist.
Analyse des Spiels:
Im Folgenden wird aufgelistet, welche Befehle im Spiel Bioshock vorkommen. Jeder Befehl wird durch das Drücken einer Tastatur-Taste oder einer Maus-Taste ausgelöst. Diese können natürlich unter „Steuerung“ innerhalb des Spiels geändert werden. Jeder dieser Befehle soll einer WiiMote-Taste zugeordnet werden. Folgende Tabelle listet alle diese Informationen auf:
Tabelle 1
Befehl | Tastaturtaste | WiiMote-Knopf |
Springen | Leerzeichen (Space) | Nunchuk Z |
Wechseln zwischen Waffe und Plasmiden | Rechte Maustaste | Wiimote B |
Waffen- /Plasmidwechsel | Mausrad (Hier nur oben) | Wiimote 1 |
Ducken/ Nicht Ducken | C | Wiimote 2 |
Einsammeln von Gegenständen | E | Wiimote Minus |
Menü | Esc (Escape) | Wiimote Plus |
Hacken | V | Wiimote Analogkreuz Rechts |
Karte | M | Wiimote Analogkreuz Unten |
Verbandskasten benutzen | F | Wiimote Analogkreuz Links |
Tagebucheintrag abspielen | T | Wiimote Analogkreuz Oben |
Tabelle 2
Gehen | W / S | Laufband und Nunchuck Analogstick Vorne / Hinten |
Drehen | A / D | Nunchuck Analogstick Links / Rechts |
Schlagen / Schießen | Linke Maustaste | Schlagen mit der Wiimote, A Knopf, … |
Menünavigation | Mausbewegung | Wiimote Analogkreuz?Schon Belegt |
Nach der Einführung kann man den Eindruck haben, dass die Befehle der obigen Tabelle einfacher umsetzbar sind, als die Befehle der unteren Tabelle. Warum? Alle Befehle der obige Tabelle lassen sich mit dem An-Aus-Schema der obigen Wiederholung umsetzen. Die Befehle der unteren Tabelle benötigen noch andere Codezeilen. Deshalb beginnen wir mit der obigen Tabelle.
Alle Befehle der unteren Tabelle werden im nächsten Blogbeitrag besprochen.
Damit das Skript auch soweit funktionieren kann, müssen innerhalb des Spiels die Tastenbelegung wie hier angegeben gewählt werden! Ihr solltet das Skript noch ohne die Oculus testen.
Umsetzen in Codezeilen:
Der erste Befehl ist „Springen“. Ist das Spiel richtig eingestellt, so springt der Charakter, wenn man die Leerzeichen-Taste drückt. Dem Computer soll vorgegaukelt werden, dass die Leerzeichen-Taste gedrückt wird, genau dann wenn beim Nunchuck die Z-Taste gedrückt wurde.
Entsprechend ergibt sich folgende Codezeile:
keyboard.Space = wiimote.Nunchuk.Z
Dies bedeutet, dass der PC “denkt”, dass die Tastatur-Leerzeichen-Taste genau dann gedrückt ist, wenn die Nunchuk-Z-Taste gedrückt ist.
Auf die Schreibweise wiimote.Nunchuck.? möchte ich nicht weiter eingehen, da es zu weit führt. Allen Kenner objektorientierter Programmiersprachen sei gesagt, dass „Nunchuck“ ein Child der Wiimote-Klasse ist. Allen anderen sei gesagt:
Immer wenn der Nunchuck gebraucht wird, kann man nicht Nunchuk.? schreiben, sondern muss wiimote.Nunchuk.? schreiben.
Entsprechend lauten die weiteren Codezeilen für die Befehle der ersten Tabelle:
keyboard.Space = wiimote.Nunchuk
mouse.RightButton = wiimote.B
mouse.WheelUp = wiimote.One
keyboard.C = wiimote.Two
keyboard.E = wiimote.Minus
keyboard.Esc = wiimote.Plus
keyboard.V = wiimote.Right
keyboard.M = wiimote.Down
keyboard.F = wiimote.Left
keyboard.T = wiimote.Up
Downloadsektion:
Das Skript welches ihr euch „hier“ runterladen könnt, könnt ihr in GlovePie laden und starten. Es ist mit Kommentaren versehen, welche die Funktionsweisen beschreiben.