0
그래서 내 프로그램과 함께 xinput을 사용하고 있습니다. 따라서 모든 하나의 컨트롤러를 검색 할 수 있도록 설정되어 작동합니다. 나는 컨트롤러의 버튼을 눌렀을 때를 감지 할 수 있기를 원한다. 프로그램을 시작할 때 버튼을 누르고 있으면 내가 사용하는 절차가 작동합니다. 나는 if 명령 설정을 잠시 동안 가지고 있으므로 내 컨트롤러에서 A를 누르면 어떤 이유로 값이 변경되지 않더라도 지속적으로 실행됩니다.XINPUT_GAMEPAD_A는 프로그램이 시작될 때 버튼을 누르고 있지 않으면 작동하지 않습니다.
기본적으로 프로그램을 열 때 A 키를 누르면 화면에 cout이 반환됩니다. 프로그램을 시작한 후 잠깐 (내가 원하는 작업) 누르면 그것을 감지하지 못합니다. 내가 올바른 순서로 올바른 모든 라이브러리를 포함하고 아는 한 지금까지
using namespace std;
XINPUT_STATE state;
bool A_button_pressed;
int online;
int test;
int main() {
if (XInputGetState(0, &state) == ERROR_SUCCESS)
{
online = 1;
cout << "I could find a controller, it is an Xbox Controller" << endl;
} else {
online = 2;
cout << "Unable to find controller, searching..." << endl;
}
cout << A_button_pressed << endl;
cout << "Active" << endl;
while (online == 1) {
bool A_button_pressed = ((state.Gamepad.wButtons & XINPUT_GAMEPAD_A) != 0);
cout << A_button_pressed << endl;
if (A_button_pressed = ((state.Gamepad.wButtons & XINPUT_GAMEPAD_A) != 0)) {
cout << "You pressed a button, congrats, game over..." << endl;
}
};
}
:
#include "stdafx.h"
#include <windows.h>
#include <iostream>
#include <Xinput.h>
#pragma comment(lib, "Xinput.lib")
#pragma comment(lib, "Xinput9_1_0.lib")