国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

pygame中Rect對象介紹案例解答

89542767 / 888人閱讀


  小編寫此篇文章的目的,主要是給大家來做一個解答,解答關于pygame中Rect對象的相關內容知識,下面就給大家做一個比較詳細的解答。


  class pygame.Rect Rect


  對象的屬性:


  Rect表示的區域必須位于一個Surface對象之上,比如游戲的主窗口(screen)。上述方法由四個關鍵參數值構成,分別是left、top、width、height,為了方便大家理解這些距離的含義,下面給出了一張示意圖:

0.png

  注意:在Pygame中以游戲主窗口的左上角為坐標原點。


  1.返回一個坐標數字


   x,y
  top,left,bottom,right
  centerx,centerysize
  width,height
  w,h;


  2.返回一個(X,Y)坐標數組


   topleft(左上)
  bottomleft(左下)
  bottomright(右下)
  midtop(中上)
  midleft(左中)
  midbottom(底中)
  midright(右中)
  center(中心點坐標)


  方法


  Rect是用于存儲矩形坐標的Pygame對象。


  Rect(left,top,width,height)->Rect
  Rect((left,top),(width,height))->Rect
  Rect(object)->Rect


  方法


  Rect是用于存儲矩形坐標的Pygame對象。


  Rect(left,top,width,height)->Rect
  Rect((left,top),(width,height))->Rect
  Rect(object)->Rect

  Rect(rectangle)指的是矩形,或者長方形,在Pygame中我們使用Rect()方法來創建一個指定位置,大小的矩形區域。


  Rect(矩形區域)對象提供了一些方法。如下表所示:


  方法                                說明                                                                             返回值


  pygame.Rect.copy()—拷貝Rect對象,返回與原始矩形具有相同位置和大小的新矩形。Rect對象


  pygame.Rect.move()—移動Rect對象,返回按給定偏移量移動后的新矩形。x和y參數可以是任何整數值,正數或負數。Rect對象


  pygame.Rect.move_ip()—原地移動Rect對象,與Rect.move()方法相同,但僅操作無返回副本。None


  pygame.Rect.inflate()—放大和縮小Rect對象的尺寸,返回一個新矩形,其大小由給定的偏移量更改。矩形仍圍繞其當前中心。負值將縮小矩形。Rect對象


  pygame.Rect.inflate_ip()—原地放大和縮小Rect對象的尺寸,與Rect.inflate()方法相同,但僅操作無返回副本。None


  pygame.Rect.clamp()—將一個Rect對象移動到另一個Rect對象的中心,返回一個新的矩形,該矩形被移動到參數Rect內。如果矩形太大而不能放在內部,它將在參數Rect內居中,但其大小不會更改。Rect對象


  pygame.Rect.clamp_ip()—原地將一個Rect對象移動到另一個Rect對象的中心None


  pygame.Rect.clip()—獲取兩個Rect對象互相重疊的部分,返回一個新矩形,該矩形被裁剪為完全位于參數矩形內。如果兩個矩形開始時沒有重疊,則返回一個0大小的矩形。Rect對象


  pygame.Rect.union()—將兩個Rect對象合并,返回完全覆蓋兩個提供的矩形區域的新矩形。新矩形內可能有原始矩形未覆蓋的區域。Rect對象


  pygame.Rect.union_ip()—原地將兩個Rect對象合并,與Rect.union()方法相同,但僅操作無返回副本。None


  pygame.Rect.unionall()—將多個Rect對象合并Rect對象


  pygame.Rect.unionall_ip()—原地將多個Rect對象合并None


  pygame.Rect.fit()—按照一定的寬高比調整Rect對象,返回一個新矩形,該矩形被移動并調整大小以適應另一個矩形。保留原始矩形的縱橫比,因此新矩形的寬度或高度可能小于目標矩形。Rect對象


  pygame.Rect.normalize()—翻轉Rect對象(如果尺寸為負數),如果矩形的寬度或高度為負,則此操作將翻轉矩形的寬度或高度。矩形將保持在同一位置,只交換邊。None


  pygame.Rect.contains()—檢測一個Rect對象是否完全包含在該Rect對象內,contains(Rect)->bool當參數完全在Rect內時返回true。bool


  pygame.Rect.collidepoint()—檢測一個點是否包含在該Rect對象內,如果給定點位于矩形內,則返回true。沿右邊緣或下邊緣的點不被視為位于矩形內。注意:對于矩形和直線之間的碰撞檢測,可以使用clipline()方法。bool


  pygame.Rect.colliderect()—檢測兩個Rect對象是否重疊,如果矩形的任何部分重疊(除了頂部+底部或左側+右側邊緣),則返回true。注意:對于矩形和直線之間的碰撞檢測,可以使用clipline()方法。bool


  pygame.Rect.collidelist()—檢測該Rect對象是否與列表中的任何一個矩形有交集,測試矩形是否與一系列矩形中的任何矩形碰撞。返回找到的第一個沖突的索引。如果未找到沖突,則返回索引-1。bool


  pygame.Rect.collidelistall()—檢測該Rect對象與列表中的每個矩形是否有交集,返回包含與矩形沖突的矩形的所有索引的列表。如果未找到相交矩形,則返回空列表。bool


  pygame.Rect.collidedict()—檢測該Rect對象是否與字典中的任何一個矩形有交集bool


  pygame.Rect.collidedictall()—檢測該Rect對象與字典中的每個矩形是否有交集[(key,value),…]


  下面看一組簡單的示例演示,如下所示:


  import pygame
  #對應left/top/width/height
  rect1=pygame.Rect(0,0,100,100)
  print('x的值是{};y的值是{}'.format(rect1.x,rect1.y))
  print('bottom的值是{};right的值是{}'.format(rect1.bottom,rect1.right))
  #設置居中的距離
  print(rect1.center,rect1.centerx,rect1.centery)
  #返回值為(centerx,top)
  print(rect1.midtop)
  #返回值為(right,centery)的元組
  print(rect1.midright)
  #返回值為(left,bottom)
  print(rect1.bottomleft)
  #返回矩形區域大小,元組格式
  print(rect1.size)
  輸出結果如下:
  x的值是0;y的值是0
  bottom的值是100;right的值是100
  #設置中心努力
  (50,50)50 50
  (50,0)
  #midright
  (100,50)
  #bottomleft
  (0,100)
  #size
  (100,100)

  我們還可以通過屬性對來設置,或者者更改矩形區域的大小,如下所示:


   rect1.left=30
  rect1.center=(70,70)

  除了通過Rect對象來構造一個矩形區域之外,我們還可以使用rect屬性來構建一個矩形區域。在Pygame中有許多函數都提供了rect屬性,比如有下列函數:


  surface.fill((0,0,255),rect=(100,100,100,50))


  上述代碼會在surface對象的區域內選定一個rect區域,并將該區域填充為藍色(RGB(0,0,255))。


  示例:


  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)

  剪切圖片的應用


  1)加載圖片shoot_img=pygame.image.load(r'F:Python STUDYimagesme11.png')


  2)矩形剪切圖片


   hero1_rect=pygame.Rect(0,0,136,168)
  hero2=shoot1_img.subsurface(hero1_rect)


  綜上所述,pygame中rect對象就為大家介紹到這里了,希望可以為各位讀者帶來幫助。


文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/127744.html

相關文章

  • Python pygame如何實現拼圖游戲?下文給大家解答

      Python pygame作為一門常見的技能,其實,它的應用范圍還是比較的廣泛的,那么,它是怎么實現其拼圖游戲呢?下面就以案例的形式,去給大家做個解答,下面就給大家詳細解答下?! ygame介紹  Python Pygame是一款專門為開發和設計2D電子游戲而生的軟件包,它支Windows、Linux、Mac OS等操作系統,具有良好的跨平臺性。Pygame由Pete Shinners于20...

    89542767 評論0 收藏0
  • 教你使用Python的pygame模塊實現拼圖游戲

      pygame模塊是一個可以跨平臺的模塊,主要就是作為游戲開發來進行使用的,那么,怎么才能夠實現其游戲開發的技能了?比如說,怎么實現使用pygame去實現拼圖的游戲呢?下面就給大家詳細解答下。  pygame介紹  Python Pygame是一款專門為開發和設計2D電子游戲而生的軟件包,它支Windows、Linux、Mac OS等操作系統,具有良好的跨平臺性。Pygame由Pete Shin...

    89542767 評論0 收藏0
  • Python+Pygame怎么實現吃豆豆游戲?

      小編寫這篇文章的一個主要目的,主要是用來給大家去做個相關的介紹,介紹的內容主要是涉及到相關的游戲實現,比如怎么去做游戲呢?比如說,怎么去做打豆豆的游戲呢?關于這方面的內容,下面就給大家詳細解答下。  序言  前天晚上,玩起了在我們的學生時代經常玩的一些游戲,吃豆豆,但是我發現,在一局游戲當中,我們命的條數是比較少的,我根本不能吃完所有的豆豆,總是被敵人吃掉  于是,我在想怎么能夠保證我達到吃完...

    89542767 評論0 收藏0
  • Python學習之路11-武裝飛船

    摘要:和標志,用于表示飛船是否正在移動,用于實現飛船在不松開按鍵下連續移動。重寫了函數,用于繪制飛船模塊該模塊主要是集中處理游戲中發生的各種事件。函數用于監聽游戲的事件,比如,它表示游戲推出事件和分別表示鍵盤按下與松開事件。 《Python編程:從入門到實踐》筆記。本章主要學習如何使用pygame編寫一個簡單的小飛機打外星人的游戲,由于本人對用python寫游戲并不是特別感興趣,所以主要是看...

    李昌杰 評論0 收藏0
  • Pygame精準檢測圖象撞擊問題

      此篇文章主要是闡述了Pygame精準檢測圖象撞擊,在使用Pygame寫游戲時,有些人可能遇到2個Rect目標撞擊可是目標中間也有室內空間間距問題,這兒,將教給大家用一個方法準確地檢驗圖象撞擊,需用的小伙伴可以借鑒一下。  在使用Pygame寫游戲時,有些人可能遇到2個Rect目標撞擊可是目標中間也有室內空間間距問題,這兒,將教給大家用一個方法準確地檢驗圖象撞擊?! 〖俣ù蠹抑饕袃煞N圖象(為非...

    89542767 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<