11.10.2023, 05:37
(Dieser Beitrag wurde zuletzt bearbeitet: 11.10.2023, 06:52 von Christoph Balhaus.)
Die Richtungserkennung funktioniert wunderbar mit einem Collision-Event und erzeugt viel weniger Lag als ein Sensor.
Der Event triggert zwar immer, aber mit llDetectedPos() und ein klein wenig Rechnerei lässt sich in der Eventbehandlung leicht erkennen von welcher Seite er ausgelöst wurde. Hier ein einfaches Beispiel um die beiden Seiten/Richtungen auf der (lokalern) X-Achse zu unterscheiden:
Edit:
Aber für eine normale Türsteuerung ist das unnötig kompliziert. Einfache Collision-Objekte, entweder ein grosses das beide Seiten umfasst oder zwei kleine auf beiden Seiten der Tür sind i.a. völlig ausreichend. Die Richtung aus der man kommt ist dabei belanglos, denn die Tür sollte ein extra Signal zum öffnen ignorieren, wenn sie ohnehin schon offen steht.
Mit der Richtungserkennung lässt sich aber z.B. eine Saloontür realisieren, die abhängig von der Richtung in der sie durchschritten wird in unterschiedliche Richtungen schwingen soll.
/Chris
Der Event triggert zwar immer, aber mit llDetectedPos() und ein klein wenig Rechnerei lässt sich in der Eventbehandlung leicht erkennen von welcher Seite er ausgelöst wurde. Hier ein einfaches Beispiel um die beiden Seiten/Richtungen auf der (lokalern) X-Achse zu unterscheiden:
Code:
default {
// erkennt und unterscheidet Kollisionen mit den beiden Flächen in (lokaler) X-Richtung
state_entry() {
llVolumeDetect(TRUE); // quasi Phantom, aber mit funktionierenden Kollisionen
}
collision_start(integer num_detected) {
rotation objectRot = llGetRot();
vector objectPos = llGetPos()/objectRot;
vector detectedPos = llDetectedPos(0)/objectRot;
if (detectedPos.x > objectPos.x) {
llSay(0, "Side 1"); // Eintritt von Seite 1
} else {
llSay(0, "Side 2"); // Eintritt von Seite 2
}
}
}
Edit:
Aber für eine normale Türsteuerung ist das unnötig kompliziert. Einfache Collision-Objekte, entweder ein grosses das beide Seiten umfasst oder zwei kleine auf beiden Seiten der Tür sind i.a. völlig ausreichend. Die Richtung aus der man kommt ist dabei belanglos, denn die Tür sollte ein extra Signal zum öffnen ignorieren, wenn sie ohnehin schon offen steht.
Mit der Richtungserkennung lässt sich aber z.B. eine Saloontür realisieren, die abhängig von der Richtung in der sie durchschritten wird in unterschiedliche Richtungen schwingen soll.
/Chris