首页 > 解决方案 > Pygame 碰撞没有完美发生

问题描述

我在 Pygame 中创建了一个乒乓球游戏。

我已经完成了球和球拍/球拍之间的基本碰撞。

碰撞并不完美,因为有时如果球击中球拍/球拍的顶部/底部边缘,球就会进入球拍/球拍内部。

碰撞发生在两个矩形之间。

碰撞的代码是:

    if self.player.rect.colliderect(self.ball.rect):
        self._ball_hit()
    if self.player_1.rect.colliderect(self.ball.rect):
        self._ball_hit()

基本上是“self._ball_hit()”

改变球的方向

我试过给球棒/球拍一个特定的位置,即右上角,但我得到这个错误:

如果 self.player.rect.toprigth.colliderect(self.ball.rect.left):

AttributeError: 'tuple' 对象没有属性 'colliderect'

是否有另一种方法来处理碰撞?

如果您想询问更多信息,请发表评论。

标签: pythonpygame

解决方案


推荐阅读