enum class Clear Screen 화면 지우기 system("cls") 텍스트 좌 우 정렬 GetConsoleWidth GetConsoleScreenBufferInfo() GameState 관리엔 enum class가 짱. 사실상 1, 2, 3, 4, 5... 역할을 하면서도 그걸 읽는 사람이 이해하기 쉽게 해준다enum class -> switch() case 연계.void WaitForEnter()
{
std::cout << "Press Enter to Proceed";
//std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n'); 전에 입력 받았을 때만
std::cin.get();
}
cin.ignore로 버퍼에 남아있는 잔입력(특히 엔터키) 해결. std::numeric_limits<std::streamsize>::max() 로 가능한 한 최대 크기 버퍼지우기.\n 만났을 때 지우기 끝.std::cin.get() 으로 입력 대충 받아서 다음으로 넘기기.WaitForEnter 을 쓰려면 저 중간 코드가 필요.int BattleUI::GetConsoleWidth()
{
CONSOLE_SCREEN_BUFFER_INFO csbi;
GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &csbi);
return csbi.srWindow.Right - csbi.srWindow.Left + 1;
}
void BattleUI::ClearScreen()
{
#ifdef _WIN32
system("cls");
#else
system("clear");
#endif
}
#ifdef _WIN32 부분은 윈도우용 화면지우기. 맥/리눅스는 #else 부분.