Как мне создать объект и нарисовать его, пока он движется? - PullRequest
0 голосов
/ 26 января 2011

Я хочу создать круговой объект, вывести его на экран со скоростью и заставить его отскакивать в границах.Я могу точно настроить класс круга, но как мне нарисовать объект (и несколько позже, скажем, щелкните, и вы получите больше объектов круга) и показать его движение?

Ответы [ 2 ]

3 голосов
/ 26 января 2011

Начните с переопределения метода OnPaint в форме и добавьте туда логику рисования

protected override void OnPaint(PaintEventArgs e)
{
    e.Graphics.DrawEllipse(new Pen(Color.Red), 0, 0, 100, 100);
}
2 голосов
/ 26 января 2011

Рисование может быть выполнено как минимум 3 различными способами в .NET (WFA, WPF и XNA).Для этого ответа я предполагаю, что вы используете самое простое: приложение WinForms.

Рисование / рисование пользовательских фигур в .NET выполняется с использованием класса Graphics.Все элементы управления формы имеют метод CreateGraphics(), который дает вам ссылку на «окно» на экране с размером и расположением элемента управления, для которого вы вызвали метод.Используя этот экземпляр Graphics, вы можете вызывать различные методы Draw (например, DrawCircle()), чтобы размещать фигуры на экране.Вам нужно будет прочитать об объектах Pen, Brush и Color;они позволяют вам определять границу, заливку и цвет вашего круга.Я бы поместил логику рисования в метод OnPaint() элемента управления, который вызывается всякий раз, когда окну предлагается перерисовать себя.Чтобы ваш объект перемещался через равные промежутки времени, установите Timer с некоторым регулярным интервалом и подпишитесь на его событие Tick с помощью обработчика, который будет выполнять логику перемещения.После того, как вы сделаете каждый шаг, вызовите Invalidate() для элемента управления, для которого у вас есть дескриптор Graphics;это заставит элемент управления перерисовать себя.Я бы не стал получать дескриптор графики для всей формы или любого элемента управления, на который вы помещаете другие вложенные элементы управления, поскольку элемент управления, который перерисовывает сам себя, также скажет всем своим вложенным элементам управления перерисовать себя.Panel или PictureBox, занимающий промежуток в окне формы, является методом перехода к пользовательской графике.Вы также можете рассмотреть возможность использования графики с двойной буферизацией с использованием объекта BufferedGraphicsContext или прокрутить свою собственную, нарисовав свои пользовательские фигуры на Bitmap, который вы затем установите в качестве изображения для PictureBox.

...