Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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.02 c
3-1134117050
kyn66
2005-12-09 11:30
2006.02.05
Поиск в таблице с составным индексом


1-1136640439
01
2006-01-07 16:27
2006.02.05
Защита ресурсов программы


3-1133792132
zz 5
2005-12-05 17:15
2006.02.05
Lookup поля


4-1132756932
rusgl
2005-11-23 17:42
2006.02.05
Сохранить содержимое IE в BMP файл.


15-1136960266
ArchValentin
2006-01-11 09:17
2006.02.05
Блин, народ, не могу с Blootuth портом разобраться!





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский