Tôi đã xem một số trò chơi trên bàn điều khiển nơi màn hình làm mới/xóa chính nó mà không bị nhấp nháy gây phiền nhiễu. Tôi đã thử nhiều giải pháp, dưới đây là những gì tôi nhận được từ bây giờ:Màn hình xóa bàn điều khiển Win32 C++ mà không nhấp nháy
while(true)
{
if(screenChanged) //if something needs to be drawn on new position
{
COORD coordScreen = { 0, 0 };
DWORD cCharsWritten;
CONSOLE_SCREEN_BUFFER_INFO csbi;
DWORD dwConSize;
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
GetConsoleScreenBufferInfo(hConsole, &csbi);
dwConSize = csbi.dwSize.X * csbi.dwSize.Y;
FillConsoleOutputCharacter(hConsole, TEXT(' '), dwConSize, coordScreen, &cCharsWritten);
GetConsoleScreenBufferInfo(hConsole, &csbi);
FillConsoleOutputAttribute(hConsole, csbi.wAttributes, dwConSize, coordScreen, &cCharsWritten);
SetConsoleCursorPosition(hConsole, coordScreen);
}
///printf all the time graphics on their right position with SetConsoleCursorPosition
Sleep(33.3f);
}
Tuy nhiên, tôi nhận được một số nhấp nháy tối thiểu. Ai có ý tưởng gì không?
Nó có thể là các trò chơi này không được viết dưới dạng các ứng dụng giao diện điều khiển Windows, mà là ứng dụng DOS đang sử dụng các chế độ đồ họa khác nhau và viết pixel trực tiếp vào bộ nhớ đồ họa. –
@Captain Đọc lại câu đầu tiên. Mã nguồn không phải dành cho "trò chơi trên bàn điều khiển" mà anh ta đã thấy, mã nguồn là những gì anh ta đã thử. –
@CodyGray Rất tiếc;) –