Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Устранение мерцание

Автор: XaMMaX 26.09.2006 21:55

Вообщем делал я прогу тут на форуме поворота 3д квадрата теперь я её расширел и всё мирцает что и понятно =) Слышал есть двойная буферация которая это устраняет , но не знаю что она из себя представляет =( Или другие способы! wub.gif

Автор: lapp 27.09.2006 3:34

Цитата(XaMMaX @ 26.09.2006 18:55) *

Вообщем делал я прогу тут на форуме поворота 3д квадрата теперь я её расширел и всё мирцает что и понятно =) Слышал есть двойная буферация которая это устраняет , но не знаю что она из себя представляет =( Или другие способы! wub.gif

Может, ты имеешь в виду переключение графических страниц?
Рисуешь сначала в неактивную страницу, потом переключаешь страницы, делаешь изменения на неактивной, снова переключаешь..

Автор: мисс_граффити 27.09.2006 3:34

Делфи?
Если да, то:
1)

Код
DoubleBuffered:=true

2) меняешь свойство формы AlphaBlend на true
тоже иногда помогает.

Автор: Гость 27.09.2006 11:48

нет паскаль! можно кусок кода? плиз!

Автор: klem4 27.09.2006 12:13

Цитата
нет паскаль! можно кусок кода? плиз!


Поиск - >
- видео страницы
- SetActivePage
- SetVisualPage
...

Автор: XaMMaX 27.09.2006 21:55

хм интерестно почему не работает =(

Код: (Показать/Скрыть)

Нуждаюсь в помощи =)

Автор: volvo 27.09.2006 23:38

Файл данных где?

Автор: XaMMaX 27.09.2006 23:48

Да совсем забыл вот он =)


Прикрепленные файлы
Прикрепленный файл  ship.zip ( 333 байт ) Кол-во скачиваний: 157

Автор: volvo 28.09.2006 0:07

Цитата
интерестно почему не работает =(
Во-первых, потому, что у режима VGAHi 640*480, который наверняка у тебя устанавливается, просто НЕТ нескольких видеостраниц... Так что, придется делать:
{ gd:=detect; }
gd := EGA;
gm := EGAHi;
initgraph(gd,gm,'');

вот так...

Это было первое. Второе: страницы нумеруются не с 1-цы, а с 0. Переделай нумерацию...

Автор: XaMMaX 28.09.2006 0:37

Да это я исправил, но ты случайно не пробовал компилировать? Мерцание становится ещё более заметным =(

Автор: volvo 28.09.2006 0:46

Угу... А знаешь, почему? Потому, что ты неправильно работаешь со страницами. Не там меняешь... Вот мой первоначальный набросок:

Прикрепленный файл  active.pas ( 4.16 килобайт ) Кол-во скачиваний: 477


Автор: XaMMaX 28.09.2006 0:55

Да спасибо это уже намного лучше, но уменя по прежнему мерцания =( хоть и не такие ужасные как были может у меня комп такой? volvo, какие твои результаты? Совершенно нет мерцания?

Автор: volvo 28.09.2006 1:14

Почему же нету... Есть немного smile.gif

Я вот хочу попробовать обойтись вообще без переключения страниц, немного перестроив программу. Попробую - отпишусь...

Автор: XaMMaX 28.09.2006 1:17

Буду ооооочень признателен!

Автор: XaMMaX 28.09.2006 19:08

Volvo, расскажи как ты хочеш престроить программу? Теоритически.

Автор: volvo 28.09.2006 23:26

Теоретически - это не ко мне. Я не теоретик. И до тех пор, пока работающий результат не получен я ничего не выкладываю. Пока не получается полностью избавиться от мерцания, как получится (и если получится) - выложу...

Автор: XaMMaX 28.09.2006 23:41

Ну ладно жду =) Ну и если не получится ты всё равно отпишись!

Автор: Coder_perm 29.09.2006 11:20

Я избавился от мерцания рисованием в буфер, тоесть не в видео память, а в свой массив. А потом готовый массив копировал целиком в видео память, без стирания. Этот способ сложен тем, что необходимо писать свои функции рисования полигонов, а не пользоваться стандартным graph.tpu.

Автор: XaMMaX 1.10.2006 1:06

Не nea.gif Это для меня сложно =( Надо чего попроще!