pygame.colliderect()在这两种情况下是否都以相同的方式工作?

时间:2020-03-30 17:56:53

标签: python-3.x pygame

说我有2个Hitbox:hbox1和hbox2。是

hbox1.colliderect(hbox2)

hbox2.colliderect(hbox1)

总是返回同样的东西吗?

1 个答案:

答案 0 :(得分:2)

如果colliderect对象相交,则方法pygame.Rect用矩形求值。 hbox1hbox2是矩形对象,则hbox1.colliderect(hbox2)的结果等于hbox2.colliderect(hbox1)的结果。该操作为Commutative
但请注意,colliderect的参数不必是pygame.Rect对象。该参数也可以是一个元组,也包含4个分量(x,y,宽度,高度)。

如果矩形(x1y1w1h1)和(x2y2w2h2)的交集可以通过以下方式求值:

intersect = x1 < x2+w2 and x2 < x1+w1 and y1 < y2+h2 and y2 < y1+h1

很容易看出两个矩形可以互换,并且结果相同。