pygame는 키보드의 연속 모니터링을 실현한다

pygame의 키보드에 대한 연속 감청은 여러분에게 참고할 수 있습니다. 구체적인 내용은 다음과 같습니다.
다음 코드를 참조하십시오.

for event in pygame.event.get():
  if event.type == pygame.QUIT:
   exit()
  elif event.type == pygame.KEYDOWN:
   if event.key == pygame.K_RIGHT:
    print(" ")
   if event.key == pygame.K_UP:
    print(" ")
   if event.key == pygame.K_DOWN:
    print(" ")
   if event.key == pygame.K_LEFT:
    print(" ")
여러분이 키보드 사건을 처음 감시하면 보통 이런 코드를 쓰는데 키보드 위아래 좌우 키에 대한 감시를 중점적으로 보겠습니다.우리가 코드 블록을 실행할 때 우리는 이 몇 줄의 코드가 우리의 생각과 다르다는 것을 발견할 수 있다. 우리가 게임을 개발할 때 우리는 대부분 연속적으로 제어할 수 있기를 바란다. 이렇게 하면 우리의 손의 피로를 크게 줄일 수 있고 게이머들에게도 매우 우호적일 것이다. 그러나 우리의 현재 코드 블록은 키보드를 두드려서 사건에 응답하는 것이다.그래서 우리는 코드를 개선해야 한다. 개선하는 방법은 다음과 같은 두 가지가 있는데 여러분은 자신의 이해에 따라 선택할 수 있다.
메서드1: 중간 변수 설정

moving_r = False
moving_l = False
moving_u = False
moving_d = False
while True:
 for event in pygame.event.get():
  if event.type == pygame.QUIT:
   exit()
  elif event.type == pygame.KEYDOWN:
   if event.key == pygame.K_RIGHT:
    moving_r = True
   if event.key == pygame.K_UP:
    moving_u = True
   if event.key == pygame.K_DOWN:
    moving_d = True
   if event.key == pygame.K_LEFT:
    moving_l = True
  elif event.type == pygame.KEYUP:
   if event.key == pygame.K_RIGHT:
    moving_r = False
   if event.key == pygame.K_UP:
    moving_u = False
   if event.key == pygame.K_DOWN:
    moving_d = False
   if event.key == pygame.K_LEFT:
    moving_l = False
 if moving_r:
  print(" ")
 elif moving_u:
  print(" ")
 elif moving_d:
  print(" ")
 elif moving_l:
  print(" ")
네 개의 모빙 변수를 도입하여 네 개의 변수의 초기값을 모두 Flase로 설정하고pygame의 KEYDOWN과 KEYUP 방법으로 네 개의 변수의 값을 바꾸어 키보드에 대한 연속적인 감시를 실현하는 방법은 이해하기 쉽지만 소백이 코드의 재구성에 대해 잘 알지 못하면 매우 복잡해 보인다.
방법2:pygame 활용 중 get_pressed()

#  
 Key_pressed = pygame.key.get_pressed()
 if Key_pressed[K_UP]:
  print(" ")
 if Key_pressed[K_DOWN]:
  print(" ")
 if Key_pressed[K_LEFT]:
  print(" ")
 if Key_pressed[K_RIGHT]:
  print(" ")
이렇게 하면 키보드 이벤트를 연속적으로 감청할 수 있지만, 여기서 주의해야 할 것은if 반단문 뒤에 중괄호가 아니라 소괄호가 있는 경우, 두 번째 주의해야 할 부분은 바로 키보드 이름입니다. 만약에 K_를 직접 입력하면UP 등은 오류가 발생할 수 있습니다. 두 가지 해결 방법이 있습니다. 하나는 pygame을 가져오는 방법입니다.

from pygame import *
이렇게 하면 잘못 보고하지 않을 것이다. 다른 하나는 K_UP 앞에 pygame 추가:

if Key_pressed[pygame.K_UP]:
  print(" ")
이것도 가능하다.
이상은 본문의 전체 내용입니다. 여러분의 학습에 도움이 되고 저희를 많이 응원해 주십시오.

좋은 웹페이지 즐겨찾기