成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

pygame中Rect對象介紹案例解答

89542767 / 929人閱讀


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


  class pygame.Rect Rect


  對象的屬性:


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

0.png

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


  1.返回一個坐標數(shù)字


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


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


   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()方法來創(chuàng)建一個指定位置,大小的矩形區(qū)域。


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


  方法                                說明                                                                             返回值


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


  pygame.Rect.move()—移動Rect對象,返回按給定偏移量移動后的新矩形。x和y參數(shù)可以是任何整數(shù)值,正數(shù)或負數(shù)。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對象的中心,返回一個新的矩形,該矩形被移動到參數(shù)Rect內(nèi)。如果矩形太大而不能放在內(nèi)部,它將在參數(shù)Rect內(nèi)居中,但其大小不會更改。Rect對象


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


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


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


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


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


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


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


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


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


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


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


  pygame.Rect.collidelist()—檢測該Rect對象是否與列表中的任何一個矩形有交集,測試矩形是否與一系列矩形中的任何矩形碰撞。返回找到的第一個沖突的索引。如果未找到?jīng)_突,則返回索引-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)
  #返回矩形區(qū)域大小,元組格式
  print(rect1.size)
  輸出結(jié)果如下:
  x的值是0;y的值是0
  bottom的值是100;right的值是100
  #設置中心努力
  (50,50)50 50
  (50,0)
  #midright
  (100,50)
  #bottomleft
  (0,100)
  #size
  (100,100)

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


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

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


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


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


  示例:


  import pygame
  import sys
  pygame.init()
  size=width,height=300,300
  bg=(255,255,255)#RGB白色
  #創(chuàng)建指定大小的窗口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對象就為大家介紹到這里了,希望可以為各位讀者帶來幫助。


文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/127744.html

相關文章

  • Python pygame如何實現(xiàn)拼圖游戲?下文給大家解答

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

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

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

    89542767 評論0 收藏0
  • Python+Pygame怎么實現(xiàn)吃豆豆游戲?

      小編寫這篇文章的一個主要目的,主要是用來給大家去做個相關的介紹,介紹的內(nèi)容主要是涉及到相關的游戲?qū)崿F(xiàn),比如怎么去做游戲呢?比如說,怎么去做打豆豆的游戲呢?關于這方面的內(nèi)容,下面就給大家詳細解答下?! ⌒蜓浴 ∏疤焱砩?,玩起了在我們的學生時代經(jīng)常玩的一些游戲,吃豆豆,但是我發(fā)現(xiàn),在一局游戲當中,我們命的條數(shù)是比較少的,我根本不能吃完所有的豆豆,總是被敵人吃掉  于是,我在想怎么能夠保證我達到吃完...

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

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

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

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

    89542767 評論0 收藏0

發(fā)表評論

0條評論

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