python中rect用法_pyGame中rect对象的方法解释,pygame,Rect,详解

目录

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})

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值