我正在尝试用 C# 和 XAML 制作一个简单的 Windows Store 游戏,该游戏涉及移动的六边形图块。这主要是为了帮助我学习 C# 和 XAML,因为我以前从未使用过图形甚至 UI 编码。
我有一种方法可以将单个十六进制移动到目标坐标,但是现在看它我意识到不可能一次进行多个移动,这是绝对必要的。
我觉得在我的方法中必须有一些根本性的东西,多个物体在一个画布上移动不可能是一件不寻常的事情,不是吗?我主要是在问这个问题,希望有人能指出我哪里出错了。
//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();
}