#4, z MachtnixSunday, 17. July 2016, 16:51 hodinky 8 years ago
In etwa: wenn Charakter nach NO zeigt, spiele Animation "Hebeanimation in NO-Richtung" ab. Zeigt der Charakter nun nach S, müsste er also eine Abfrage bekommen: "wenn Charakter nach S zeigt, spiele Hebeanimation nach S ab". Das ganze Paket von 8 Bedingungen kommt dann in die Aktion, die beim Drücken des A-Knopfs aufgerufen wird.
Ich persönlich würde die if-Abfragen nicht verschachteln, sondern stur eine nach der anderen untereinander auflisten. Nachdem das Programm eine Abfrage gecheckt hat und sie für falsch befindet, springt es automatisch zu der darunterliegenden und macht da mit der nächsten Abfrage weiter. War die Bedingung zufällig richtig, wird sie abgearbeitet - und deshalb könnte in jeder Abfrage zusätzlich ein Abbruchbefehl stehen (springe zum letzten Aktionsteil), denn sonst arbeitet es immer ALLE 8 Bedingungen ab, egal, ob die erste falsch oder wahr war. Logischerweise kann ja immer nur EINE der acht Bedingungen wahr sein und zwar immer nur genau eine (aber siehe Hinweis unten). Geht natürlich auch so, ist nur langsamer.
Sollte sich der Charakter in der Zwischenzeit drehen, könnte die Abarbeitung vielleicht auch ins Leere laufen (aber ich glaube, während einer Aktionsabfrage ist der Charakter "eingefroren" und man kann eh nichts machen, oder?)
Ich habe allerdings noch einen Hinweis: selbst wenn es nach außen nur 8 45°-Richtungen gibt, so sind die Richtungen INTERN nicht gerundet. Der Charakter weist also z.B. in Richtung 37,5°. Es sieht aber so aus, als stünde er in 45°-Richtung. Das Programm entscheidet selbständig. Das geht im allgemeinen gut, ich habe mir aber angewöhnt, in Lua einige Script-Zeilen einzubinden und aufzurufen, die in etwa folgendes machen: ist die Figur innerhalb eines Achtelkreis-Bereichs von z.B. 271° bis 22° ausgerichtet (innerhalb 22,5° nach links und rechts von 0°), setze Figur-Richtung auf 0°. Jede der acht Richtungen bekommt also einen Segmentraum zugewiesen. Ich weiß jetzt gerade nicht, wie die Gradeinteilung in Visionaire ist, deshalb habe ich mal 0° für 12 Uhr angenommen.
Aber mit der einfachen Ausrichten-Aktion sollte deine Aufgabe klappen. Ich habe das gebraucht, weil ich die Winkelrichtungen in Lua direkt abgefragt habe und da trat das Phänomen auf.