2011-12-15 54 views
1

我可以在Form#paint事件中使用此代码在C#.NET 2.0中绘制图形。C#简单图形的东西

e.Graphics.DrawRectangle(new Pen(new SolidBrush(Color.Red)), new Rectangle(20, 20, 20, 20)); 

但是,如何让绘制的对象四处移动?例如,矩形在屏幕上向上或向下移动。这是使用计时器或什么完成的?

+0

尝试初始化`Pen`和`Brush`而不处理它们。建议使用`using(Pen = new Pen(...)){...}`样式代码。 – ja72 2011-12-15 15:40:14

回答

2

是的,你可以使用一个计时器。

绘制你的东西,就像你现在做的那样,在绘画事件中。

在定时器的tick事件中移动您的对象/执行游戏逻辑,然后重新绘制所有呼叫Control.Invalidate()。这将导致绘画事件被触发。

看到我的回答here为一个工作,完整的例子。

+0

我总是使用Control.Refresh(),它似乎比Control.Invalidate()有更平滑的结果。 – ja72 2011-12-15 15:39:08

1

您可以使用KeyDown事件处理程序来管理绘制的对象位置的移动。

有人使用C# Basic Gox Game你可以看看。

+0

基本框游戏正是我想在这里编码。感谢您的链接 - 它一定会派上用场。 – david 2011-12-15 16:56:49