@djEban

C#. Что лучше: PictureBox или Paint?

В общем, делаю игру в WF, где нужно лопать поднимающиеся вверх шарики. Что для этого лучше подойдет: PictureBox, при нажатии на который кнопкой мыши буду телепортировать его вниз, чтобы он снова поднимался вверх, либо же Paint, при нажатии на рисунок которого будет производиться перерисовка? И всё это при условии, что мне нужно будет организовать рандом: произвольное количество шариков будет подниматься, причём одни будут опережать другие.

P.S.
Работу с Paint в подобной игре нахожу практически нереальной. Но всё же, может вы знаете, как это реализовать?
  • Вопрос задан
  • 1069 просмотров
Решения вопроса 1
yudinikita
@yudinikita
Инженер-программист из России
Я считаю, что нужно сначала пытаться отобразить шарики изображением, а если по какой-либо причине картинки не загрузились, то рисовать их.
1. Создаем переменную с изображением
Bitmap ImageBall;
2. При инициализации формы с игрой пытаемся загрузить в эту переменную изображение
try
{
    ImageBall = new Bitmap("путь до изображения");
}
catch (Exception ex)
{
    MessageBox.Show(@"Не удалось загрузить: " + ex.Message, @"Ошибка при загрузке изображений!");
}

3. Во время генерации шарика, мы проверяем, что изображение загрузилось, иначе рисуем сами
Bitmap bmp = new Bitmap(50,50);
Graphics gr = Graphics.FromImage(bmp);  // это пространство на котором рисуется игра
Rectangle rect = new Rectangle(0,0,50,50); // размер шарика
if(ImageBall == null) // если картинка не загрузилась
{
    gr.DrawEllipse(new Pen(Color.Black), rect); // рисуем круг
}
else
{
    gr.DrawImage(ImageBalls, rect); 
}

5. Помещаем в PictureBox наш шарик нарисованный или с картинкой
pictureBox1.Image = bmp
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
GavriKos
@GavriKos
Лучше - canvas, желательно - OpenGL-ый,
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы