따라서 사용자 입력을 추적하는 게임 루프 함수 내부에서 여러 번 호출됩니다. 게임 루프가 매초 40 번 반복되고 0.5 초 동안 키를 누르고 있으면 함수가 20 번 호출되기 때문에 이런 일이 발생한다고 생각합니다. 나는 이것을 sfml 이벤트로 처리하려고 시도했지만 작동하지 않았습니다 window.setKeyRepeatEnabled(false)
. 어떻게 해결할 수 있습니까?
//this gets called 20-30times
if (sf::Keyboard::isKeyPressed(sf::Keyboard::Left))
{
leftPlayerPoints++;
}
두 개의 부울 플래그를 사용 합니다. 하나는 키를 눌렀는지 확인하는 데 사용되며 다른 하나는 작업이 아직 발생했는지 확인하는 데 사용됩니다.
간단히 말해서
if (key_is_pressed)
{
if (!action_have_happened)
{
// Perform action...
action_have_happened = true;
}
// Else: Action have already happened this key-press, don't do it again
}
키를 놓으면 두 플래그를 모두 재설정합니다 (로 false
).
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다