3
我正在創建一個使用tile系統的2D遊戲引擎。在繪製這些圖塊時,您可以在屏幕上看到每個圖塊。繪圖速度非常快,但您仍然可以看到它。防止System.Drawing.Graphics從更新
當我告訴圖形繪製某些東西時,我不希望它立即更新,因爲它在屏幕上繪製了其他東西,顯然效率很低。我希望它能夠「繪製」我所說的內容,但是實際上將它展現在一個大的更新中......或者它們會做同樣的事情嗎?反正可能不可能。
//Creating graphics
public static Form GameForm; //Assigned by the form
public static Graphics GFX;
public static void Init()
{
GFX = GameForm.CreateGraphics();
GameForm.BackColor = Color.Black;
// ----
//Drawing the tiles
while (X != 480)
{
while (Y != 352)
{
Tiles.Add(new Tile(X, Y, Num, 0));
GFX.DrawImage(LoadedImages[4], new Point(X, Y));
GFX.DrawRectangle(new Pen(Color.Red), X, Y, 32, 32);
GFX.DrawString(Num.ToString(), new Font("System", 10.0F),
new SolidBrush(Color.Black),
new PointF((float)X, (float)Y));
Y = Y + 32;
Num++;
}
X = X + 32;
Y = 0;
}
//UPDATE NOW!
1,也['Control.DoubleBuffered'](http://msdn.microsoft.com/en-us/library/system.windows.forms.control.doublebuffered .aspx)可能會更簡單。 – user7116
天才。我永遠不會想到這一點。 – WildBamaBoy