Wie kann ich mehrere Animationen in einer einzigen storyboard in C#/XAML?
Ich versuche, machen Sie eine einfache Windows Store-Spiel in C# und XAML, die durch sechseckige Plättchen bewegen. Dies ist vor allem zu helfen, mich zu lernen, C# und XAML habe ich noch nie gearbeitet, mit Grafiken oder sogar UI-Kodierung vor.
Ich habe eine Methode, die eine einzelne hex-zu den Ziel-Koordinaten, aber mit Blick auf Sie jetzt, ich erkennen, dass es unmöglich ist, mehrere Züge auf einmal, das ist absolut notwendig.
Ich fühle mich wie es muss etwas werden, das grundsätzlich aus-in meinem Ansatz, mehrere bewegte Objekte über einen einzigen Leinwand nicht eine ungewöhnliche Sache, kann es? Meistens bin ich gefragt in der Hoffnung, dass jemand die Stelle aus, wo ich ging schief.
//moves the hex hexName to coordinates x, y, over a specified duration.
public void slideHex(int x, int y, string hexName, Duration duration)
{
GameStoryboard.Stop();
Polygon hex = GameCanvas.FindName(hexName) as Polygon;
TranslateTransform slideTransform = new TranslateTransform();
slideTransform.X = hex.RenderTransformOrigin.X;
slideTransform.Y = hex.RenderTransformOrigin.Y;
hex.RenderTransform = slideTransform;
DoubleAnimation animX = new DoubleAnimation();
DoubleAnimation animY = new DoubleAnimation();
animX.Duration = duration;
animY.Duration = duration;
GameStoryboard.Duration = duration;
GameStoryboard.Children.Add(animX);
GameStoryboard.Children.Add(animY);
Storyboard.SetTarget(animX, slideTransform);
Storyboard.SetTarget(animY, slideTransform);
Storyboard.SetTargetProperty(animX, "X");
Storyboard.SetTargetProperty(animY, "Y");
animX.To = x;
animY.To = y;
GameStoryboard.Begin();
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einem storyboard enthalten kann, mehrere Animationen, und jede animation kann Ziel einem anderen UI-element. Hier ist ein Beispiel für ein storyboard, die "Impulse" die Grenze der Farben der drei verschiedenen Steuerungen:
Dein code sieht gut aus - bist du schon animieren, die mehrere Eigenschaften von
slideTransform
, und da das Ziel einer animation ist eine Eigenschaft der animation anstatt dem storyboard, es gibt keinen Grund, warum man nicht neu ausrichten, entwederanimX
oderanimY
zu einem anderen Objekt zusammen.Erstellen Sie mehrere storyboards, und führen Sie Sie gleichzeitig, um mehrere Objekte gleichzeitig zu animieren. Siehe das Beispiel im folgenden Artikel, wodurch mehrere Elemente innerhalb einer to-do-Liste:
http://www.codeproject.com/Articles/428088/A-Gesture-Driven-Windows-Phone-To-Do-List#swipe