파이게임에서 충돌 감지

Maxim Maeder 2023년6월21일
  1. Pygame에서 rect.collidepoint()를 사용하여 충돌 감지
  2. Pygame에서 rect.colliderect()를 사용하여 충돌 감지
  3. Pygame에서 rect.collidelist() 또는 rect.collidelistall()을 사용하여 충돌 감지
  4. Pygame에서 rect.collidedict() 또는 rect.collidedictall()을 사용하여 충돌 감지
파이게임에서 충돌 감지

파이게임에서 충돌을 감지하는 방법에는 여러 가지가 있으며 이 기사에서는 그 중 일부를 다룰 것입니다.

여기에 표시된 코드는 유효한 파이게임 창에 대한 완전한 코드가 아닙니다. 베어본 프레임워크에 관심이 있다면 이 문서를 참조하십시오.

Pygame에서 rect.collidepoint()를 사용하여 충돌 감지

rect 클래스의 collidepoint() 메서드를 사용하여 주어진 점이 rect 내부에 있는지 테스트할 수 있습니다. 이는 여러 경우에 유용합니다. 예를 들어 일부 UI 요소를 마우스로 가리키면 모양이 변경되도록 하려는 경우입니다.

기사에서 우리는 기능에 대해 논의하고 그것으로 버튼을 만들었습니다. 함수에 xy 좌표를 별도로 제공하거나 튜플 또는 목록과 같은 반복 가능 항목에 제공할 수 있습니다.

통사론:

rect.collidepoint(x, y)
rect.collidepoint((x, y))

Pygame에서 rect.colliderect()를 사용하여 충돌 감지

rect 클래스의 이 기능을 사용하여 다른 rect의 일부가 해당 범위 내에 있는지 여부를 테스트할 수 있습니다. 따라서 이 함수에 다른 rect를 제공해야 합니다.

통사론:

rect.colliderect(rect)

Pygame에서 rect.collidelist() 또는 rect.collidelistall()을 사용하여 충돌 감지

또한 rect.collidelist() 메서드를 사용할 수 있습니다. 이 메서드는 rects 목록을 수신하고 기본 rect와 교차하는지 테스트합니다. 이 함수는 rect와 충돌하는 첫 번째 rect 인덱스를 반환합니다.

rect.collidelistall() 메서드는 유사하며 한 가지 주요 차이점만 있습니다. 메인 rect와 충돌하는 rects의 모든 인덱스가 포함된 배열을 반환합니다.

통사론:

rect.collidelist([rect1, rect2, ...])

rect.collidelistall([rect1, rect2, ...])

Pygame에서 rect.collidedict() 또는 rect.collidedictall()을 사용하여 충돌 감지

이러한 메서드는 위의 메서드와 거의 동일하지만 기본 rect와 충돌하는 rects의 키와 값 쌍을 반환합니다.

통사론:

rect.collidedict({
    'rect1': rect1,
    'rect2': rect2,
    ...
})

rect.collidedictall({
    'rect1': rect1,
    'rect2': rect2,
    ...
})
작가: Maxim Maeder
Maxim Maeder avatar Maxim Maeder avatar

Hi, my name is Maxim Maeder, I am a young programming enthusiast looking to have fun coding and teaching you some things about programming.

GitHub