Доброго времени суток!
Собственно мой вопрос. Написал программу для моделирования столкновения двух тел(шаров) на плоскости.
Изучаю WinAPI на С++, решил взять идею из книги Мозгового М.В. Мастер Класс. В программе решил реализовать визуализацию столкновения(т.к. знаний OpenGL либо DirectX нет, использовал GDI) средствами WinAPI. Ну вот в чем трабла:
Если запустить в цикле перемещение круга(функция Ellipse) из точки А в точку Б, то вслед за кругом остается след(наверное все видели)... Было решено устранить проблему. Я создал отдельную функцию: прямоугольник белого цвета, и при каждой итерации цикла вызывал её, так след от круга заполнялся былым цветом. При этом наблюдается весьма не слабое мигание, вот и спрашиваю, есть ли способы устранения этого бага.
Вот участок кода:
void UpScrenn(HDC hdc) //Это моя ф-ция.
{
HBRUSH hBrush;
hBrush = CreateSolidBrush(RGB(255, 255, 255));
SelectObject(hdc, hBrush);
Rectangle(hdc,0,0,1000,100);
DeleteObject(hBrush);
}
void move(HDC hdc,HWND hWnd) //ф-ция движения, шаров.
{
for(...)
{
UpScrenn(hdc);
}
}
Скринтош программы прилагаю.