pygame矩形区域
上篇说到移动基本图形,这次来说下矩形区域的操作。
在pygame中矩形区域这个类比较特殊,在游戏中,所有可见的元素都是以矩形区域来描述位置。
可以从left,top,width和height值的组合创建Rect。也可以从已经是Rect或具有名为“rect”的属性的python对象创建Rect。
任何需要Rect参数的pygame函数也接受这些值中的任何一个来构造Rect。这使得动态创建Rects更容易作为函数的参数。
官网说的不是很懂。。
更改Rect的位置或大小的Rect函数返回带有受影响的更改的Rect的新副本。原始的Rect未被修改。某些方法有一个备用的“就地”版本,它返回None但会影响原始的Rect。这些“就地”方法用“ip”后缀表示。
我们常用到的没有那么多,通常用到就是创建矩形区域对象
pygame.Rect用于存储直角坐标的pygame对象Rect(左,顶,宽,高) - > RectRect((左,上),(宽,高)) - > RectRect(object) - > Rect
矩形区域创建后并不会在表面显示,不跟绘制基本图形一样,创建后直接在表面绘制成像。在不执行pygame.init()方法同样能够直接使用
Rect对象有几个虚拟属性,可用于移动和对齐Rect:
x,y
top, left, bottom, right
topleft, bottomleft, topright, bottomright
midtop, midleft, midbottom, midright
center, centerx, centery
size, width, height
w,h
直接返回的是矩形区域类型,包含位置,大小
可以用调用对象的x或y方法;
返回fk 的x轴位置和y轴位置
这里分别是矩形区域的顶(top),左(left),底(bottom),右(right).
这里分别对应矩形区域的四个角所在的位置
这四个分别对应矩形区域的四个边的中间点坐标。
分别返回矩形区域的中心点坐标(元祖),中心x轴,中心y轴
分别返回矩形区域的宽高(元祖),宽,高
分别返回矩形区域的宽,高(类似上面宽高单词缩写)
上面的方法我们可以使用赋值操作来对矩形区域的大小位置进行改变
赋值操作改变位置
除了上面一些常用属性,还有一些方法;
copy
()move
()move_ip
()Rect.move()
方法相同,但在适当的位置操作。inflate
()inflate_ip
()Rect.inflate()
方法相同,但在适当的位置操作。clamp
()clamp_ip
()Rect.clamp()
方法相同,但在适当的位置操作。clip
()union
()union_ip
()Rect.union()
方法相同,但在适当的位置操作。unionall
()unionall_ip
()Rect.unionall()
方法相同,但操作到位。fit
()normalize
()contains
()collidepoint
()colliderect
()collidelist
()collidelistall
()collidedict
()None
则返回。如果 use_values
为0(默认值),则dict的键将用于碰撞检测,否则将使用dict的值。
注意
Rect对象不能用作字典中的键(它们不可清除),因此必须将它们转换为元组/列表。例如rect.collidedict({tuple(key_rect)
:
value})
collidedictall
()use_values
为0(默认值),则dict的键将用于碰撞检测,否则将使用dict的值。
注意
Rect对象不能用作字典中的键(它们不可清除),因此必须将它们转换为元组/列表。例如rect.collidedictall({tuple(key_rect)
:
value})
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有