Pygame의 키보드 입력: 키 입력 이벤트 처리
pygame 1.9.2를 사용하여 간단한 게임을 개발할 때 다음과 같은 문제가 발생할 수 있습니다. 화살표 키로 조종하는 선박이 지나치게 빠르게 움직입니다. 이 문제는 키를 누르고 있는 동안 계속해서 키 누름을 등록하는 데서 발생합니다.
이 문제를 해결하려면 현재 누른 키를 검색하는 pygame.key.get_pressed()에 의존하는 대신 키 입력 이벤트 처리를 고려하세요. KEYDOWN 이벤트는 현재 프레임 내에서 누른 키를 캡처하여 키 입력당 한 번만 이동이 발생하도록 합니다.
events = pygame.event.get() for event in events: if event.type == pygame.KEYDOWN: if event.key == pygame.K_LEFT: location -= 1 if event.key == pygame.K_RIGHT: location += 1
그러나 지속적인 이동이 필요한 경우 이동 빈도를 제한하는 제한을 구현할 수 있습니다. 한 가지 접근 방식은 최대 프레임 속도를 설정하거나 카운터를 사용하여 몇 틱마다 움직임을 제한하는 것입니다.
move_ticker = 0 keys = pygame.key.get_pressed() if keys[K_LEFT]: if move_ticker == 0: move_ticker = 10 location -= 1 if location == -1: location = 0 if keys[K_RIGHT]: if move_ticker == 0: move_ticker = 10 location += 1 if location == 5: location = 4
또한 게임 루프 중에 카운터를 줄입니다.
if move_ticker > 0: move_ticker -= 1
이렇게 하면 10프레임마다 움직임이 발생합니다.
위 내용은 파이게임에서 키보드 입력을 처리할 때 지나치게 빠른 움직임을 방지하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!