python - 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'
是否有另一种方法来处理碰撞?
如果您想询问更多信息,请发表评论。
解决方案
推荐阅读
- c# - 在容器中列出一百万个 blob 名称的最佳方法?
- angular - 在 Angular 2 中使用单点登录(后端已经使用 webseal 完成)
- javascript - 在反应中从一个页面重定向到另一个页面
- xml - 停留在 XML 验证模式
- swift - 这个firestore关闭会导致内存泄漏吗?
- c++ - prog.cpp:8:6: 错误:匿名结构不能有函数成员类{ ^
- laravel - 在 Laravel 8 中使用 spatie(laravel-permission)
- firebase - 颤振和火力基地/火库
- javascript - 将给定的字符串拆分为数组
- android - 扩展以填充 RecyclerView 宽度的方形网格项目