copy
()
功能:复制矩形
属性:copy() -> Rect
返回与原始矩形具有相同位置和大小的新矩形。
New in pygame 1.9
move
()
功能:移动矩形
属性:move(x, y) -> Rect
返回按给定偏移量移动后的新矩形。x和y参数可以是任何整数值,正数或负数。
move_ip
()
功能:移动矩形(无返回)
属性:move_ip(x, y) -> None
与 Rect.move()
方法相同,但仅操作无返回副本。
inflate
()
功能:增大或缩小矩形大小
属性:inflate(x, y) -> Rect
- 返回一个新矩形,其大小由给定的偏移量更改。矩形仍围绕其当前中心。
- 负值将缩小矩形。
注意,使用整数,如果给定的偏移量太小(<2>-2),则中心将关闭。
inflate_ip
()
功能:增大或缩小矩形大小(无返回)
属性:inflate_ip(x, y) -> None
与 Rect.inflate()
方法相同,但仅操作无返回副本。
clamp
()
功能:将矩形移到另一个矩形内
属性:clamp(Rect) -> Rect
返回一个新的矩形,该矩形被移动到参数Rect内。如果矩形太大而不能放在内部,它将在参数Rect内居中,但其大小不会更改。
clamp_ip
()
功能:将矩形移到另一个矩形内(无返回)
属性:clamp_ip(Rect) -> None
与 Rect.clamp()
方法相同,但仅操作无返回副本。
clip
()
功能:在另一个矩形内裁剪矩形
属性:clip(Rect) -> Rect
返回一个新矩形,该矩形被裁剪为完全位于参数矩形内。如果两个矩形开始时没有重叠,则返回一个0大小的矩形。
clipline
()
功能:在矩形内裁剪一条线
属性:
- clipline(x1, y1, x2, y2) -> ((cx1, cy1), (cx2, cy2))
- clipline(x1, y1, x2, y2) -> ()
- clipline((x1, y1), (x2, y2)) -> ((cx1, cy1), (cx2, cy2))
- clipline((x1, y1), (x2, y2)) -> ()
- clipline((x1, y1, x2, y2)) -> ((cx1, cy1), (cx2, cy2))
- clipline((x1, y1, x2, y2)) -> ()
- clipline(((x1, y1), (x2, y2))) -> ((cx1, cy1), (cx2, cy2))
- clipline(((x1, y1), (x2, y2))) -> ()
返回裁剪为完全位于矩形内的直线的坐标。如果行与矩形不重叠,则返回空元组。
要裁剪的线可以用以下任何格式表示(可以使用浮点数但不能保证精度):
- four ints
- 2 lists/tuples/Vector2s of 2 ints
- a list/tuple of four ints
- a list/tuple of 2 lists/tuples/Vector2s of 2 ints
返回 | 将给定行的坐标裁剪为完全在矩形内的元组返回,如果给定行与矩形不重叠,则返回空元组 |
返回类型 | tuple(tuple(int, int), tuple(int, int)) or () |
Raises: | TypeError -- 如果该线坐标不是上述行格式之一 |
注意:
- 此方法可用于直线与直线之间的碰撞检测。参见下面的示例代码。
- 用于存储直角坐标的
pygame.Rect
pygame对象的rect.bottom
和rect.right
属性始终位于其实际边界之外的一个像素处。
# Example using clipline(). clipped_line = rect.clipline(line) if clipped_line: # If clipped_line is not an empty tuple then the line # collides/overlaps with the rect. The returned value contains # the endpoints of the clipped line. start, end = clipped_line x1, y1 = start x2, y2 = end else: print("No clipping. The line is fully outside the rect.")
New in pygame 2.0.0.
union
()
功能:返回一个两个矩形合并后的矩形
属性:union(Rect) -> Rect
返回完全覆盖两个提供的矩形区域的新矩形。新矩形内可能有原始矩形未覆盖的区域。
union_ip
()
功能:将两个矩形合并为一个(无返回)
属性:union_ip(Rect) -> None
与 Rect.union()
方法相同,但仅操作无返回副本。
unionall
()
功能:返回一个矩形的并集
属性:unionall(Rect_sequence) -> Rect
unionall_ip
()
功能:矩形的并集
属性:unionall_ip(Rect_sequence) -> None
与 Rect.unionall()
方法相同,但仅操作无返回副本。
fit
()
功能:按纵横比调整矩形的大小或移动矩形
属性:fit(Rect) -> Rect
返回一个新矩形,该矩形被移动并调整大小以适应另一个矩形。保留原始矩形的纵横比,因此新矩形的宽度或高度可能小于目标矩形。
normalize
()
功能:泛化矩形
属性:normalize() -> None
如果矩形的宽度或高度为负,则此操作将翻转矩形的宽度或高度。矩形将保持在同一位置,只交换边。
contains
()
功能:测试一个矩形是否在另一个矩形内
属性:contains(Rect) -> bool
当参数完全在Rect内时返回true。
collidepoint
()
功能:测试点是否在矩形内
属性:
- collidepoint(x, y) -> bool
- collidepoint((x,y)) -> bool
- 如果给定点位于矩形内,则返回true。
- 沿右边缘或下边缘的点不被视为位于矩形内。
注意:对于矩形和直线之间的碰撞检测,可以使用 clipline()
方法。
colliderect
()
功能:测试两个矩形是否重叠
属性:colliderect(Rect) -> bool
如果矩形的任何部分重叠(除了顶部+底部或左侧+右侧边缘),则返回true。
注意:对于矩形和直线之间的碰撞检测,可以使用 clipline()
方法。
collidelist
()
功能:测试一个矩形与列表中的矩形是否相交(intersect)
属性:collidelist(list) -> index
测试矩形是否与一系列矩形中的任何矩形碰撞。返回找到的第一个冲突的索引。如果未找到冲突,则返回索引-1。
collidelistall
()
功能:测试列表中的所有矩形是否相交(intersect)
属性:collidelistall(list) -> indices
- 返回包含与矩形冲突的矩形的所有索引的列表。
- 如果未找到相交矩形,则返回空列表。
collidedict
()
功能:测试字典中的一个矩形是否相交(intersect)
属性:
- collidedict(dict) -> (key, value)
- collidedict(dict) -> None
- collidedict(dict, use_values=0) -> (key, value)
- collidedict(dict, use_values=0) -> None
- 返回与调用的Rect对象相交的第一个键和值对。
- 如果未找到冲突,则不返回任何冲突。
- 如果use_values为0(默认值),则在碰撞检测中将使用dict的键,否则将使用dict的值。
注意:Rect对象不能用作字典中的键(它们不可散列),因此必须将它们转换为元组/列表。
e.g. rect.collidedict({tuple(key_rect) : value})
collidedictall
()
功能:测试字典中的所有矩形是否相交(intersect)
属性:
- collidedictall(dict) -> [(key, value), ...]
- collidedictall(dict, use_values=0) -> [(key, value), ...]
- 返回与调用的Rect对象相交的所有键和值对的列表。
- 如果未找到冲突,则返回空列表。
- 如果use_values为0(默认值),则在碰撞检测中将使用dict的键,否则将使用dict的值。
注意:Rect对象不能用作字典中的键(它们不可散列),因此必须将它们转换为元组/列表。e.g. rect.collidedictall({tuple(key_rect) : value})