이
는 당신이 키를 누르고있는 동안 코드가 robsHouse.pressed
모든 프레임을 전환 된 이유는 키가 유지되는 상태를 아래로 내려 가고 두 번째 조건은 교대 프레임에서 서로를 만족하게합니다.
당신은 키 데이터를 검색하는 방법을 변경하지 않고, 당신이 뭔가를 할 수 있습니다 :
if key[pygame.K_z]:
robsHouse.pressed = True
else:
robsHouse.pressed = False
또 다른 방법은 오히려 키에서 키 데이터를 가져 오는 것보다 파이 게임의 이벤트 모듈에서 KEYUP
및 KEYDOWN
이벤트를 찾을 수 있습니다 기준 치수. 즉 다음과 같이 할 수있다 :
for event in pygame.event.get():
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_z:
robsHouse.pressed = True
elif event.type == pygame.KEYUP:
if event.key == pygame.K_z:
robsHouse.pressed = False
는 개인적으로, 나는 대부분의 경우 두 번째 방법을 선호합니다. 어쨌든 파이 게임의 이벤트 모듈에서 이벤트를 처리해야 할 것입니다. 그렇지 않으면 큐가 가득 차고 프로그램이 응답하지 않게됩니다 (파이 게임 이벤트 모듈 문서 참조).
출처
2013-08-28 19:07:27
Haz
은 실제로 if 문에 중첩 된 elif입니까, 아니면 코드를 복사 할 때 오류가 있습니까? elif가 if의 내부에 있으면 문제가 발생할 수 있기 때문입니다. – Chachmu