0 / 0 / 0
Регистрация: 11.01.2014
Сообщений: 36
|
|
1 | |
Анимация на форме01.05.2014, 14:28. Показов 1760. Ответов 13
Метки нет (Все метки)
С делфи знаком, мелкие задания в нем делаю. Задание в универе дали примерно такое: анимированное заполнение резервуара с водой. начал ковыряться с таймером, но ничего хорошего не вышло... мне бы только показать как делать 2D анимацию на форме...или исходник у кого подобный есть? это правда только часть моего задания. Остальное я сам!
Заранее благодарен тем кто откликнулся!=)
0
|
01.05.2014, 14:28 | |
Ответы с готовыми решениями:
13
Анимация в форме 3D-анимация на форме Анимация компонентов на форме Не работает анимация на форме |
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
|
||||||
02.05.2014, 08:55 | 3 | |||||
Вот простой пример
0
|
Заблокирован
|
|
02.05.2014, 10:45 | 4 |
Что собственно нужно, рисовать сам процесс или объяснить что делать с таймером? Вам код дали, правда без коментов. И у него есть огромный минус. Как только таймер остановиться, в случае перекрытия окна другим приложением. Всё исчезнет. Поэтому таймер останавливать нельзя ни в коем случае. Рисовка должна идти постоянно.
В обработчике события (строка 42) Должен оставаться только один repaint Проверка должна быть в процедуре рисования и стать 39 строкой. 39 if y>y1+4 then y:=y-2; Но это в теории. Я не совсем уверен что в коде ничего не напутано. Ещё надо проверять.
0
|
0 / 0 / 0
Регистрация: 11.01.2014
Сообщений: 36
|
|
02.05.2014, 10:46 [ТС] | 5 |
Спасибо! теперь всё понятно!
0
|
02.05.2014, 11:15 | 7 | |||||
если совсем по-хорошему, "правильная" анимация не должна опираться на приращения координат
тем более, при прорисовке нужна функция, определяющая координаты всех объектов по текущему времени (или смещению времени от момента старта) ну и проверка чтобы вовремя остановиться т.е. что-то вроде
0
|
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
|
||||||
02.05.2014, 11:17 | 8 | |||||
Так не работает, я написал так.
0
|
Заблокирован
|
||||||
02.05.2014, 12:11 | 9 | |||||
Мы работаем с формой и поэтому не будет затирания. Поскольку рисовка идёт в обработчике Paint формы. Но в других случаях, это не прокатит.
Но в графике таймер никогда не останавливают, а управляют процессом через флаги. Это раз. Сделать нужно так, как я сказал. То есть перенести проверку в отрисовку. если этого не сделать. При повторном нажатии кнопки сосуд будет переливаться. то есть уровень жидкости выйдет за край. Добавлено через 1 минуту Puporev, А у меня работает. Добавлено через 2 минуты Вот только что проверенный участок кода. А если вынести проверку в таймер, в последующее нажатие будет перелив
И ещё. нужно рисовать не только "воду" а сам сосуд. То есть белый прямоугольник, а только потом синий. Иначе невозможно организовать слив воды. Добавлено через 31 минуту krapotkin, Вы абсолютно правы. Но в данном случае это несущественно.
0
|
02.05.2014, 19:55 | 12 |
уважающий себя программист делает так как быстрее и нравится заказчику ))
у меня FMX программа работает с фотографиями 5Мб каждая. за сеанс - > 1Гб сама она весит 8 Мб в Debug варианте. вот вообще никого не парит. и даже если она будет 50 )) заказчик доволен. все мигает, анимируется, работает ))
0
|
05.05.2014, 21:27 | 14 |
мои заказчики вполне рады, если программа хорошо работает
то, что она меньше будет места занимать, это вообще никого не волнует. реально специфика корпоративных и заказных приложений ) 25 мб - это три трека mp3 по 4 минуты )) MS Office абсолютный монстр в этом плане, и ничего.
0
|
05.05.2014, 21:27 | |
05.05.2014, 21:27 | |
Помогаю со студенческими работами здесь
14
Анимация объекта на форме Анимация элементов управления на форме Анимация объектов и текста на форме Анимация передвижения PictureBox по форме Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |