2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Компонент PictureBox в C#
Сообщение23.06.2010, 13:45 
Аватара пользователя
Пишу я на C# игру, анимация в ней делается следующим образом: создаётся PictureBox, который потом двигается по экрану. Так как PictureBox-ов нужно много, то я сделал их с помощью следующего цикла:
Код:
void LoadRoadLine()
        {
            PictureBox[] Pic = new PictureBox[5];
            int i = 1;
            for (i = 1; i == 5; i++)
            {
                Pic[i].Image = Image.FromFile(@"D:\Pic.bmp");
            }
        }

Как теперь заставить все эти PictureBox появиться на поверхности формы?

И как ещё сделать чтобы Pic был виден не только в пределах метода?

-- Ср июн 23, 2010 14:44:28 --

Я уже разобрался.
Всем спасибо, ваша помощь была неоценима.

 
 
 
 Re: Компонент PictureBox в C#
Сообщение24.06.2010, 01:48 
2Kitozavr
Ой, так делать нельзя, ужас. :) Лучше рисовать все спрайты в одну картинку, лежащую в памяти, и уже её потом копировать в ваш элемент управления (cf. double buffering). Тогда и анимация будет красивой (плавной, без артефактов частичной прорисовки) и ресурсы расходоваться будут рациональнее; к тому же легче будет стабилизировать frame rate ориентируясь на текущую производительность системы (замеряя время, затрачиваемое на отрисовку кадров)... Хотя можно в некоторых случаях и без двойной буферизации обойтись, просто необходимо при этом перед непосредственной прорисовкой спрайта на экране сохранить находящийся под ним фрагмент фона, а затем, уже в одном из следующих кадров анимации, использовать этот фрагмент-заплатку для удаления спрайта с последующей прорисовкой оного в новой позиции...

Дополнительные усилия, приложенные для реализации подобного подхода, себя полностью оправдают, поверьте. Представьте, как тормозил бы, например, тот же flash, если бы использовал в качестве контейнеров для граф. примитивов обычные оконные контролы.

 
 
 
 Re: Компонент PictureBox в C#
Сообщение24.06.2010, 19:36 
Аватара пользователя
А как это сделать?

 
 
 
 Re: Компонент PictureBox в C#
Сообщение25.06.2010, 02:54 
Научитесь создавать картинку в памяти и рисовать на ней изображения в определенной позиции, а потом копируйте эту картинку в ваш PictureBox. Увы, конкретных советов дать не могу, ибо с C# не дружу. :)

 
 
 
 Re: Компонент PictureBox в C#
Сообщение28.06.2010, 12:59 
Аватара пользователя
1. Создайте картинку (Bitmap).
2. Создайте от нее объект Graphics.
3. Рисуйте с помощью стандартных методов Graphics.
4. Отображайте свой Bitmap на форму (ну там на PictureBox).

 
 
 
 Re: Компонент PictureBox в C#
Сообщение15.07.2010, 13:34 
Аватара пользователя
Получилось, спасибо!

 
 
 [ Сообщений: 6 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group