我用C#编写了一个俄罗斯方块游戏。我正在使用下面的代码在图片框中绘制形状。
graphics g
g = pictureBox1.CreateGraphics();
我正在通过计时器代码清理每一秒来绘制形状的下一步。 我的问题是:它正在慢慢地运行picturebox.refresh()命令和扭曲的显示。我该怎么办?
我试过下面的功能。但是,它没有用。我有同样的问题。
public void EnableDoubleBuffering()
{
// Set the value of the double-buffering style bits to true.
this.SetStyle(ControlStyles.DoubleBuffer |
ControlStyles.UserPaint |
ControlStyles.AllPaintingInWmPaint,
true);
this.UpdateStyles();
}
答案 0 :(得分:1)
您正在绘制的方式,您正在使用GDI绘制图片(基本上使用软件来渲染游戏图形)。与普通游戏相比,这将会很慢,因为大多数游戏都使用DirectX或OpenGL在硬件级别快速地将数据快速地传输到视频卡。我建议学习Microsoft XNA并在XNA中编写游戏,这是基于C#并提供了一个很好的内容管道来完成您想要做的事情。
答案 1 :(得分:0)
我遇到了同样的问题。解决方案是您必须在另一个位图中绘制新图片,完成后,将其绘制在图片框中。