2014-12-24 9 views
0

나는 간단한 게임을 만들기 위해 파이 게임을 사용하고 있습니다. 서클 충돌 문제가 있습니다.
"AtributeError : 'pygame.Rect'객체 'RECT'더 attrinute이 없습니다"여기파이 게임 동그라미?

내가 아래에 문제가하고있는 특정 코드입니다 :

if pygame.sprite.collide_circle(hero_circle, enemy_circle): 
      gameover() 

감사의를 나는 다음과 같은 오류를 얻고있다 전진!

+0

가 나는 또한 "클래스"를 모르지만 나는 생각하지 않는다 나는 그것을 필요로한다 –

+0

잘 당신은 객체로 작업하고있다. 그러므로 당신은 수업에 익숙해야합니다. 어쨌든 파이 게임으로 오류가 발생한 코드를 보여줄 수 있습니까? –

+0

클래스는 충돌 감지에 중요합니다. –

답변

0

pygame.mask을 사용하여 개체에 대한 충돌 메시를 만들고 충돌 감지를 수행 할 수 있습니다. 구체적으로

:

  1. 서클의 모두 이미지 파일을 생성하고 다른 곳에서는 사용하지 않습니다 뭔가에 BG 색상을 설정합니다.
  2. 이미지 편집기에서 해당 색상을 "투명하게"설정하십시오.
  3. 이미지를 가져옵니다.
  4. pygame.mask를 사용하여 메쉬를 만들고 투명 픽셀을 콜리 전 불가능하게 설정하십시오.
  5. 생성 된 마스크를 충돌 탐지 메쉬로 사용하십시오.
  6. 이익

(기술적으로 관심이 단지하고있는 충돌 사각형에 원 모양의 영역 검출,하지만!)

1
pygame.draw.rect() 
draw a rectangle shape 
rect(Surface, color, Rect, width=0) -> Rect 

표면에 직사각형 모양을 그립니다. 주어진 Rect는 직사각형의 영역입니다. width 인수는 바깥 쪽 모서리를 그릴 두께입니다. 너비가 0이면 사각형이 채워집니다.

Surface.fill() 메서드는 채워진 사각형을 그리는데도 적합합니다. 실제로 Surface.fill()은 소프트웨어 및 하드웨어 디스플레이 모드를 사용하는 일부 플랫폼에서 하드웨어 가속화가 가능합니다.

0
그냥 GMK는 말했다 어떻게 같은

하지만이 대신 사각형을 사용하는 경우,이 파이 게임 기능을 사용한다 : 이것은 당신의 표면에 원을 그립니다

pygame.draw.circle(surface, color, center_point, radius, width) 

을합니다 (surface에있는 갈 것이다 지역). 분명히 색상에는 숫자 목록이 필요합니다 (RGB 사용자는 누구입니까?). center_point은 서클의 중심 위치이므로 서클의 위치를 ​​결정합니다. 반경에는 원의 반경을 설정하는 숫자가 필요합니다 (25와 같은 숫자를 사용하면 반경이 50 픽셀에서 25 픽셀/직경으로 설정됩니다). width 섹션은 원의 둘레의 두께를 설정하므로 선택 사항입니다 (0은 전혀 가지지 않음). 서클을 사용하지 않는다면 제목을 변경해야합니다.하지만 어쨌든, 이것이 당신을 돕기를 바랍니다!