Python之Pygame.rect函数

1.参数设置

Pygame 通过 Rect 对象存储和操作矩形区域。一个 Rect 对象可以由 left,top,width,height 几个值创建。Rect 也可以是由 Pygame 的对象所创建,它们拥有一个属性叫“rect”。

任何需要一个 Rect 对象作为参数的 Pygame 函数都可以使用以上值构造一个 Rect。这样使得作为参数传递的同时创建 Rect 成为可能。

Rect 对象中的大部分方法在修改矩形的位置、尺寸后会返回一个新的 Rect 拷贝,原始的 Rect 对象不会有任何改变。但有些方法比较特殊,它们会“原地”修改 Rect 对象(也就是说它们会改动原始的 Rect 对象),常用rect函数的参数有以下形式:

    x,y
    top, left, bottom, right
    topleft, bottomleft, topright, bottomright
    midtop, midleft, midbottom, midright
    center, centerx, centery
    size, width, height
    w,h

For example:

Rect(left, top, width, height) -> Rect

Rect((left, top), (width, height)) -> Rect

Rect(object) -> Rect

上边这些属性均可以被赋值,例如:

    rect1.right = 10
    rect2.center = (20,30)




2.Rect函数

2.1移动类型


    pygame.Rect.copy()  —  拷贝 Rect 对象
    pygame.Rect.move()  —  移动 Rect 对象
    pygame.Rect.move_ip()  —  原地移动 Rect 对象
    pygame.Rect.inflate()  —  放大和缩小 Rect 对象的尺寸
    pygame.Rect.inflate_ip()  —  原地放大和缩小 Rect 对象的尺寸
    pygame.Rect.clamp()  —  将一个 Rect 对象移动到另一个 Rect 对象的中心

    pygame.Rect.clamp_ip()  —  原地将一个 Rect 对象移动到另一个 Rect 对象的中心

给 size,width,height 属性赋值将改变矩形的尺寸;给其它属性赋值将移动矩形。注意:一些属性是整数,一些是整数对。


2.2逻辑类型

    pygame.Rect.clip()  —  获取两个 Rect 对象互相重叠的部分
    pygame.Rect.union()  —  将两个 Rect 对象合并
    pygame.Rect.union_ip()  —  原地将两个 Rect 对象合并
    pygame.Rect.unionall()  —  将多个 Rect 对象合并
    pygame.Rect.unionall_ip()  —  原地将多个 Rect 对象合并
    pygame.Rect.fit()  —  按照一定的宽高比调整 Rect 对象

    pygame.Rect.normalize()  —  翻转 Rect 对象(如果尺寸为负数)

#Rect 对象的坐标都是整数,size 的值可以是负数,但在大多数情况下被认为是非法的

2.3 检测类型

    pygame.Rect.contains()  —  检测一个 Rect 对象是否完全包含在该 Rect 对象内
    pygame.Rect.collidepoint()  —  检测一个点是否包含在该 Rect 对象内
    pygame.Rect.colliderect()  —  检测两个 Rect 对象是否重叠
    pygame.Rect.collidelist()  —  检测该 Rect 对象是否与列表中的任何一个矩形有交集
    pygame.Rect.collidelistall()  —  检测该 Rect 对象与列表中的每个矩形是否有交集
    pygame.Rect.collidedict()  —  检测该 Rect 对象是否与字典中的任何一个矩形有交集

    pygame.Rect.collidedictall()  —  检测该 Rect 对象与字典中的每个矩形是否有交集

还有一些方法可以实现矩形间碰撞检测,大多数 Python 的容器可以用于检索其中的元素与某个 Rect 对象是否碰撞。

Rect 对象覆盖的范围并不包含 right 和 bottom 指定的边缘位置。





对了方便大家移动和对齐,Rect 对象提供以下这些虚拟属性:

   




复制代码

如果一个 Rect 对象的 width 或 height 非 0,那么将在非 0 测试中返回 True。一些方法返回尺寸为 0 的 Rect 对象,用于表示一个非法的矩形。



还有一些方法可以实现矩形间碰撞检测,大多数 Python 的容器可以用于检索其中的元素与某个 Rect 对象是否碰撞。

Rect 对象覆盖的范围并不包含 right 和 bottom 指定的边缘位置。
  • 18
    点赞
  • 103
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值