C#とXAMLで単純なWindows Storeゲームを作成しようとしています。これは、六角形のタイルが動き回るゲームです。これは主に、グラフィックやUIコーディングをこれまで扱ったことがないため、C#とXAMLを学ぶのに役立ちます。
単一のヘクスをターゲット座標に移動できる方法がありますが、今それを見ると、一度に複数の移動を行うことは不可能であることがわかります。これは絶対に必要です。
私のアプローチには根本的に何かがなければならないような気がします。1つのキャンバスの周りを移動する複数のオブジェクトは珍しいことではありませんね。私は主に、誰かが私が間違っていた場所を指摘してくれることを期待してこれを求めています。
//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();
}