Python之Pygame.rect函数

2023-11-14

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 指定的边缘位置。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python之Pygame.rect函数 的相关文章

随机推荐

  • UnicodeDecodeError: ‘utf-8‘ codec can‘t decode byte 0xff in position 0: invalid start byte

    遇到python转码问题解决方案 利用notepad进行转码 如图 转为 utf 8保存重新运行 完美解决 ps 又遇到了一个分隔符错误 只需要添加以下就可以 df pd read csv D workspace python demo 长
  • Blender基础:曲线建模基础

    1 曲线建模 曲线Curve 也称为样条 用于描绘平滑的曲线和形状 一般分为两种 贝塞尔曲线 Nurbs曲线 添加一条曲线 添加 gt 曲线 gt 贝塞尔曲线 按7 进入顶视图 按TAB 编辑曲线 选择移动工具 移动控制点或控制柄 按TAB
  • 趣事

    一 谁发明了微积分 1 一篇文献引起的巨人相搏 如果要在科学史上找出一次最重要的巨人相争 牛顿与莱布尼茨围绕微积分发明权的争论无疑是当仁不让之选 1684 年 10 月 莱比锡大学学术刊物 学术论文集 刊载了一篇名字烦琐冗长的论文 一种求极
  • Python Pandas 行数据筛选方法汇总

    Pandas 行数据筛选 一 准备数据 二 通过逻辑规则筛选 大于 小于等 三 删除重复元素 三 显示最前面 最后面的 n 行 3 1 显示前面 n 行 3 2 显示后面 n 行 四 随机抽取 4 1 随机抽取一定比例 4 2 随机抽取 n
  • 没学C++,如何从C语言丝滑过度到python【python基础万字详解】

    大家好 我是纪宁 文章将从C语言出发 深入介绍python的基础知识 也包括很多python的新增知识点详解 文章目录 1 python的输入输出 重新认识 hello world 重回那个激情燃烧的岁月 1 1 输出函数print的规则
  • 带头结点的循环链表表示队列, 并且只设一个指针指向队尾元素结点, 试编写相应的队列初始化,入队列和出队列的算法

    数据结构算法题 假设以带头结点的循环链表表示队列 并且只设一个指针指向队尾元素结点 注意不设头指针 试编写相应的队列初始化 入队列和出队列的算法 数据结构算法题 假设以带头结点的循环链表表示队列 并且只设一个指针指向队尾元素结点 注意不设头
  • 在Linux系统下用dd命令制作ISO镜像U盘启动盘

    首先在 Linux 系统中打开终端 确认 U 盘路径 sudo fdisk l 格式化 U 盘 为了格式化首先需要 umount U 盘 dev sdb 是我的 U 盘设备 sudo umount dev sdb 格式化 U 盘 sudo
  • flutter 页面导航和返回

    记录一下自己的学习过程 一般页面导航和返回 导航的使用在任何程序里都至关重要 这也是一个程序的灵魂 ElevatedButton 按钮控件 它有两个最基本的属性 child 可以放入容器 图标 文字 让你构建多彩的按钮 onPressed
  • MFC中CString与string的转换

    MFC中CString与string的转换 Unicode下 CString sz1 L abc std string sz2 CT2A sz1 GetBuffer 转化为非unicode 方法一 CString theCStr std s
  • python划分训练集和测试集_python-根据时间戳将数据分为训练集和测试集

    在很多python任务中 我们需要将原始数据进行处理 分成训练集和测试集 以便更深层次的运用这些数据 工具 原料 pycharm python3 7 win10 7 方法 步骤 1 首先需要指定编码方式为 utf8 格式 再导入处理数据的包
  • Mysql详细学习指南(超详细)

    文章目录 数据库MySQL 一 数据库的概念 1 1 现阶段数据存放方式 1 2 现有方式的缺点 1 3 新的文件类型 1 4 分类 1 5 数据库管理系统 二 MySQL 2 1 简介 2 2 目录 2 3 核心文件 三 SQL语言 四
  • python3 Excel转txt

    使用场景 每次都是点一下Excel表格链接 调到浏览器中 内容数据也多 这种机械的活 对于程序员来说 能省则省 最后的结果 附上代码 coding utf 8 Time 2018 7 19 19 47 Author 蛇崽 Email 643
  • C#笔记(1)--->基本语法 [运算符]

    算术运算符 即 取余数 逻辑运算符 布尔型与按位 与 或 非 异或 按位求补 与 或 字符串串联 递增与递减 这里注意一下x 与 x的区别 移位运算符 左移位 lt lt x lt lt 3 左移3位 相当与乘2的3次方 右移位 gt gt
  • 用 moment 实现获取本周、前 n 周、后 n 周开始结束日期

    本文用 moment js 实现了获取本周 前 n 周 后 n 周开始结束日期 即周一 周日日期的方法 先看代码 封装了个工具类 DateTimeUtils js 可以直接复制到项目中使用 时间日期工具类 import moment fro
  • matlab 计算协方差矩阵

    但是在有些用到协方差的算法中 分母使用了N 而不是N 1 但是由于样本很多 差别不大 gt gt v magic 3 v 8 1 6 3 5 7 4 9 2 gt gt cov v ans 7 8 1 8 16 8 1 8 7 gt gt
  • Base64编码工具类

    public class Base64Util private static final char last2byte char Integer parseInt 00000011 2 private static final char l
  • 严重性 代码 说明 项目 文件 行 禁止显示状态 错误(活动) E0304 没有与参数列表匹配的 重载函数 "std::regex_match" 实例 Project16 D:\Program Files(x86)\Microsoft Visual Stu

    这个错误表示在你的代码中调用了一个名为 std regex match 的函数 但是在你的代码中并没有定义该函数的重载函数 没有参数列表与你调用的函数相匹配 这个错误发生在 Project16D Program Files x86 Micr
  • jstat命令

    文章目录 1 简介 2 常用选项示例 1 jstat class pid 2 jstat gc pid 3 jstat gcutil pid 4 其他命令 1 简介 jstat命令可以查看堆内存各部分的使用量 以及加载类的数量 命令的格式如
  • 推荐夸克和多御,非常的实用!

    一 多御浏览器 多御浏览器是一款集安全 速度 工具于一身的浏览器 它的界面简洁大方 干净利落 打开速度和加载速度都很快 并且注重浏览体验 浏览器常用的功能一应俱全 添加书签 夜间模式 视频下载 分享页面 密码锁屏等 保护你的隐私 满足你的需
  • Python之Pygame.rect函数

    1 参数设置 Pygame 通过 Rect 对象存储和操作矩形区域 一个 Rect 对象可以由 left top width height 几个值创建 Rect 也可以是由 Pygame 的对象所创建 它们拥有一个属性叫 rect 任何需要