409.93K

Programmierung. Modul 24

1.

Modul 24
Objektorientierte
Programmierung
Oliver Ziegler

2.

Eingabe (Tastatur und Maus)
• Keyboard – Abfrage
• Maus - Buttons

3.

Buttons/Keys
• Buttons der Maus und Tastatur haben
Indices (Zahlen) über die sie abgefragt
werden
• Buttons haben Zustände die einzelne
abgefragt werden können
(Down, Pressed, Up)
• Meist in der Update, um den Moment des
Drückens nicht zu verpassen

4.

Funktion vom System
• Automatische Funktionen
• Beispiel Tastaturabfrage
Frame 1
Frame 2
Update
Frame 3
Interne Funktion

5.

Button States
DOWN
PRESSED
UP
GetButtonDown
GetButton
GetButtonUp
Einmalig
Wenn nach unten
gedrückt
Jeden Frame
Während
gedrückt
Einmalig
Wenn Taste
losgelassen

6.

Maustasten
• Linke Maustaste = 0
• Rechte Maustaste = 1
• …
MyComponent
Update
0
Input
Rückgabewert == true ?
JA
GetMouse
ButtonUp
true/false
Aktion ausführen

7.

Button States
• Im Code wird nicht der State eines bestimmten
Buttons abgefragt
(Rückgabewert : Zustand )
• Sondern, ob der Button einen bestimmten State hat
(Rückgabewert : Wahr oder falsch)
if( Input.GetMouseButtonDown( 0 ) )
{ Tue_Etwas_Beim_Herunterdrücken(); }
// 0 = linke Maustaste
if( Input.GetMouseButton ( 0 ) )
{ Tue_Etwas_Immer_Wieder_Während_Gedrückt(); }
if( Input.GetMouseButtonUp ( 0 ) )
{ Tue_Etwas_Beim_Loslassen(); }

8.

Tastatur
MyComponent
Update
KeyCode
Input
Rückgabewert == true ?
JA
GetKey
true/false
Aktion ausführen

9.

KeyCode
• Ein Enumerator (Enum), der auf Zahlen verweist
• Erhöht die Lesbarkeit
Entwickler
Taste #523
GetKeyUp
Keycode
Entwickler
TASTE A
A
#34
GetKeyUp
LEERTASTE
SPACE
#246
SHIFT
#187
SHIFT

10.

Button States
• Im Code wird nicht der State eines bestimmten Buttons
abgefragt
(Rückgabewert : Zustand )
• Sondern, ob der Button einen bestimmten State hat
(Rückgabewert : Wahr oder falsch)
if( Input.KetGeyDown( KeyCode.LeftArrow ) )
{ Tue_Etwas_Beim_Herunterdrücken(); }
if(Input.KetGey ( KeyCode.LeftArrow ) )
{ Tue_Etwas_Immer_Wieder_Während_Gedrückt(); }
if(Input.KetGeyUp( KeyCode.LeftArrow ) )
{ Tue_Etwas_Beim_Loslassen(); }
English     Русский Правила