스페이스바로 총알을 쏘려면 어떻게 해야 하나요?
귀하의 코드에서 스페이스바를 누르면 플레이어가 사라지는 것은 다음과 같습니다. 이는 슈팅과 플레이어 이동을 위한 별도의 루프 때문일 수 있습니다. 이 문제를 해결하려면 두 작업을 기본 애플리케이션 루프에 통합하세요.
총알 발사의 경우 목록(예: bullet_list)을 활용하여 총알 위치를 저장하세요. 발사할 때 총알을 발사하는 개체의 시작 위치를 목록에 추가합니다. 글머리 기호 목록을 반복하여 각 글머리 기호 위치를 업데이트하고 화면을 벗어나는 항목을 제거합니다.
y
또한 기본 애플리케이션 루프에서 이벤트 처리를 구현하여 키 누름을 캡처합니다. 키 상태를 지속적으로 얻으려면 pygame.key.get_pressed()를 사용하십시오. 키 누름에 따라 플레이어의 위치를 업데이트하고 총알 발사를 트리거합니다.
다음은 이러한 수정 사항을 포함하는 수정된 코드 조각입니다.
<code class="python">bullets = [] while True: # Event handling for event in pygame.event.get(): pass if event.type == pygame.KEYDOWN: if event.key == pygame.K_SPACE: bullets.append(Bullet(p.x+p.width//2, p.y)) if event.key == pygame.K_LEFT: p.move_left() if event.key == pygame.K_RIGHT: p.move_right() # Update objects keys = pygame.key.get_pressed() if keys[pygame.K_LEFT]: p.move_left() if keys[pygame.K_RIGHT]: p.move_right() for b in bullets: b.update() if b.y <= 0: bullets.remove(b) # Clear display d.fill((98, 98, 98)) # Draw scene for b in bullets: b.draw() p.draw() # Update display win.update()</code>
위 내용은 파이게임에서 플레이어가 사라지는 문제를 해결하고 스페이스바로 총알 사격을 구현하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!