在C#App中显示游戏图形的最佳方向

时间:2010-06-02 17:35:51

标签: c# .net graphics gdi+

我正在制作一个小游戏作为一个测试项目,没什么大不了的。我刚刚开始研究图形片,但我不确定将图形绘制到屏幕上的最佳方法。

它有点像旧的塞尔达,使用位图等非常简单。我开始认为我可以使用Drawing.Graphics和控件中的Handle绘制到Picture Box控件,但这看起来很麻烦。我也不确定我是否可以使用这种方法进行双缓冲。

我看了XNA,但是现在我想用一种简单的方法来显示所有内容。

所以,我的问题。使用当前的C#窗口控件和框架,显示游戏图形的最佳方法是什么(即图片框,构建自定义控件等)

编辑: 我将添加我目前绘制到图片框的方式。我有一个Tile对象,它只包含tile( List< List< Color>> texture; )的像素,仅为简单起见。然后我通过遍历像素并使用FillRectangle方法将其绘制到图片框中,使用具有当前像素颜色的刷子和由比例变量指定的大小:

int scale = 5;
for (int i = 0; i < texture.Width;)
{
    for (int j = 0; j < texture.Height; ++j)
    {
        int x = i * scale;
        int y = j * scale;
        picBox.FillRectangle(new SolidBrush(currentPixelColor), new Rectangle(x, y, scale, scale));
    }
}
是的,非常麻烦。任何建议或意见表示赞赏。

3 个答案:

答案 0 :(得分:2)

我建议您再看看XNA并尝试一些示例。只要您坚持使用2D,使用XNA制作简单游戏非常简单。该框架在将所有细节包装在一个易于理解的流程中做得非常出色,您可以在这里基本填写空白。

我在短短的8小时内为我的儿子做了一个完整的(但非常简单的)Xbox游戏,没有经验。

如果你转向3D,事情会变得更加复杂,因为你必须了解各种视图模型,着色器等等,但对于2D来说,入门非常简单。

2D的另一个优点是所需的工具更容易获得。我使用Photoshop完成了所有图形,声音是我使用Windows刻录机录制的MP3和声音。对于3D,您需要复杂的工具来构建和导出模型等。

答案 1 :(得分:0)

老实说,我相信XNA是迄今为止我用过的最简单的游戏设计框架之一。除此之外,你可以利用WPF在屏幕上绘制对象。

答案 2 :(得分:0)

首先,我强烈建议您使用 XNA DirectX 进行游戏开发......

但是,如果您不想要 XNA DirectX 帮助....那么您将被迫使用 .Net GDI+ 绘画工具.....

通过这种方式,您可以通过GDI +绘制点,线,圆,矩形,弧形,位图,文本等等(当然,所有这些都是在C#和.Net中可用的......)

您可以创建一个新的简单控件(或使用现有的控件,如图像框或表单本身!),然后您必须覆盖其OnPaint(PaintEventArgs e)函数...然后您将使用{{1绘制你想要的任何东西......


示例:
Simple Tetris Game Tutorial in C#


修改
使用GDI +绘制逐像素图片是一个相当大的性能下降!


更好的是自己绘制形状(圆圈等等)