pygame中Rect物件的方法詳解

2021-10-06 06:31:35 字數 3996 閱讀 9076

目錄

copy()

move()

move_ip()

inflate()

inflate_ip()

clamp()

clamp_ip()

clip()

clipline()

union()

union_ip()

unionall()

unionall_ip()

fit()

normalize()

contains()

collidepoint()

colliderect()

collidelist()

collidelistall()

collidedict()

collidedictall()

功能:複製矩形

屬性:copy() -> rect

返回與原始矩形具有相同位置和大小的新矩形。

new in pygame 1.9

功能:移動矩形

屬性:move(x, y) -> rect

返回按給定偏移量移動後的新矩形。x和y引數可以是任何整數值,正數或負數。

功能:移動矩形(無返回)

屬性:move_ip(x, y) -> none

rect.move()方法相同,但僅操作無返回副本。

功能:增大或縮小矩形大小

屬性:inflate(x, y) -> rect

返回乙個新矩形,其大小由給定的偏移量更改。矩形仍圍繞其當前中心。

負值將縮小矩形。

注意,使用整數,如果給定的偏移量太小(<2>-2),則中心將關閉。

功能:增大或縮小矩形大小(無返回)

屬性:inflate_ip(x, y) -> none

rect.inflate()方法相同,但僅操作無返回副本。

功能:將矩形移到另乙個矩形內

屬性:clamp(rect) -> rect

返回乙個新的矩形,該矩形被移動到引數rect內。如果矩形太大而不能放在內部,它將在引數rect內居中,但其大小不會更改。

功能:將矩形移到另乙個矩形內(無返回)

屬性:clamp_ip(rect) -> none

rect.clamp()方法相同,但僅操作無返回副本。

功能:在另乙個矩形內裁剪矩形

屬性:clip(rect) -> rect

返回乙個新矩形,該矩形被裁剪為完全位於引數矩形內。如果兩個矩形開始時沒有重疊,則返回乙個0大小的矩形。

功能:在矩形內裁剪一條線

屬性:返回裁剪為完全位於矩形內的直線的座標。如果行與矩形不重疊,則返回空元組。

要裁剪的線可以用以下任何格式表示(可以使用浮點數但不能保證精度):

返回

將給定行的座標裁剪為完全在矩形內的元組返回,如果給定行與矩形不重疊,則返回空元組

返回型別

tuple(tuple(int, int), tuple(int, int)) or ()

raises:

typeerror-- 如果該線座標不是上述行格式之一

注意:此方法可用於直線與直線之間的碰撞檢測。參見下面的示例**。

用於儲存直角座標的pygame.rectpygame物件的rect.bottomrect.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(rect) -> rect

返回完全覆蓋兩個提供的矩形區域的新矩形。新矩形內可能有原始矩形未覆蓋的區域。

功能:將兩個矩形合併為乙個(無返回)

屬性:union_ip(rect) -> none

rect.union()方法相同,但僅操作無返回副本。

功能:返回乙個矩形的並集

屬性:unionall(rect_sequence) -> rect

功能:矩形的並集

屬性:unionall_ip(rect_sequence) -> none

rect.unionall()方法相同,但僅操作無返回副本。

功能:按縱橫比調整矩形的大小或移動矩形

屬性:fit(rect) -> rect

返回乙個新矩形,該矩形被移動並調整大小以適應另乙個矩形。保留原始矩形的縱橫比,因此新矩形的寬度或高度可能小於目標矩形。

功能:泛化矩形

屬性:normalize() -> none

如果矩形的寬度或高度為負,則此操作將翻轉矩形的寬度或高度。矩形將保持在同一位置,只交換邊。

功能:測試乙個矩形是否在另乙個矩形內

屬性:contains(rect) -> bool

當引數完全在rect內時返回true。

功能:測試點是否在矩形內

屬性:如果給定點位於矩形內,則返回true。

沿右邊緣或下邊緣的點不被視為位於矩形內。

注意:對於矩形和直線之間的碰撞檢測,可以使用clipline()方法。

功能:測試兩個矩形是否重疊

屬性:colliderect(rect) -> bool

如果矩形的任何部分重疊(除了頂部+底部或左側+右側邊緣),則返回true。

注意:對於矩形和直線之間的碰撞檢測,可以使用clipline()方法。

功能:測試乙個矩形與列表中的矩形是否相交(intersect)

屬性:collidelist(list) -> index

測試矩形是否與一系列矩形中的任何矩形碰撞。返回找到的第乙個衝突的索引。如果未找到衝突,則返回索引-1。

功能:測試列表中的所有矩形是否相交(intersect)

屬性:collidelistall(list) -> indices

返回包含與矩形衝突的矩形的所有索引的列表。

如果未找到相交矩形,則返回空列表。

功能:測試字典中的乙個矩形是否相交(intersect)

屬性:返回與呼叫的rect物件相交的第乙個鍵和值對。

如果未找到衝突,則不返回任何衝突。

如果use_values為0(預設值),則在碰撞檢測中將使用dict的鍵,否則將使用dict的值。

注意:rect物件不能用作字典中的鍵(它們不可雜湊),因此必須將它們轉換為元組/列表。

e.g.rect.collidedict()

功能:測試字典中的所有矩形是否相交(intersect)

屬性:返回與呼叫的rect物件相交的所有鍵和值對的列表。

如果未找到衝突,則返回空列表。

如果use_values為0(預設值),則在碰撞檢測中將使用dict的鍵,否則將使用dict的值。

注意:rect物件不能用作字典中的鍵(它們不可雜湊),因此必須將它們轉換為元組/列表。e.g.rect.collidedictall()

談談Android中的Rect類

最近在工作中遇到了一些問題,總結下來就是android中rect這個類造成的。不得不說,不知道android sdk的開發人員是怎麼想的,這個類設計的太奇葩了。首先介紹一下rect類 rect類主要用於表示座標系中的一塊矩形區域,並可以對其做一些簡單操作。這塊矩形區域,需要用左上右下兩個座標點表示 ...

Android中Rect和RectF的區別與聯絡

android中rect和rectf的區別與聯絡 1.聯絡 都是用於表示座標系中的一塊矩形區域,並可以對其做一些簡單操作。這塊矩形區域,需要用左上和右下兩個座標點表示。2.區別 1 精度不一樣。rect是使用int型別作為數值,rectf是使用float型別作為數值。2 兩個型別提供的方法也不是完全...

windows 64位安裝Pygame的方法

一 當前環境 即python3.6 pip9.0.1 本人電腦windows64位 因為電腦python版本為3.6,所以選擇cp36的版本,當然python2.7則選擇cp27。電腦win64的這裡選擇win32的,由此定位。否則後面會出現錯誤。三 安裝pygame 1.將安裝好的pygame放在...