DirectInput DirectInput C/C++ 튜토리얼 튜토리얼 5 :액션 맵의 사용법 스텝 5 :액션 맵의 표시   [목차열람] [주소복사] [슬롯비우기]
스텝 5 :액션 맵의 표시
 
Microsoft DirectX 9.0

스텝 5 :액션 맵의 표시


액션 맵에는, 개발자가 특정의 콘트롤러 하드웨어에 의존하지 않고 게임 액션을 정의할 수 있다고 하는 이점외, 사용자에 의한 복구성을 간단하게 하는 사용자 인터페이스 (UI)가 제공된다고 하는 이점도 있다.

UI 는, 텍스트만과 그래픽의 2 개의 형식에서 표시할 수 있다. 또, 이것들 2 개의 옵션을 표시 전용 모드 또는 편집 모드로 표시할 수 있다.

UI 를 표시하려면 , 몇개의 초기설정이 필요하게 된다. 우선,DICOLORSET 구조체를 선언해, 초기화한다. 이 구조체는, 그 이름이 가리키도록(듯이), UI 의 표시에 사용하는 컬러 세트를 기술한다. 다음 코드는, 이 구조체의 설정을 나타내고 있다.

DICOLORSET dics;
ZeroMemory(&dics, sizeof(DICOLORSET));
dics.dwSize = sizeof(DICOLORSET);

ZeroMemory 함수를 사용해 메모리 블록을 제로로 설정 하면, 디폴트의 컬러 schema를 사용하는 것을 나타낸다. 이외에는, 초기화를 필요로 하는 요소는 dwSize 멤버뿐이어, 이것은 DICOLORSET 구조체의 사이즈로 설정한다.

DICOLORSET 구조체는, 이 코드에 나타나듯이 보다 큰 DICONFIGUREDEVICESPARAMS 구조체의 일부로서 포함된다.

DICONFIGUREDEVICESPARAMS dicdp;
ZeroMemory(&dicdp, sizeof(dicdp));
dicdp.dwSize = sizeof(dicdp);
dicdp.dwcUsers       = 1;
dicdp.lptszUserNames = m_strUserName;

dicdp.dwcFormats     = 1;
dicdp.lprgFormats    = &m_diaf;
dicdp.hwnd           = m_hWnd;
dicdp.lpUnkDDSTarget = NULL;

DICONFIGUREDEVICESPARAMS 구조체를 선언해, 이 구조체에 할당된 메모리에 제로만을 저장 하도록(듯이) 설정한다. 여기에서도,dwSize 멤버에는 구조체의 사이즈를 설정한다. 이 예에서는 현재 로그 온 하고 있는 사용자만이 사용되기 (위해)때문에,dwcUsers 는 1 으로 설정한다. 사용자명을 현재 시스템에 로그 온 하고 있는 사용자의 이름으로 하기 (위해)때문에, 변수 m_strUserName 는 NULL 로 설정한다.

액션 맵을 저장 하는 1 개의 DIACTIONFORMAT 구조체만이 건네받기 (위해)때문에,dwcFormats 는 1 으로 설정해,DIACTIONFORMAT 구조체의 주소는 lprgFormats 로서 건네준다.

변수 hwnd 에는 애플리케이션 윈도우의 핸들을 할당해lpUnkDDSTarget 는 NULL 로 설정해, Microsoft® Windows® Windows Graphics Device Interface (GDI) 함수를 사용해 구성 사용자 인터페이스의 이미지를 드로잉(Drawing) 하는 것을 나타낸다.

초기화된 DICONFIGUREDEVICESPARAMS 구조체는, 다음 코드에 나타나듯이IDirectInput8::ConfigureDevices 에게 건네진다.

hr = m_pDI->ConfigureDevices(NULL, &dicdp, dwFlags, NULL);

최초와 마지막 인수는 옵션의 콜백 함수와 함께 사용하지만, 이 샘플에서는 사용하지 않기 때문에 NULL 를 설정해 있다.

제 2 인수는, 표시되는 데이터나 그 외의 보조 정보를 저장 하는 DICONFIGUREDEVICESPARAMS 구조체의 주소이다.

제 3 인수는, 표시가 읽어내기 전용 모드나 편집 모드인지를 결정하는 플래그에 사용한다. 변경할 수 없는 참조 목적으로 해 구성을 표시하는 경우는, 이 인수에 DICD_DEFAULT 플래그를 사용한다. 다만, 이 예에서는, 변수 dwFlags 에는 이미 DICD_EDIT 가 설정되어 있기 (위해)때문에, 사용자에 의한 구성이 가능하다. 이것에 대해서는, 「스텝 6 :액션 맵의 사용자 구성」으로 설명하고 있다.



© 2002 Microsoft Corporation. All rights reserved.
↑TOP