我正在尝试制作经典的街机游戏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
,视情况而定。
答案 0 :(得分:0)
你在使用/画圆球吗?如果是这样,问题可能是因为你使用了碰撞。当球靠近砖块时,边界框在与其出现的略有不同的位置发生碰撞。尝试使用sprite和collide_circle。