Python 如何使用collide rect或其他方法从鼠标坐标中获取对象(或它在NumPy数组中的索引)?(Pygame 2D)

Python 如何使用collide rect或其他方法从鼠标坐标中获取对象(或它在NumPy数组中的索引)?(Pygame 2D),python,numpy,pygame,2d,Python,Numpy,Pygame,2d,基本上,我有一个储存颜色和位置的小矩形阵列。 我希望能够比较我的鼠标位置和单击矩形的位置,并从数组中获取索引或对象本身 我是否必须遍历数组中的每个正方形并比较项的坐标 结构如下所示: Cube[Face][Horizontal Line][Square]=np.array([color,pygame.Rect(x,y,size,size)]) 做这件事最有效的方法是什么。我正在考虑使用colliderect()方法,但我不知道如何实现它 如果您需要更多数据,我将提供它我建议创建一个矩形列表:

基本上,我有一个储存颜色和位置的小矩形阵列。 我希望能够比较我的鼠标位置和单击矩形的位置,并从数组中获取索引或对象本身

我是否必须遍历数组中的每个正方形并比较项的坐标

结构如下所示:

Cube[Face][Horizontal Line][Square]=np.array([color,pygame.Rect(x,y,size,size)])
做这件事最有效的方法是什么。我正在考虑使用colliderect()方法,但我不知道如何实现它


如果您需要更多数据,我将提供它

我建议创建一个矩形列表:

rect_list=[rect1,rect2,rect3…]
鼠标位置(在下面的
鼠标位置
中)是一个点,而不是矩形。用于查找矩形与点的交点:

collide\u rect\u index=-1
对于i,枚举中的rect(rect_列表):
如果矩形碰撞点(鼠标位置):
collide_rect_index=i
打破
或者,您可以使用:

测试该矩形是否与一系列矩形中的任何矩形冲突。返回找到的第一个冲突的索引。如果未找到冲突,则返回索引-1

在鼠标位置创建1x1矩形,并在矩形列表中找到冲突矩形的索引:

mouse\u rect=pygame.rect(*鼠标位置,1,1)
collide_rect_index=鼠标右键。collideest(右键列表)

但是,如果您有网格,则可以通过将鼠标位置(
鼠标位置
)除以平铺的大小(
平铺大小
)来查找平铺索引(
)。行和列必须是整数。因此,您必须使用楼层分割(
/
)操作符:

column=mouse\u pos[0]//平铺大小
行=鼠标位置[1]//平铺大小

我建议创建一个矩形列表:

rect_list=[rect1,rect2,rect3…]
鼠标位置(在下面的
鼠标位置
中)是一个点,而不是矩形。用于查找矩形与点的交点:

collide\u rect\u index=-1
对于i,枚举中的rect(rect_列表):
如果矩形碰撞点(鼠标位置):
collide_rect_index=i
打破
或者,您可以使用:

测试该矩形是否与一系列矩形中的任何矩形冲突。返回找到的第一个冲突的索引。如果未找到冲突,则返回索引-1

在鼠标位置创建1x1矩形,并在矩形列表中找到冲突矩形的索引:

mouse\u rect=pygame.rect(*鼠标位置,1,1)
collide_rect_index=鼠标右键。collideest(右键列表)

但是,如果您有网格,则可以通过将鼠标位置(
鼠标位置
)除以平铺的大小(
平铺大小
)来查找平铺索引(
)。行和列必须是整数。因此,您必须使用楼层分割(
/
)操作符:

column=mouse\u pos[0]//平铺大小
行=鼠标位置[1]//平铺大小