【发布时间】:2014-05-13 17:07:48
【问题描述】:
我试图在我的面板上绘制一些矩形,然后让它们掉下来,但是由于我的程序需要重新绘制背景,并且每次循环时每个矩形都在我添加很多矩形时下降了很多。
这是我绘制所有矩形的代码:
frameGraphics.FillRectangles(Red, rectlist.ToArray());
还有其他方法可以加快速度吗?因为 rectlist.toarray() 包含大约 400-500 个矩形。
我正在使用winforms:
Graphics g = Canvas.CreateGraphics(); where canvas is my panel.
Bitmap frame = new Bitmap(Game.CANVAS_WIDTH, Game.CANVAS_HEIGHT);
Graphics frameGraphics = Graphics.FromImage(frame);
这就是我构建图形的方式。
【问题讨论】:
-
我想你可以指出你使用的是什么平台,Winform、wpf、web还是纯控制台?
-
Gdi+ 是制作游戏的糟糕选择。这主要是关于概念:场景、精灵、灯光、输入、声音等。我还没有制作任何游戏,但如果必须,我会选择
xna-like。ToArray与此相比只需要很少的东西,即使是绘制单个矩形也需要什么。您无法提高 fps,除非您将开始使用算法优化(例如 3d 缓冲区),这些优化已经在游戏框架中实现。