<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                [TOC] # **class pygame.Rect** Rect 是用于存儲矩形坐標的 Pygame 對象。 Rect(left, top, width, height) -> Rect Rect((left, top), (width, height)) -> Rect Rect(object) -> Rect ## **屬性 & 方法** * 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 對象的中心 * 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 對象(如果尺寸為負數) * 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 對象與字典中的每個矩形是否有交集 Pygame 通過 Rect 對象存儲和操作矩形區域。一個 Rect 對象可以由 left,top,width,height 幾個值創建。Rect 也可以是由 Pygame 的對象所創建,它們擁有一個屬性叫“rect”。 任何需要一個 Rect 對象作為參數的 Pygame 函數都可以使用以上值構造一個 Rect。這樣使得作為參數傳遞的同時創建 Rect 成為可能。 Rect 對象中的大部分方法在修改矩形的位置、尺寸后會返回一個新的 Rect 拷貝,原始的 Rect 對象不會有任何改變。但有些方法比較特殊,它們會“原地”修改 Rect 對象(也就是說它們會改動原始的 Rect 對象),這些方法都會以 “ip” 作為后綴(小甲魚溫馨提示:”ip” 即 “in-place” 的縮寫,“原地”的意思)。 對了方便大家移動和對齊,Rect 對象提供以下這些虛擬屬性: > x,y top, left, bottom, right topleft, bottomleft, topright, bottomright midtop, midleft, midbottom, midright center, centerx, centery size, width, height w,h 上邊這些屬性均可以被賦值,例如: ~~~ rect1.right = 10rect2.center = (20,30) ~~~ 給 size,width,height 屬性賦值將改變矩形的尺寸;給其它屬性賦值將移動矩形。注意:一些屬性是整數,一些是整數對。 如果一個 Rect 對象的 width 或 height 非 0,那么將在非 0 測試中返回 True。一些方法返回尺寸為 0 的 Rect 對象,用于表示一個非法的矩形。 Rect 對象的坐標都是整數,size 的值可以是負數,但在大多數情況下被認為是非法的。 還有一些方法可以實現矩形間碰撞檢測,大多數 Python 的容器可以用于檢索其中的元素與某個 Rect 對象是否碰撞。 Rect 對象覆蓋的范圍并不包含 right 和 bottom 指定的邊緣位置。 溫馨提示,一圖勝千言: ![](https://img.kancloud.cn/1c/0d/1c0d7b1f4f2680d3b0b980eb5b5f8551_354x182.png) 這樣的話,如果一個 Rect 對象的 bottom 邊框恰好是另一個 Rect 對象的 top 邊框(即 rect1.bottom == rect2.top),那么兩矩形就恰好沒有重疊的顯示在屏幕上,rect1.colliderect(rect2) 也將返回 False。 盡管 Rect 對象可以被繼承,但 Rect 的方法返回的是一個全新的 Rect 對象,而不是其子對象。 ## **屬性 & 方法詳解** ### **copy()** 拷貝 Rect 對象。 copy() -> Rect 返回一個新的 Rect 對象,擁有與該 Rect 對象相同的位置和尺寸。 Pygame 1.9 新增加的。 ### **move()** 移動 Rect 對象。 move(x, y) -> Rect 返回一個新的 Rect 對象。x 和 y 參數可以是正數或負數,用于指定新對象的偏移地址。 ### **move\_ip()** 原地移動 Rect 對象。 move\_ip(x, y) -> None 效果跟 move() 方法一樣,區別是這個直接作用于當前 Rect 對象,而不是返回一個新的。 ### **inflate()** 放大和縮小 Rect 對象的尺寸。 inflate(x, y) -> Rect 返回一個新的 Rect 對象。x 和 y 參數指定新的對象放大或縮小多少像素。新的對象保持與原始 Rect 對象在同一個中心上。 ### **inflate\_ip()** 原地放大和縮小 Rect 對象的尺寸。 inflate\_ip(x, y) -> None 效果跟 inflate() 方法一樣,區別是這個直接作用于當前 Rect 對象,而不是返回一個新的。 ### **clamp()** 將一個 Rect 對象移動到另一個 Rect 對象的中心。 clamp(Rect) -> Rect 返回一個新的 Rect 對象,范圍是以 Rect 參數指定的對象為中心,保持原始 Rect 對象的尺寸不變。如果原始 Rect 對象的尺寸比 Rect 參數的要大,那么保持中心重疊,尺寸不變。 ### **clamp\_ip()** 原地將一個 Rect 對象移動到另一個 Rect 對象的中心。 clamp\_ip(Rect) -> None 效果跟 clamp() 方法一樣,區別是這個直接作用于當前 Rect 對象,而不是返回一個新的。 ### **clip()** 獲取兩個 Rect 對象互相重疊的部分。 clip(Rect) -> Rect 返回一個新的 Rect 對象,范圍是原始 Rect 對象與 Rect 參數指定的對象互相重疊的部分。如果兩個 Rect 對象沒有任何重疊,則返回一個 (0, 0, 0, 0) 的 Rect 對象。 ### **union()** 將兩個 Rect 對象合并。 union(Rect) -> Rect 返回一個新的 Rect 對象,范圍將包含原始 Rect 對象與 Rect 參數指定的對象。由于結果返回一個新的矩形,所以會產生一些多與的空間。 ### **union\_ip()** 原地將兩個 Rect 對象合并。 union\_ip(Rect) -> None 效果跟 union() 方法一樣,區別是這個直接作用于當前 Rect 對象,而不是返回一個新的。 ### **unionall()** 將多個 Rect 對象合并。 unionall(Rect\_sequence) -> Rect 返回一個新的 Rect 對象,范圍將包含 Rect\_sequence 參數指定的序列中所有的 Rect 對象。 ### **unionall\_ip()** 原地將多個 Rect 對象合并。 unionall\_ip(Rect\_sequence) -> None 效果跟 unionall() 方法一樣,區別是這個直接作用于當前 Rect 對象,而不是返回一個新的。 ### **fit()** 按照一定的寬高比調整 Rect 對象。 fit(Rect) -> Rect 返回一個新的 Rect 對象,范圍是 Rect 參數的對象按照原始 Rect 對象的寬高比調整得來。 舉個例子: ~~~ import pygame import sys pygame.init() size = width, height = 300, 300 bg = (255, 255, 255) # RGB 白色 # 創建指定大小的窗口 Surface screen = pygame.display.set_mode(size) # 設置窗口標題 pygame.display.set_caption("Python Demo") clock = pygame.time.Clock() rect1 = pygame.Rect(0, 0, 100, 50) rect2 = pygame.Rect(50, 50, 200, 200) while True: ? ?for event in pygame.event.get(): ? ? ? ?if event.type == pygame.QUIT: ? ? ? ? ? ?pygame.quit() ? ? ? ? ? ?sys.exit() ? ?screen.fill(bg) ? ?pygame.draw.rect(screen, (255, 0, 0), rect1) ? ?pygame.draw.rect(screen, (0, 255, 0), rect2) ? ?pygame.draw.rect(screen, (0, 0, 255), rect1.fit(rect2)) ? ?pygame.display.flip() ? ?clock.tick(10) ~~~ 結果如下: ![](https://img.kancloud.cn/40/57/4057d60809402c43ac471f4b2e8a38a2_316x339.png) ### **normalize()** 翻轉 Rect 對象(如果尺寸為負數)。 normalize() -> None 如果 width 或 height 存在負數,則做出相應的翻轉,使其變為正數。翻轉后的 Rect 仍然在原來的位置,只是修改其相應的屬性值。 ### **contains()** 檢測一個 Rect 對象是否完全包含在該 Rect 對象內。 contains(Rect) -> bool 如果 Rect 參數指定的對象完全包含在該 Rect 對象內,返回 True,否則返回 False。 ### **collidepoint()** 檢測一個點是否包含在該 Rect 對象內。 collidepoint(x, y) -> bool collidepoint((x,y)) -> bool 如果給定的點在該 Rect 對象內,返回 True,否則返回 False。 一個點在 Rect 的 right 或 bottom 邊緣上時,并不被認為包含在該矩形內。 ### **colliderect()** 檢測兩個 Rect 對象是否重疊。 colliderect(Rect) -> bool 如果兩個 Rect 對象有任何重疊的地方,返回 True,否則返回 False。 注意:right 和 bottom 指定的邊緣位置并不屬于對應的矩形。 ### **collidelist()** 檢測該 Rect 對象是否與列表中的任何一個矩形有交集。 collidelist(list) -> index 返回值是第 1 個有相交的矩形所在列表中的索引號(如果有的話),否則返回 -1。 ### **collidelistall()** 檢測該 Rect 對象與列表中的每個矩形是否有交集。 collidelistall(list) -> indices 返回一個列表,包含所有與該 Rect 對象有交集的元素;如果一個都沒有,返回一個空列表。 ### **collidedict()** 檢測該 Rect 對象是否與字典中的任何一個矩形有交集。 collidedict(dict) -> (key, value) 返回值是第 1 個有相交的矩形所在字典中的鍵和值;如果沒有找到,返回 None。 注意:因為 Rect 對象不是哈希值,所以不能作為字典的鍵存在,因此比較的只有值。 ### **collidedictall()** 檢測該 Rect 對象與字典中的每個矩形是否有交集。 collidedictall(dict) -> \[(key, value), …\] 返回一個列表,包含所有與該 Rect 對象有交集的鍵值對;如果一個都沒有,返回一個空字典。 注意:因為 Rect 對象不是哈希值,所以不能作為字典的鍵存在,因此比較的只有值。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看