完全不懂的萌新 发表于 2018-4-25 13:15:24

关于pygame.sprite.collide_circle的self.radius值的设定

关于pygame.sprite.collide_circle的self.radius值的设定,在书中写到self.radius=self.rect.width/2,按照书中描述所实现的碰撞检测,发现球会在重叠一部分之后在在发生碰撞并反方向运动,
在我将self.radius改为self.radius改为之后才能够进行正常的碰撞检测。
class Ball(pygame.sprite.Sprite):
    def __init__(self,image,position,speed,bg_size):
      pygame.sprite.Sprite.__init__(self)
      self.image = pygame.image.load(image).convert_alpha()
      self.rect = self.image.get_rect()
      self.rect.left, self.rect.top = position
      self.speed = speed
      self.width,self.height = bg_size,bg_size
      #self.radius = self.rect.width/2
      self.radius = math.sqrt(math.pow(self.rect.width/2,2)+math.pow(self.rect.height/2,2))

完全不懂的萌新 发表于 2018-4-25 13:19:31

{:5_92:}有没有大佬给我解释一下哪里锤了问题啊

mw821009 发表于 2018-10-5 19:24:23

也正在学习,路过,加个联系方式,一起学习一下

mw821009 发表于 2018-10-5 21:16:28

我试过了可以正常碰撞
页: [1]
查看完整版本: 关于pygame.sprite.collide_circle的self.radius值的设定