在pygame中的球和矩形之间的碰撞

时间:2017-06-23 16:04:54

标签: python pygame

我正在尝试制作经典的街机游戏Arkanoid,但我遇到了球与砖之间碰撞的问题。目前我只使用经典碰撞(如乒乓球):

def colision(self, objetivo):
    if self.rect.colliderect(objetivo.rect):
        self.speed[1] = -self.speed[1]

def colision2(self, objetivo):
    if self.rect.colliderect(objetivo.rect):
        self.speed[0] = -self.speed[0]

我遇到的问题是,当球击中砖块的不同部分时,有时它会以错误的方式反弹,并最终“吃掉”#34;不仅仅是砖头。我使用了两种不同类型的碰撞,因为我添加了边框,我也用它们反弹,但我不知道如何让程序意识到砖块的哪一侧被击中,并使用{{ 1}}或colision1,视情况而定。

1 个答案:

答案 0 :(得分:0)

你在使用/画圆球吗?如果是这样,问题可能是因为你使用了碰撞。当球靠近砖块时,边界框在与其出现的略有不同的位置发生碰撞。尝试使用sprite和collide_circle。