首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >PyGame:为什么碰撞不能很好地工作?

PyGame:为什么碰撞不能很好地工作?
EN

Stack Overflow用户
提问于 2018-06-09 04:30:35
回答 2查看 131关注 0票数 1

它大多数时候会检测到冲突,但有时不会。

代码语言:javascript
运行
复制
def collide_check(this, object_1):
    bullet_rect = this.image.get_rect().move(this.bullet_x, this.bullet_y)
    object_1_rect = object_1.image.get_rect().move(object_1.ice_x, object_1.ice_y)
    if bullet_rect.colliderect(object_1_rect):
        #consequences of collision 
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-06-09 04:48:22

看起来像是典型的“穿纸子弹”问题。

因为.move()没有子步进,所以你不会和其他的rect重叠,因此不会满足碰撞检测条件。

简单地说:你‘擦除’原来的矩形,并在新的位置重新绘制它。另一个rect也是如此。它们不重叠,因为移动太大,因此没有检测到碰撞。

票数 0
EN

Stack Overflow用户

发布于 2018-06-09 04:38:18

如果您在同一对象上多次调用collide_check(),我可能已经找到了问题的原因。

由于未知的原因,如果在已经检测到冲突的对象上调用.colliderect(),它将不会检测到冲突。

有关详细信息,请参阅此similar问题。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50768000

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档