Animation Bewegung
Jetzt tat sich aber bei mir eine Frage auf, wäre es auch möglich den Bildbaustein zu verschieben. Wie ein Fensten auf dem Laptop?
Habe ich schon im #8 kurz angedeutet:
Mit den kleinen links/rechts- und hoch/runter-Schaltflächen kann das Faceplate in andere Ecken des
Bildes verschoben werden (Faceplate-Gruppe Animation: Direkte Bewegung).
Also den Bildbaustein einfach an der Titelzeile "anfassen" und auf dem Bild umherziehen geht leider
nicht, weder mit Maus noch mit Finger. Man kann aber abhängig vom Inhalt einer Variable Objekte und
Objekt-Gruppen in alle Richtungen über das Bild bewegen: Animation > Bewegung
Es bleibt nur das Problem, wie ändert man den Wert der Bewegungs-Variablen?
Zum Kennenlernen der Bewegungsanimation bietet sich ein Slider oder ein numerisches Eingabefeld an,
das ist aber nachher an der Anlage nicht praktisch.
Ich habe das so gemacht:
interne Variable: FPA_Off_X | UInt | Startwert: 0 | //steuert horizontale Bewegung
interne Variable: FPA_Off_Y | UInt | Startwert: 0 | //steuert vertikale Bewegung
Faceplate-Gruppe: Animation > Direkte Bewegung
X - Startposition: 10 | Offset: FPA_Off_X
Y - Startposition: 8 | Offset: FPA_Off_Y
Schaltfläche "links/rechts" im Faceplate
Ereignisse > Klicken:
- InvertiereBitInVariable, Variable: FPA_Off_X, Bit: 8
Schaltfläche "hoch/runter" im Faceplate
Ereignisse > Klicken:
- InvertiereBitInVariable, Variable: FPA_Off_Y, Bit: 8
Wenn ich nun die Schaltflächen klicke, togglen die Variablen zwischen 0 und 256, die animierte Gruppe
springt auf dem Bild zwischen der X-Position 10 und 266, die Y-Position zwischen 8 und 264.
Wenn man nicht so viel Glück hat, daß sich die Positionswerte nur um 1 Bit unterscheiden, kann man auch
eine Hilfsvariable hernehmen, die zwischen 0 und 1 getoggelt wird und dann den gewünschten Offset mit
dieser Variable multiplizieren:
interne Variable: FPA_X | UInt | Startwert: 0
interne Variable: FPA_Y | UInt | Startwert: 0
Schaltfläche "links/rechts" im Faceplate
Ereignisse > Klicken:
- InvertiereBitInVariable, Variable: FPA_X, Bit: 0
- LineareSkalierung, Y: FPA_Off_X, a: 200 (gewünschte Sprungweite), X: FPA_X, b: 0
Schaltfläche "hoch/runter" im Faceplate
Ereignisse > Klicken:
- InvertiereBitInVariable, Variable: FPA_Y, Bit: 0
- LineareSkalierung, Y: FPA_Off_Y, a: 100 (gewünschte Sprungweite), X: FPA_Y, b: 0
Wichtig:
Die animierte Gruppe darf dann im Bildeditor nicht mehr verschoben werden, weil bei der direkten Bewegung
nicht die absolute Bildposition angegeben wird, sondern der Offset zu der Position zur Projektierungszeit!
Wo man nun die Bewegungs-Animation bei einem Bildbaustein anbindet bin ich überfragt.
Ich habe ja einfach eine Gruppe von Objekten benutzt. Mir reicht es aus, wenn ich das Faceplate nicht in
jede beliebige Position auf dem Bild bewegen kann, sondern nur in den 4 Ecken rumspringe.
Gruß
Harald