我正在尝试制作经典的街机游戏《阿卡诺德》,但我遇到了球和砖块之间碰撞的问题。目前我只使用经典碰撞(比如在乒乓球中):
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]
我遇到的问题是,当球击中砖块的不同部位时,有时它弹错了方向,最后“吃”的比砖头还多。我使用了两种不同类型的碰撞,因为我添加了边界,并且我也使它与它们一起反弹,但是我不知道如何使程序意识到砖块的哪一面被击中,并根据边使用colision1
或{
你在用/画一个圆球吗?如果是这样,问题可能是因为您使用了colliderect。当球靠近一块砖时,边界框碰撞的位置与它看起来的稍有不同。尝试使用精灵和碰撞环。在
相关问题 更多 >
编程相关推荐