저는 ncurses로 콘솔 게임을하고 있습니다. 기본 메뉴에서 사용자가 컨트롤 키를 설정할 수있게하려고합니다. 지금까지 내가 이해 한대로, ncurses에서 e.a에 액세스 할 수 있습니다. a - key는 char 'a'의 int 값에의합니다. 'a'와 함께 키 ingame을 사용하면 완벽하게 작동하지만 메뉴가 붙어 있습니다.int에서 char로 변환하여 ncurses 키 바인딩을 표시합니다.
각 키 바인딩에 대해 기본값 인 e.a를 저장했습니다. '에이'. 게임이 시작되면 int 값에서 'a'바인딩을 올바르게 읽고 ingame을 사용할 수 있습니다. 그러나 올바르게 표시되지 않습니다. 나는 그것이 이렇게되기를 바란다 : "왼쪽 : a". 나는 이것을 좋아한다 :
std::string key = "Left: " + static_cast<char>(_value);
_value는 내가 'a'로 저장하고 초기화 한 int 값이다. 나는 또한 캐스팅하지 않고 그것을 시도했다, btw.
이제 표시되는 내용이 이상합니다. "a"대신에 "~ T^C"라고 쓰여 있습니다. "s"와 "d"의 경우 문자가 전혀 표시되지 않습니다. "w"는 매우 이상한 인코딩 물음표가됩니다.
int 값이나 다른 문자로 인코딩하는 것과 관련이 있다고 가정합니다. 그렇다면 올바른 방법으로 표시하려면 어떻게해야합니까?
고맙습니다.
어떻게 '_value'를 선언합니까? "a"(한 문자)와 "a"(짧은 문자열)는 완전히 다른 의미를 가지고 있음에 유의하십시오. –
왜 키를 매핑하는 데 int를 사용합니까? –