Форум: "Media";
Текущий архив: 2006.02.05;
Скачать: [xml.tar.bz2];
Внизмерцание при анимировании Найти похожие ветки
← →
melena © (2005-08-22 16:06) [0]Подскажите пожалуйста, Как избавиться от мерцания при анимировании?
← →
grouzd[E]v © (2005-08-22 16:38) [1]form1.doublebuffered := true;
---
... we are walking on a thin line and you better avoid the risk ...
← →
melena © (2005-08-22 17:48) [2]а можно поподробнее, а то я в этом не очень разбираюсь
← →
programania © (2005-08-22 22:45) [3]Нужно все рисовать в bitmap фон, персонаж,
а не на экране и выводить уже готовое
вот пример где ходит персонаж из poser и не мерцает
http://programania.com/girl.zip 171 kb
← →
grouzd[E]v © (2005-08-22 23:13) [4][2] melena © (22.08.05 17:48)
А куда уж подробнее? У вормы есть свойство doublebuffered - присваивем ему true и ага
ЗЫ Вах! Землячка! НН рулит!
[3] programania © (22.08.05 22:45)
А может ей надо TImage"ы двигать?
---
... we are walking on a thin line and you better avoid the risk ...
← →
melena © (2005-08-23 12:52) [5]да добавила я form1.doublebuffered := true в proc TForm1.FormCreate все-равно мерцает
← →
grouzd[E]v © (2005-08-23 15:05) [6]Так ты как делаешь? Рисуешь на канве или двигаешь button"ы c image"ами?
Кстати, если двигаешь на панели (она же TPanel), то doublebuffered нужно ставить не для формы, а для этой панели
Лучше, напиши код
---
... we are walking on a thin line and you better avoid the risk ...
← →
melena © (2005-08-23 18:08) [7]вобщем все это выглядит вот так
timer1.Interval:=20;
....
procedure TForm2.Timer1Timer(Sender: TObject);
begin
bm.Canvas.Brush.Color:=clbackground;
bm.Canvas.fillRect(rect(0,0,Form2.ClientWidth,Form2.ClientHeight));
t:=t+timer1.Interval;
//Edit2.Text:=inttostr(t);
if t<c then begin
r:=r0;
bm.Canvas.Brush.Color:=clyellow;
bm.Canvas.Pen.Color:=clyellow;
bm.Canvas.Ellipse(150-r,150-r,150+r,150+r);
end;
if (t>c) and (t<p) then begin
r:=r0+round(a*abs(sin(pi*v*(t-c)/1000)));
bm.Canvas.Brush.Color:=clyellow;
bm.Canvas.Pen.Color:=clyellow;
bm.Canvas.Ellipse(150-r,150-r,150+r,150+r);
end;
if (t=p) or (t>p) then begin t:=t-p;
bm.Canvas.Brush.Color:=clyellow;
bm.Canvas.Pen.Color:=clyellow;
bm.Canvas.Ellipse(150-r0,150-r0,150+r0,150+r0);
end;
//Edit1.Text:=inttostr(r);
//Edit3.Text:=inttostr(round(a*abs(sin(pi*v*t/1000))));
Form2.Canvas.Draw(0, 0, bm);
end;
← →
grouzd[E]v © (2005-08-23 19:33) [8]А ты refresh / repaint для формы делаешь?
Если делать, то моргать будет даже с двойным буфером
Выход: рисовать на канве TImage
---
... we are walking on a thin line and you better avoid the risk ...
← →
melena © (2005-08-23 21:20) [9]да нет я ничего такого не делаю,но раньше я рисовала сразу на канве, вот тогда мерцало сильнее, а сейчас с таким кодом намного меньше,может моргает из-за того что интервал у таймера очень маленький?
← →
grouzd[E]v © (2005-08-23 22:28) [10]Да нет, я пробовал. Если форму не перерисовывать мерцания нет даже без вклуючения doublebuffered. А на форме есть еще какие-нибудь компоненты?
ЗЫ имхо лучше все же рисовать на канве TImage"а
---
... we are walking on a thin line and you better avoid the risk ...
← →
melena © (2005-08-23 23:08) [11]есть меню ,пара edit"ов и пара label"ов
← →
grouzd[E]v © (2005-08-24 00:59) [12]А они лежат ПОВЕРХ той области, на которой рисуешь?
И вообще, что моргает - форма или компоненты?
---
... we are walking on a thin line and you better avoid the risk ...
← →
melena © (2005-08-24 08:37) [13]вобщем пульсирует шарик с определенной частотой, когда частота пульсации маленькая, те от 1 до где-то 5 гц все нормально ничего не мерцает, а вот при большей частоте при прорисовке шарика с новым радиусом уже видно мерцание, те пробегает полоса.
← →
grouzd[E]v © (2005-08-24 12:23) [14]Может частота шарика > частоты монитора?
---
... we are walking on a thin line and you better avoid the risk ...
← →
melena © (2005-08-24 12:42) [15]да нет, макс частота 25 гц, у монитора 85
← →
grouzd[E]v © (2005-08-24 16:30) [16]Тогда нужно смотреть на программу. И лучше с сырцами
---
... we are walking on a thin line and you better avoid the risk ...
← →
melena © (2005-08-24 17:33) [17]с чем извини?
интересная штука:запускаю exe"шный файл на компе, где не установлен delphi, все нормально-ничего не мерцает, фигня какая-то:-Р
← →
grouzd[E]v © (2005-08-24 17:52) [18]Диагноз =) Стучись в аську 243059969
ЗЫ Сырцы - исходники
---
... we are walking on a thin line and you better avoid the risk ...
← →
melena © (2005-08-24 21:23) [19]я тебе на мыло сбросила, получил?
← →
OldNaum © (2005-08-24 21:39) [20]{offtopic}
Как активно Мастера всегда бросаются помогать дэвушкам ) Любят давать мыла / аси ) LOL. sorry за оффтоп )
{/offtopic}
← →
grouzd[E]v © (2005-08-24 22:28) [21]> я тебе на мыло сбросила, получил?
да
> [20] OldNaum © (24.08.05 21:39)
Скажи это Новоуральску =)
ЗЫ Хотя... к тому ж землячка...
---
... we are walking on a thin line and you better avoid the risk ...
← →
OldNaum © (2005-08-24 22:43) [22]{offtopic}
а че за Новоуральск? все про него говорят рано или поздно в некоторых топиках. а я мимо ) расскажите на досуге ) даешь ветку "Новоуральск" в "Потрепаться" ) sorry за оффтоп )
{/offtopic}
← →
grouzd[E]v © (2005-08-24 23:13) [23]Мифическое такое существо. Ходит по форумам и задает т-у-п-ы-е вопросы.
Читай архив "Игр".
---
... we are walking on a thin line and you better avoid the risk ...
Страницы: 1 вся ветка
Форум: "Media";
Текущий архив: 2006.02.05;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.011 c