2014 dxdy logo

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

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




Начать новую тему Ответить на тему
 
 Компонент PictureBox в C#
Сообщение23.06.2010, 13:45 
Аватара пользователя


03/03/10
1341
Пишу я на 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 
Заслуженный участник


26/07/09
1559
Алматы
2Kitozavr
Ой, так делать нельзя, ужас. :) Лучше рисовать все спрайты в одну картинку, лежащую в памяти, и уже её потом копировать в ваш элемент управления (cf. double buffering). Тогда и анимация будет красивой (плавной, без артефактов частичной прорисовки) и ресурсы расходоваться будут рациональнее; к тому же легче будет стабилизировать frame rate ориентируясь на текущую производительность системы (замеряя время, затрачиваемое на отрисовку кадров)... Хотя можно в некоторых случаях и без двойной буферизации обойтись, просто необходимо при этом перед непосредственной прорисовкой спрайта на экране сохранить находящийся под ним фрагмент фона, а затем, уже в одном из следующих кадров анимации, использовать этот фрагмент-заплатку для удаления спрайта с последующей прорисовкой оного в новой позиции...

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

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


03/03/10
1341
А как это сделать?

 Профиль  
                  
 
 Re: Компонент PictureBox в C#
Сообщение25.06.2010, 02:54 
Заслуженный участник


26/07/09
1559
Алматы
Научитесь создавать картинку в памяти и рисовать на ней изображения в определенной позиции, а потом копируйте эту картинку в ваш PictureBox. Увы, конкретных советов дать не могу, ибо с C# не дружу. :)

 Профиль  
                  
 
 Re: Компонент PictureBox в C#
Сообщение28.06.2010, 12:59 
Аватара пользователя


23/05/10
145
Москва
1. Создайте картинку (Bitmap).
2. Создайте от нее объект Graphics.
3. Рисуйте с помощью стандартных методов Graphics.
4. Отображайте свой Bitmap на форму (ну там на PictureBox).

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


03/03/10
1341
Получилось, спасибо!

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 6 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group