prev up inhalt next


23.7 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.

interaktion.wrl
#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-Datei 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