다음을 통해 공유


IGameInputReading::GetKeyState

키보드 입력에서 활성 키의 상태를 검색합니다.

구문

uint32_t GetKeyState(  
         uint32_t stateArrayCount,  
         GameInputKeyState* stateArray  
)  

매개 변수

stateArrayCount _In_
형식: uint32_t

게임 컨트롤러에서 작동하는 키 수를 반환합니다. 이 기능은 IGameInputReading::GetKeyCount 메서드를 호출하여 얻을 수 있습니다.

stateArray _Out_writes_(stateArrayCount)
형식: GameInputKeyState*

GameInputKeyState* 구조에 대한 포인터입니다.

반환 값

형식: uint32_t

유효한 버퍼 항목 수입니다.

설명

IGameInputReading::GetKeyState 메서드는 게임 컨트롤러 입력에서 활성 키의 상태를 검색합니다. 기본 키보드 상태는 이동 또는 무기 발사와 같이 키보드 입력을 게임 동작에 매핑하기 위한 용도로 사용됩니다. 일반 텍스트 입력에는 부적합합니다. (IME와 같은 복잡한 기능이 아닌) 게임에서 텍스트 상자와 같은 단순한 기능을 구현하기 위해서는 이 상태를 기초로 상당한 양의 코드를 작성해야 합니다. 다른 API는 해당 기능이 필요한 위치에 사용해야 합니다.

각 키의 상태는 배열 내에서 고정된 인덱스에 저장되지 않습니다. 대신 키를 누르면 배열에 있는 유효한 요소 수가 증가하고 키를 놓으면 줄어듭니다. 배열 끝에 새 키가 추가되고, 키를 누르면 간격을 채우기 위해 모든 항목이 아래로 이동합니다. scancodevkey 값이 모두 0인 첫 배열 요소입니다. 이는 배열의 유효한 데이터 끝을 나타냅니다. 표준 키보드는 한 번에 4~6개 키 누름만 보고할 수 있으며, 고급 게이밍 키보드라도 한 번에 12~16개 이상의 키를 지원하지 않습니다. 따라서 이 방법은 일반적으로 배열의 최대 크기를 상당히 작게 유지합니다. 최대 크기는 IGameInputDevice 인터페이스를 통해 쿼리할 수 있습니다. 이것은 키보드 상태를 확인할 때마다 응용 프로그램이 256개의 값 배열을 반복하는 것보다 훨씬 효율적입니다.

요건

헤더: GameInput.h

라이브러리: xgameruntime.lib

지원되는 플랫폼: Windows, Xbox One 패밀리 콘솔 및 Xbox Series 콘솔

참고 항목

고급 GameInput 항목
GameInput 개요
IGameInputReading