2012-07-13 10 views
5

가능한 중복 : 표준 콘솔에서 테트리스 게임을 만들려고 노력
Non-blocking getch(), ncurses비 차단 getch()

임. 비 차단 getch()가 필요하므로 아무 키도 누르지 않아도 블록이 떨어질 수 있습니다. 아무 키도 누르지 않으면 -1을 반환하는 함수를 갖는 것이 좋을 것입니다. 그렇지 않으면 키 코드입니다.

누군가 내게 힌트 또는 링크를 줄 수 있다면 기쁠 것입니다.

+0

무한 루프가 있어야하며 내부에 _keypress_ 이벤트를 처리해야합니다. – SingerOfTheFall

+0

@RobKennedy - dupe는 ncurses를 사용한다고 가정합니다. –

+0

@kittyPL, 어떤 OS 및 컴파일러를 사용하고 있습니까? 당신이 중복 투표에서 추측 할 수 있듯이,'getch()'는 비표준 함수입니다. 이 이름을 가진 함수는 MS Windows API와 "curses"라는 Unix 라이브러리에 제공됩니다. 우연히 이름을 공유하는 것 외에도, 그 기능은 전적으로 무관합니다. –

답변

7

는 운영 체제 특정의하지만 라이브러리는 아마도 이것은 당신이 원하는 것을 정확히이

11

을 할 것이다라는 함수 kbhit() 또는 유사한 가지고 결정하는 일을 기본적으로

int getch_noblock() { 
    if (_kbhit()) 
     return _getch(); 
    else 
     return -1; 
} 

kbhit()을 키를 누르면

Windows 및 Microsoft Visual C++을 사용합니다.

+0

_kbhit()을 사용하려면 #include 이 필요합니다. – lowtech