Главная страница
    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.013 c
2-1137685641
_vasya
2006-01-19 18:47
2006.02.05
Как использовать одну процедуру несколько раз одновременно


15-1137360108
Gero
2006-01-16 00:21
2006.02.05
Я был в шоке когда прочитал


15-1137350050
Андрей К
2006-01-15 21:34
2006.02.05
Подскажите аспирантуры в Москве...


2-1137675869
Змей
2006-01-19 16:04
2006.02.05
borderstyle ->bsnone (нельзя изменить размеры формы)


10-1112877637
eugene32
2005-04-07 16:40
2006.02.05
Поиск в Word e





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский