Программа дождь на с#

198
22 октября 2019, 11:20

Преподаватель дал задание написать программу на Windows-forms:

Создать приложение «Дождь», которое позволяет отображать на экране падающие капли дождя. Капля представляет собой набор графических элементов (по усмотрению программиста). Пользователь приложения должен установить параметры: - скорость падения капель, - минимальное и максимальное количество капель на экране, отображаемых одновременно. При этом движение капель должно быть непрерывным

Так как с графикой и анимацией вообще нету опыта работы, решил обратиться сюда. С чего стоит начать? Может есть какие-то встроенные библиотеки/функции и тд? Или можете какие-то книги по работе с графикой посоветовать? Или онлайн источники?

Answer 1

Задание не очень сложное (для меня).

Простое решение:

  1. Создаешь класс капли (Drop) (контрол);
  2. Создаешь цикл, в котором идет генерация и рендеринг капель (можно в отдельном потоке генерировать эти капли):

_

while (true)
{
    foreach (var drop in pictureBox.Drops)
    {
        // рендеринг капли
    }
    // рандомная генерация скорости, позиции, image'а и т.  д. для новых капель
}
  1. Очищаешь PictureBox.

Сложное решение: Сложное решение касается знаний ПООП (Паттерно-объектно-ориентированного проектирования) + знаний в работе Windows Froms + знаний в gemedev'е (рендеринг). Но если ты все это знаешь, то зачем ты задал этот вопрос?)

Answer 2

Вот пример реализации подобной штуки: https://www.codeproject.com/Articles/45144/Form-free-Desktop-Animation

В даном случае тебе нужно рисовать линии из пикселей которые бы ты рисовал под нужным направлением и с нужной длинной.

Если хочется больше красивостей, нужно будет нарисовать еще 2-5 анимаций стекающей капли по экрану и в рандомных местах экрана еще ее проигрывать.

Так же возможно тебе будет полезным погуглить Particles System с# -unity . Это система генерации частиц. Через нее тоже можно будет делать дождь

READ ALSO
DotNetZip очень долго упаковывает в архив

DotNetZip очень долго упаковывает в архив

Вот мой код, который упаковывает файлы из папки в архив:

157
Как передать массив файлов и текст AJAX в контроллер

Как передать массив файлов и текст AJAX в контроллер

Я формирую FormData из файлов и передаю в контроллер, но мне так же нужно передавать туда текст из TextAreaВот мой код на JS :

150