Dann werd ich Dir mal helfen.
Dein Ansatz ist korrekt, jedoch ist die interne Verarbeitung etwas anders.
Wenn Du Dich z.B. nach rechts drehst, geht der Wertebereich nicht von 0-360 sondern von 0 bis ~.
D.h., es kommen z.B. 720°, 388°, 1026° etc. vor, da jede volle Umdrehung hinzuaddiert wird.
Das gleiche hast Du nochmal im negativen Bereich, wenn Du Dich nach links drehst.
Daher kannst Du mit dieser einfach Abfrage dies nicht bewerkstelligen.
Du musst Dir dazu den realen Wert berechnen, z.B. so:
|
PHP-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
<action name="getHlookat">
<!--
%1 = auf Ganzzahl runden (true)
-->
set(hpos, get(view.hlookat));
set(hposreal, get(view.hlookat));
if (hpos LT 0, mul(hposreal, -1); );
div(hposreal, 360);
Math.floor(hposrealtmp, hposreal);
sub(hposreal, hposrealtmp);
mul(hposreal, 360);
if (hpos LT 0, sub(hposreal, 360, hposreal); );
if (%1 EQ true, roundval(hposreal, 0); roundval(hpos, 0); );
</action>
|
Und dann rufst Du immer wieder diese Aktion auf: <events onviewchange="getHlookat(); />
Jetzt einfach den Wert hposreal in Deiner if-Abfrage gegenprüfen.
Viel Spass damit.
iceman
PS: bin sehr viel im krp-Forum unterwegs, aber Deine Frage scheine ich übersehen zu haben.