입력 장치는 플레이어의 요구를 전달할 수 있어야 한다
조이스틱, 키보드, 마우스 등의 다양한 디바이스를 모두 지원해줘야 한다
서로 다른 하드웨어에 대해 비슷한 컨트롤 방법이나 게임 경험을 제공해야 한다
다양한 연령대와 경험을 가진 사람들을 지원해야 한다
→ 어떻게 하면 지원할 수 있을까?
→ 게임의 특성을 고려해서 선택하기
실제 예제를 보면서 확인해보자
특정 키가 눌리는 전기적인 반응을 확인할 수 있다 (ex- GetAsyncKeyState(keycode);
를 통해 키가 눌렸는지 알 수 있다)
모든 키 상태를 받아와서 한 번에 확인한다 (ex- GetKeyboardState(PBYTE* lpKeyState)
)
⇒ 둘다 ‘현재’의 키 값을 받아오므로 Async
현재 키 값을 읽어오는 순간과 사용자가 누른 순간이 같아야 확인할 수 있다
연속적으로 키를 누르면 놓칠 수 있다
→ Loss Issue : 중요한 인풋을 처리할 수 없어지고, 계산 가능한 시간이 짧아짐 (빨리해야 중요한 인풋 받을수있어서 촉박해짐)