prev up inhalt next


8.5 Interaktion

VRML97 bietet zahlreiche Möglichkeiten, mit denen einer Szene Dynamik und Interaktion verliehen werden kann. Die zentralen Bausteine für die hierzu erforderliche Ereignisbehandlung sind die EventIn- bzw. EventOut-Felder von Knoten, mit denen Meldungen empfangen und Zustandsänderungen weitergeschickt werden können. Es gibt Time,- Proximity-, Visibility-, Collision- und Touch-Sensoren, welche das Verstreichen einer Zeitspanne, das Annähern des Benutzers, die Sichtbarkeit von Objekten, das Zusammentreffen des Avatars mit einem Objekt und die Berührung mit dem Mauszeiger signalisieren. Verständlicherweise müssen Typ des verschickenden Ereignisfeldes und Typ des empfangenden Ereignisfeldes übereinstimmen.

Beispiel 5 zeigt die Kugel versehen mit einem Touch-Sensor, welcher bei Mausdruck eine Nachricht an den Soundknoten schickt, der auf diese Weise seinen Spielbeginnzeitpunkt erhält und die zugeordnete Wave-Datei startet.

 
#VRML V2.0 utf8 
# interaktion.wrl: 
# Kugel macht Geraeusch bei Beruehrung 

Group {                               # plaziere Gruppenknoten 
  children [                          # bestehend aus 
    DEF Taste TouchSensor {}          # einem Touch-Sensor 
    Inline { url "kugel.wrl" }        # und einer Kugel 
  ] 
} 

Sound {                               # plaziere Soundknoten 
  source DEF Tut AudioClip {          # gespeist von Audio-Clip 
    url "tut.wav"                     # aus der Wave-Datrei tut.wav 
  } 
  minFront  5                         # Anfang des Schallbereichs 
  maxFront 50                         # Ende des Schallbereichs 
} 

ROUTE Taste.touchTime                 # bei Beruehrung der Kugel 
   TO Tut.set_startTime               # schicke Systemzeit an den Knoten Tut





prev up inhalt next