Pygame의 키보드 입력: 키 누름 처리
게임에서 왼쪽 또는 오른쪽 화살표 키를 누르고 있으면 배가 계속 움직입니다. , 움직임을 제어하기가 어렵습니다. 이 문제를 해결하는 방법을 살펴보겠습니다.
원래 문제:
귀하의 코드는 pygame.key.get_pressed()를 사용하여 현재 누르고 있는 키를 확인합니다. 그러나 이 접근 방식은 키를 누르고 있는 동안 한 번의 키 누름에 대해 여러 이벤트가 생성되므로 함선의 과도한 이동으로 이어질 수 있습니다.
해결책:
get_pressed()에 의존하는 대신 Pygame에서 제공하는 이벤트를 사용하는 것을 고려해보세요. 특히 현재 프레임에서 키가 눌렸음을 나타내는 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
속도 제한을 추적하기 위해 move_ticker 변수는 프레임마다 감소합니다. 키를 누르면 10으로 재설정되어 10프레임마다 이동할 수 있습니다.
if move_ticker > 0: move_ticker -= 1
이러한 기술을 채택하면 게임에서 키보드 입력 처리를 미세 조정할 수 있으므로 보다 정밀한 제어와 선박의 움직임이 더욱 부드러워집니다.
위 내용은 보다 원활한 선박 이동을 위해 Pygame에서 키보드 입력 처리를 어떻게 개선할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!