Pygame 마우스 클릭 감지
Pygame에서 스프라이트에 대한 마우스 클릭을 감지하려면 메인 루프 동안 수동 검사가 필요합니다. 이 기능을 구현하는 방법은 다음과 같습니다.
메인 루프 접근 방식:
예제 코드:
while ...: ev = pygame.event.get() for event in ev: if event.type == pygame.MOUSEBUTTONUP: pos = pygame.mouse.get_pos() clicked_sprites = [s for s in sprites if s.rect.collidepoint(pos)] # Perform action on clicked sprites
참고: Pygame은 이 시나리오에 대한 이벤트 기반 프로그래밍을 제공하지 않습니다.
대안 접근 방식:
최적은 아니지만 마우스 커서 위치와 누른 키 상태를 확인할 수도 있습니다. 그러나 이 접근 방식에는 지속적인 인쇄를 방지하기 위해 추가 플래그 처리가 필요합니다.
handled = False while ...: if pygame.mouse.get_pressed()[0] and mysprite.rect.collidepoint(pygame.mouse.get_pos()) and not handled: print("You have opened a chest!") handled = pygame.mouse.get_pressed()[0]
Sprite 클래스 메서드:
사용자 정의 MySprite 클래스 내에 메서드를 정의하여 다음을 수행할 수도 있습니다. 마우스 클릭 확인:
class MySprite(Sprite): def is_clicked(self): return pygame.mouse.get_pressed()[0] and self.rect.collidepoint(pygame.mouse.get_pos())
위 내용은 파이게임에서 스프라이트에 대한 마우스 클릭을 감지하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!