Python之pygame學習矩形區域(5)

2021-09-26 02:52:58 字數 4018 閱讀 2792

在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(左,頂,寬,高) - > rect

rect((左,上),(寬,高)) - > rect

rect(object) - > rect

矩形區域建立後並不會在表面顯示,不跟繪製基本圖形一樣,建立後直接在表面繪製成像。在不執行pygame.init()方法同樣能夠直接使用

rect物件有幾個虛擬屬性,可用於移動和對齊rect:

x,ytop, 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()

複製矩形

copy() - > rect

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

move()

移動矩形

move(x,y) - > rect

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

move_ip()

將矩形移動到位

move_ip(x,y) - >無

與rect.move()方法相同,但在適當的位置操作。

inflate()

增大或縮小矩形大小

膨脹(x,y) - > rect

返回乙個新的矩形,其大小由給定的偏移量改變。江蘇小學五年級英語一對一輔導矩形保持以其當前中心為中心。負值會縮小矩形。注意,使用整數,如果給定的偏移量太小(<2> -2),則中心將關閉。

inflate_ip()

在適當的位置增大或縮小矩形大小

inflate_ip(x,y) - >無

與rect.inflate()方法相同,但在適當的位置操作。

clamp()

將矩形移到另乙個內部

clamp(rect) - > rect

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

clamp_ip()

將矩形移動到另乙個內部

clamp_ip(rect) - >無

與rect.clamp()方法相同,但在適當的位置操作。

clip()

在另乙個內部種植乙個矩形

clip(rect) - > rect

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

union()

將兩個矩形連線成乙個

union(rect) - > rect

返回乙個完全覆蓋兩個提供的矩形區域的新矩形。新rect中可能存在未被

union_ip()

將兩個矩形連線成乙個到位

union_ip(rect) - >無

與rect.union()方法相同,但在適當的位置操作。

unionall()

許多矩形的聯合

unionall(rect_sequence) - > rect

返回乙個矩形與一系列矩形序列的並集。

unionall_ip()

許多矩形的結合,到位

unionall_ip(rect_sequence) - >無

與rect.unionall()方法相同,但操作到位。

fit()

調整大小並移動縱橫比矩形

fit(rect) - > rect

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

normalize()

正確的負尺寸

normalize() - >無

如果矩形的負大小,這將翻轉矩形的寬度或高度。矩形將保持在同一位置,只交換側面。

contains()

測試乙個矩形是否在另乙個矩形內

contains(rect) - > bool

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

collidepoint()

測試乙個點是否在矩形內

collidepoint(x,y) - > bool

collidepoint((x,y)) - > bool

如果給定的點在矩形內,則返回true。沿右邊或底邊的點不被視為在矩形內。

colliderect()

測試兩個矩形是否重疊

colliderect(rect) - > bool

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

collidelist()

測試列表中的乙個矩形是否相交

collidelist(list) - > index

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

collidelistall()

測試列表中的所有矩形是否相交

collidelistall(list) - > indices

返回包含與rect衝突的矩形的所有索引的列表。如果未找到相交的矩形,則返回空列表。

collidedict()

測試字典中的乙個矩形是否相交

collidedict(dict) - >(鍵,值)

collidedict(dict) - >沒有

collidedict(dict,use_values = 0) - >(鍵,值)

collidedict(dict,use_values = 0) - >無

返回與呼叫rect物件相交的第乙個鍵和值對。如果未找到任何衝突,none則返回。如果 use_values為0(預設值),則dict的鍵將用於碰撞檢測,否則將使用dict的值。

注意rect物件不能用作字典中的鍵(它們不可清除),因此必須將它們轉換為元組/列表。例如rect.collidedict()

collidedictall()

測試字典中的所有矩形是否相交

collidedictall(dict) - > [(鍵,值),…]

collidedictall(dict,use_values = 0) - > [(鍵,值),…]

返回與呼叫rect物件相交的所有鍵和值對的列表。如果未找到衝突,則返回空列表。如果use_values為0(預設值),則dict的鍵將用於碰撞檢測,否則將使用dict的值。

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

Python 學習筆記之pygame的安裝

介紹最方便的方法吧 網上有很多實用的 但是可能年頭太遠 不能用了 我是windows 3.6版本的 一 安裝pip 在cmd下輸入 python m pip version 如果有下面這個 就是有pip 可以直接安裝pygame了 如果沒有這一條的話 訪問 如果出現對話方塊,請儲存檔案 如果出現 將...

Python學習 pygame的安裝

一 pygame介紹 pygame是跨平台python模組,專為電子遊戲設計,包含影象 聲音。pygame建立在sdl基礎上,允許實時電子遊戲研發而無需被低階語言束縛。二 pygame安裝 安裝python 我安裝的版本是python3.6 32位 三 pygame使用 coding utf 8 i...

Pygame學習之畫線基本操作

pygame的座標原點 0,0 點位於左上角,x軸自左向右,y軸自上向下,單位為畫素。pygame.draw.line su ce,color,start pos,end pos,width 此方法用於繪製一條線段。pygame.draw.rect su ce,color,rect 此方法用於繪製乙...