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(" ")
이것도 가능하다.이상은 본문의 전체 내용입니다. 여러분의 학습에 도움이 되고 저희를 많이 응원해 주십시오.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
완전히 처음부터 시작하는 보드 게임의 프로그래밍과 기계 학습 [4 일째]평소 Python의 기본적인 사용법을 배웠으므로, 드디어 Pygame을 사용하여 게임 제작의 입구로 발길을 가고 싶습니다. Pygame은 Simple DirectMedia Layer (SDL)라고 불리는 다른 게임 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.