pygame가 키보드 이벤트를 포획하는 두 가지 방식을 상세히 설명합니다.

2223 단어 pygame포획키보드
방식1:pygame에서pygame을 사용합니다.event.get () 방법은 키보드 이벤트를 포획합니다. 이 방식으로 포획된 키보드 이벤트는 반드시 누르고 다시 튕겨야 합니다.
예:

for event in pygame.event.get(): #  
  if event.type == pygame.QUIT: #  
    print(" ")
방식2:pygame에서pygame을 사용할 수 있습니다.key.get_pressed () 는 모든 키 모듈을 되돌려줍니다. 키보드의 상량을 판단하면 모듈에서 그 키가 눌렸음을 판단할 수 있습니다. 눌리면 모듈에 이 키 정보가 존재합니다.이런 방식을 통해 키보드의 이벤트도 포착할 수 있고 눌렀다가 튕기는 조작이 필요 없으며 눌렀을 때 응답이 있어 유연성이 높다.
예제 코드:

mykeyslist = pygame.key.get_pressed() #  
if mykeyslist[pygame.K_RIGHT]: #  , 1
  print(" ")
 
요약:
두 가지 방식의 비교: 방식 1의 유연성은 방식 2의 좋은 것이 없다. 만약에 유연성에 대한 요구가 높은 게임이라면 일반적으로 사용 방식 2를 권장한다.

pygame 버튼 계속 누르기 응답


pygame의 작은 비행기 대전 프로그램을 쓰고 있지만 작은 문제에 부딪혔습니다.
키보드 이벤트를 통해 비행기의 좌우 이동을 조작합니다.

elif event.type == KEYDOWN:

    #  a left
     if event.key == K_a or event.key == K_LEFT:
       plane_temp.move_left()

움직일 수 있지만 매번 움직일 때마다 버튼을 눌러야 해서 괴로워요.
계속 누르고 그에 상응하는 효과를 실현하고 싶다
자료를 찾아 발견하다
pygame.key.set_repeat() control how held keys are repeated
set_repeat() -> None set_repeat(delay, interval) -> None When the
keyboard repeat is enabled, keys that are held down will generate
multiple pygame.KEYDOWN events. The delay is the number of
milliseconds before the first repeated pygame.KEYDOWN will be sent.
After that another pygame.KEYDOWN will be sent every interval
milliseconds. If no arguments are passed the key repeat is disabled.
When pygame is initialized the key repeat is disabled.
버튼은 기본적으로 한 번만 눌릴 수 있기 때문에 공교롭게도 어떤 버튼이 눌렸는지 확인한 후 순환을 통해 대응하는 동작을 실현한다

key_pressed = pygame.key.get_pressed()
  if key_pressed[pygame.K_a] or key_pressed[pygame.K_LEFT]
    plane_temp.move_left()
pygame에 대한 도움말 문서:
https://www.pygame.org/docs/ref/key.html#comment_pygame_key_set_repeat
pygame 포획 키보드 이벤트에 대한 두 가지 방식에 대한 상세한 설명을 드리겠습니다. 더 많은 pygame 포획 키보드 내용은 저희 이전의 글을 검색하거나 아래의 관련 글을 계속 훑어보시기 바랍니다. 앞으로 많은 응원 부탁드립니다!

좋은 웹페이지 즐겨찾기