2017-12-26 13 views
-1

직사각형을 사용하여 가능한 한 자기 타원으로 이미지를 가져올 수 있습니까? 그렇지 않다면 둥근 물체가 실제로 다른 사각형 물체를 만질 때 다른 둥근 물체를 튀게하는 방법이 있습니다. 이게 내가 가진거야. 어떤 모양을 사용하여 collsion을 확인하기 위해 비트 맵을 사용하는 -이 개 스프라이트개체에 자체 타원 만들기

  • pygame.sprite.collide_mask() 사이에 충돌을 확인 원을 사용하는 -

    class Ball(pygame.sprite.Sprite): 
        def __init__(self): 
         pygame.sprite.Sprite.__init__(self) 
         self.image = pygame.image.load('Ball 2.png') 
         self.rect= self.image.get_rect() 
         self.rect.midbottom = (Width/2, Height/2) 
         self.speedx = random.randint(ballspeedx, ballspeedx) 
         self.speedy = random.randint(ballspeedy, ballspeedy) 
        def update(self): 
         self.rect.left += self.speedx 
         self.rect.top += self.speedy 
         if self.rect.right > Width or self.rect.left < 0: 
          self.speedx = -self.speedx 
         if self.rect.bottom > Height or self.rect.top < 20: 
          self.speedy = -self.speedy 
    class You(pygame.sprite.Sprite): 
        def __init__(self): 
         pygame.sprite.Sprite.__init__(self) 
         self.image = pygame.image.load('Ball.png') 
         self.rect = self.image.get_rect() 
         self.rect.midbottom = (10, Height -10) 
        def update(self): 
         if self.rect.right > Width: 
          self.rect.right = Width 
         if self.rect.left < 0: 
          self.rect.left = 0 
         if self.rect.bottom > Height: 
          self.rect.bottom = Height 
         if self.rect.top < 20: 
          self.rect.top = 20 
    
    ball = Ball() 
    you = You() 
    Start = pygame.sprite.Group() 
    Start.add(ball) 
    Start2 = pygame.sprite.Group() 
    Start2.add(you) 
    
    if pygame.sprite.spritecollide(you, Start, False): 
        running = False 
    
  • +0

    타원이라고 부르지 만 설명하는 내용은 * 원 *입니다. 'collide_rect'의 [documentation] (http://www.pygame.org/docs/ref/sprite.html)에 있습니다. – usr2564301

    +0

    질문이 명확하지 않지만 원 개체의 물리학을 구현하려면 [이 튜토리얼] (http://www.petercollingridge.co.uk/pygame-physics-simulation/collisions)을 살펴보십시오. 피터 콜링 리지. 또한, [Pymunk] (http://www.pymunk.org/en/latest/)는 매우 멋지지만,이 라이브러리에 익숙해 지려면 시간이 좀 걸릴 수 있습니다. – skrx

    답변

    0

    Sprite

    +0

    BTW : [circle collision] (https://github.com/furas/python-examples/tree/master/pygame/collisions) 및 [마스크 충돌] (https://github.com/furas/python) 예제를 참조하십시오. -examples/tree/master/pygame/mask-collision) – furas