《Python和Pygame游戏开发指南》——2.13 Rect对象

简介:

本节书摘来自异步社区《Python和Pygame游戏开发指南》一书中的第2章,第2.13节,作者[美]Al Sweigart(斯维加特), 李强 译,更多章节内容可以访问云栖社区“异步社区”公众号查看。

2.13 Rect对象

Pygame有两种方法来表示矩形区域(就像有两种方法表示颜色一样)。第一种是4个整数的元组。

1.左上角的X 坐标。

2.左上角的Y 坐标。

3.矩形的宽度(以像素为单位)。

4.矩形的高度(以像素为单位)。

第二种方法是作为一个pygame.Rect对象,我们后面将其简称为Rect对象。例如,如下的代码创建了一个Rect对象,它的左上角位于(10, 20),宽度为200像素,高度为300像素。


screenshot

这种表示的方便之处在于Rect对象自动计算矩形的其他部分的坐标。例如,如果你需要知道变量spamRect中所存储的pygame.Rect对象的右边的X 坐标,只需要访问Rect对象的right属性。


screenshot

如果左边的X 坐标为10并且矩形的宽度为200像素,Rect对象的Pygame代码会自动计算出矩形的右边的X 坐标必须位于210。如果重新设置right属性,所有其他的属性也会自动计算求得。


screenshot

表2-2列出了pygame.Rect对象所提供的所有属性(在我们的示例中,Rect对象存储在名为myRect的一个变量中)。


screenshot


screenshot

相关文章
|
10天前
|
存储 Go 索引
牢记python对象的操作方式
【6月更文挑战第20天】在Python中,`hash()`和`is`帮助确定对象的相等性。`dir()`和`vars()`揭示对象的属性和内部表示,`__slots__`优化内存使用。列表和字典结构有不同的内存和性能特性,字典使用哈希表进行快速访问。
52 5
牢记python对象的操作方式
|
12天前
|
Shell Python
python中模块对象__file__
【6月更文挑战第12天】
19 8
|
11天前
|
Python
Python中的模块对象__package__
【6月更文挑战第13天】
15 5
|
10天前
|
算法 Java 程序员
Python内存管理用引用计数(对象的`ob_refcnt`)跟踪对象,但循环引用(如A->B->A)可导致内存泄漏。
【6月更文挑战第20天】Python内存管理用引用计数(对象的`ob_refcnt`)跟踪对象,但循环引用(如A->B->A)可导致内存泄漏。为解决此问题,Python使用`gc`模块检测并清理循环引用,可通过`gc.collect()`手动回收。此外,Python结合标记清除和分代回收策略,针对不同生命周期的对象优化垃圾回收效率,确保内存有效释放。
15 3
|
11天前
|
存储 Python
Python中的模块对象__dict__
【6月更文挑战第13天】
14 4
|
12天前
|
存储 程序员 Python
python中模块对象__doc__
【6月更文挑战第12天】
14 5
|
9天前
|
开发框架 Python
Python的`pygame`库用于2D游戏开发,涵盖图形、音频和输入处理。
【6月更文挑战第21天】Python的`pygame`库用于2D游戏开发,涵盖图形、音频和输入处理。要开始,先通过`pip install pygame`安装。基本流程包括:初始化窗口、处理事件循环、添加游戏元素(如玩家和敌人)、响应用户输入、更新游戏状态及结束条件。随着项目发展,可逐步增加复杂性。
20 1
|
11天前
|
Python
Python中的模块对象__path__
【6月更文挑战第13天】
9 2
|
2天前
|
索引 Python
技术好文共享:用Python的Pygame包做飞行棋
技术好文共享:用Python的Pygame包做飞行棋
|
3天前
|
算法 Java 程序员
Python面相对象的编程
Python面相对象的编程