리눅스 C 에서 키보드 이벤트를 어떻게 하는지 알고 싶습니다.
글쓴이: svsummon / 작성시간: 금, 2010/05/07 - 5:13오후
페도라 10에서 gcc 기반으로 미니게임을 만드는 학생입니다.
지금 체스 게임으 만드려고 하는데..
처음에는 좌표를 선택해서 말을 고르려고 했는데
생각해보니 난이도가 너무 쉬워질거 같아서 직접 키보드의 입력을 이벤트로 받으려고 합니다.
C# 같은 곳에서는 버튼을 만들고 여기에 대한 리스너를 만들면 되는거로 아는데..
지금 제가 생각하는 방법으로는
while 문을 무한으로 돌리면서(중간에 슬립(500) 정도?) getchar 를 계속 실행해서
상하좌우 키패드에 관한 값이 나오면 그에 맞는 작업(switch 케이스를 이용해서 함수 호출)를 호출 하는 방법을 생각하고 있습니다.
이때 예상 되는 문제점은.. 두개의 키를 동시에 눌렀을때, 디폴트로 가는가 아니면 에러가 나버리는가.. 하는 점입니다.
혹시 제가 생각한 방법에 문제가 있거나, c# 에서처럼 리스너 같은 개념이 있다면 도움 부탁드립니다.
Forums:
getchar로는 게임 만들기에 적합하지 않습니다.
getchar로는 여러개의 key에 대해 대응할 수 없습니다.
대신 키 인터럽트를 이용하여 key pressed / released 이벤트를 얻어올 수 있기에,
그것을 잘 이용하면 현재 어떤 키들이 눌리어 있는가 판단 가능합니다.
키 인터럽트에 대해 좀 더 공부해보세요.
댓글 달기