我有以下问题:
我想在 c#中制作小二维游戏。 显示由多个图像组成的背景。为了使 GIF动画成为可能,我使用了 MediaElement 对象。 我将这些MediaElements添加到我的画布。 但是当我运行我的程序时,性能是一场灾难。显示图像几乎需要半分钟。
我显然需要更好的想法来显示图像数组,而不会减慢所有内容。
这是我的起点:
class BackgroundMediaElement : MediaElement
{
public BackgroundMediaElement(string imageSourcePath, int rowInCanvas, int columnInCanvas, int lengthOfSquare)
{
this.UnloadedBehavior = MediaState.Manual;
this.Source = new Uri(imageSourcePath, UriKind.Relative);
Canvas.SetTop(this, rowInCanvas*lengthOfSquare);
Canvas.SetLeft(this, columnInCanvas*lengthOfSquare);
this.Play();
this.MediaEnded += method_MediaEnded;
}
private void method_MediaEnded(object sender, RoutedEventArgs e)
{
//MediaElement m = (MediaElement)sender;
this.Position = TimeSpan.FromMilliseconds(1);
}
}
我创建了200多个元素并将它们添加到我的Canvas中。 但它甚至减缓了40个元素。 一个图像甚至没有一个KBy。
答案 0 :(得分:2)
这根本不是您正在寻找的技术。您可以非常好地使用C#
来制作游戏,但您应该寻找合适的Game Engine
。 Unity支持2D游戏,并允许您在C#
中进行编码。点击here了解详情。
专注于创造游戏,而不是与无关紧要的东西作斗争:)