Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
[Tier Гость
|
Добавлено: Вс Июл 13 2003 19:34 Заголовок сообщения: [CBuilder6] Canvas |
|
|
[CBuilder6] При работе с графикой прямо на канве формы если рисунок динамически меняется, то заметно мигание, например по таймеру летает еллипс по канве формы или мини-мультик из спрайтов. Просто при движение по идее нужно на каждом шаге убирать следы предыдущего, т.е. затирать цветом фона. А это очень заметно. Или может просто очищать всю канву ? Но такой ф-ии вроде нету(или что, зарисовывать весь экран закрашеным прямоугольником? ). И не думаю что это поможет. Если работать с ТImage то он вообще полностью обновляется при любом изменении. Где-то читал на эту тему что-то про обратную кадровую развертку экрана, или что-то в этом духе, но ничего конкретного там написано не было. Подскажите как убрать мигание :"( |
|
Вернуться к началу |
|
|
GREA
Зарегистрирован: 14.05.2003 Сообщения: 758 Откуда: Новосибирск
|
Добавлено: Пн Июл 14 2003 15:36 Заголовок сообщения: Используй буфер (невидимый битмэп), а потом целиком копируй на канву(--) |
|
|
- |
|
Вернуться к началу |
|
|
[Tier Гость
|
Добавлено: Пн Июл 14 2003 18:01 Заголовок сообщения: Re: Вопрос чуть в другом |
|
|
Да, большое спасибо за ответ, я впринципе так и делаю, но ведь проблема не в долгом прорисовывании множества всяких фигур или спрайтов, а в том что перед каждым новым выводом надо очищать старое, то, что осталось на канве, это то и вызывает мигание, в дос это вроде решалось наличием нескольких видеостраниц, т.е. пока рисуешь на одной, смотришь на другую, когда нарисовал - делаешь ее активной, а ту затираешь и рисуешь следующий шаг. А с невидимым битмэпом я работал, когда разбирался со спрайтовой анимацией, так там что-то писали про обратную развертку экрана, мол надо тогда рисовать, но что это не пойму. Или может есть другой способ убрать эту проблему ? Заранее спасибо. |
|
Вернуться к началу |
|
|
Andy-C Гость
|
Добавлено: Вт Июл 15 2003 07:29 Заголовок сообщения: Re: Вопрос чуть в другом |
|
|
Попробуйте использовать DirectDraw или что-то подобное. |
|
Вернуться к началу |
|
|
[Tier Гость
|
Добавлено: Чт Июл 17 2003 00:54 Заголовок сообщения: Re: Вопрос чуть в другом |
|
|
Ладно, вижу быстро эту проблему не решить :о( Надо будет с чем-то разбираться именно сейчас, и что самое обидное - знаю что и такое решение есть :о( |
|
Вернуться к началу |
|
|
GREA
Зарегистрирован: 14.05.2003 Сообщения: 758 Откуда: Новосибирск
|
Добавлено: Вт Июл 22 2003 15:46 Заголовок сообщения: !!!!!!!!!!!!!!!!! |
|
|
Так ты должен стирать в своем буффере, рисовать новый кадр, а потом копировать на форму (имейдж) поверх старого изображения. Когда стираеш в буфере, мигания не видно, так как он НЕВИДИМ!!!!!!!!! Что касается directx - это разговор особый, но для простых задач тебе сойдет и этот способ. Если непонятно, лови меня в #177333160 или пиши на grea@yandex.ru |
|
Вернуться к началу |
|
|
|