Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.12.2010, 02:21   #1
casusbeli
 
Регистрация: 21.12.2010
Сообщений: 4
По умолчанию Анимация_в_WindowsForms

У меня была задача написать игру бильярд в WindowsForms, я зарисовал зеленый стол и шары, когда нужна была анимация весь стол перерисовывался в цыкле, но при этом появлялись ужасные мерцания.. Можна как-то избавиться от мерцания или может нужно как-то по другому сделать игру? Я думал может можна как-то сделать шары в динамическом виде чтобы они могли нормально перемещаться и не надо было перерисовывать стол..
И еще часто бывает при такой анимации программа зависает и появляется просто белый экран пока не закончится цыкл. Как это исправить?
casusbeli вне форума Ответить с цитированием
Старый 21.12.2010, 02:28   #2
UltimaBeaR
Форумчанин
 
Аватар для UltimaBeaR
 
Регистрация: 21.12.2010
Сообщений: 199
По умолчанию

Насчет белого экрана - незнаю это у тебя уже косяки в коде какие-то

А вобще для устранения мерцания есть техника - двойная буферизация. Смысл ее в том что ты вырисовываешь кадр изображения не на экран а в участок памяти (backbuffer). После того как кадр отрисован, ты копируешь память из бэкбуффера в экран(ну в то место вобщем куда ты щас все это дело рисуешь).

если ты рисуешь в какой-нибудь Bitmap-подобный объект то бэкбуффером тебе будет служить объект Bitmap с такими же настройками (ширина, высота, формат пикселя) как у экранного. В него и рисуешь.. потом копируешь данные из этого битмапа в экран, и все)

кадры я имею в виду не кадры твоей анимации а кадры в смысле те которые на экране видишь уже готовые

ЗЫ: бильярд я тоже пытался сделать в шараге - не вышло, однако то глючное нечто что вышло я как-то сдал
UltimaBeaR вне форума Ответить с цитированием
Старый 21.12.2010, 02:37   #3
casusbeli
 
Регистрация: 21.12.2010
Сообщений: 4
По умолчанию

Спасибо за ответ.
С белым экраном у меня так не всегда, иногда анимация какое-то время идет, а потом вдруг как буд-то все по висло, как цикл закончился снова все впорядке...
casusbeli вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц