说我有2个Hitbox:hbox1和hbox2。是
hbox1.colliderect(hbox2)
和
hbox2.colliderect(hbox1)
总是返回同样的东西吗?
答案 0 :(得分:2)
如果colliderect
对象相交,则方法pygame.Rect
用矩形求值。 hbox1
和hbox2
是矩形对象,则hbox1.colliderect(hbox2)
的结果等于hbox2.colliderect(hbox1)
的结果。该操作为Commutative。
但请注意,colliderect
的参数不必是pygame.Rect
对象。该参数也可以是一个元组,也包含4个分量(x,y,宽度,高度)。
如果矩形(x1
,y1
,w1
,h1
)和(x2
,y2
,w2
,h2
)的交集可以通过以下方式求值:
intersect = x1 < x2+w2 and x2 < x1+w1 and y1 < y2+h2 and y2 < y1+h1
很容易看出两个矩形可以互换,并且结果相同。