Probleme mit AlignToVector
Übersicht

NerleBetreff: Probleme mit AlignToVector |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo Leute, ich möchte den Y-Winkel einer Entity immer in Richtung einer anderen Entity ausrichten, dabei soll die Bewegung langsam von statten gehen, weshalb ich auch AlignToVector statt PointEntity benutzen möchte, da man bei AlignToVector das AusrichtungsTempo bestimmen kann.
Als Beispiel kann man sich eine Kompassnadel vorstellen, die sich immer in Richtung eines Magneten ausrichtet... Aber ich krieg das nicht hin, das Objekt welches sich ausrichten soll, verhält sich ganz seltsam. Wenn ich das "Magnet"-Objekt vorbeibewege, dann bewegt es sich nur ein Stück mit, und macht dann agr nichts mehr. Auch ist die Ausrichtung alles andere als korrekt und sauber. Benutzt habe ich in etwa diesen Befehl: ALIGNTOVECTOR Kompassnadel,ENTITYX(Magnet),ENTITYY(Magnet),ENTITYZ(Magnet),2,.1 ... und gehofft, dass "die Nadel" nun an ihrer Y-Achse immer zum "Magneten" gedreht wird. Pustekuchen, wie gesagt. Was mache ich denn eventuell falsch? Und/Oder: Gibt es eine Möglichkeit, mit PointEntity denselben "verzögerten" Bewegungs- bzw. Ausrichtungeseffekt zu erreichen? Der Nachteil von PointEntity ist halt, das sich das Objekt immer sofort bewegt, und man die Drehgeschwindigkeit nicht einstellen kann. |
||
![]() |
Foppele |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi,
Ich sag mal so AligntoVektor will mit Vektoren gefüttert werden, nicht mit Koordinaten. Also erst Vektor Objekt - Ziel berechnen, dann AligntoVector. |
||
![]() |
Markus2 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich glaube du solltest es mit der Z Achse versuchen
die Y Achse zeigt ja nach oben . Code: [AUSKLAPPEN] Function where_to_turn#(source_pivot,target_pivot) Local temp = CreatePivot() PositionEntity temp,EntityX(source_pivot),EntityY(source_pivot),EntityZ(source_pivot) PointEntity temp,target_pivot Local s# = EntityYaw(source_pivot) Local t# = EntityYaw(temp) ; 1 ... 180 Left and -1 ... -180 = Right FreeEntity temp Local wd# =((s - t) Mod 360 + 540) Mod 360 - 180 If Int(wd)=0 Then Return 0.0 EndIf Return -4.0*(wd/10.0) End Function |
||
Nerle |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Vielen Dank für Eure Hilfe - ich habs nun zwischenzeitlich ersteinmal einfach mit diesem Plastik-Kunstgriff versucht:
TurnEntity Nadel,0,(DeltaYaw(Nadel,Magnet)/100),0 Auf´s erste funktioniert es... ![]() |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group