此篇文章主要是闡述了Pygame精準檢測圖象撞擊,在使用Pygame寫游戲時,有些人可能遇到2個Rect目標撞擊可是目標中間也有室內空間間距問題,這兒,將教給大家用一個方法準確地檢驗圖象撞擊,需用的小伙伴可以借鑒一下。
在使用Pygame寫游戲時,有些人可能遇到2個Rect目標撞擊可是目標中間也有室內空間間距問題,這兒,將教給大家用一個方法準確地檢驗圖象撞擊。
假定大家主要有兩種圖象(為非Surface):surface1,surface2
最先,得到這兩個surface目標的rect:
rect1=surface1.get_rect() rect2=surface2.get_rect()
隨后,獲得他們相匹配的mask目標,用pygame.mask.from_surface()方式,應用如下所示:
pygame.mask.from_surface(surface)
填寫是指Surface目標,回到Mask目標
編碼如下所示:
mask1=pygame.mask.from_surface(surface1) mask2=pygame.mask.from_surface(surface2)
接下去,開展路徑規劃,大家需要使用overlap方法,應用如下所示:
mask.overlap(other,offset)
mask是1個Mask目標
other是另一個Mask目標
offset是1個數組,數組中分別是兩個rect的x坐標插值法和y坐標插值法
函數參數主要有兩種,如果是個數組就證明早已撞擊,假如為None就證明并沒有撞擊
編碼如下所示:
offset=abs(rect1.x-rect2.x),abs(rect1.y-rect2.y) ifrect1.overlap(rect2,offset)!=None:#早已撞擊 print("早已撞擊")
之上編碼僅僅實例,可供參考,取名不用和上邊相同,合乎命名規范就可以了
綜上所述,這篇文章就給大家介紹到這里了,希望可以給大家帶來幫助。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/128841.html
此篇文章主要是闡述了Pygame精準檢測圖象撞擊,在使用Pygame寫游戲時,有些人可能遇到2個Rect目標撞擊可是目標中間也有室內空間間距問題,這兒,將教給大家用一個方法準確地檢驗圖象撞擊,需用的小伙伴可以借鑒一下 在使用Pygame寫游戲時,有些人可能遇到2個Rect目標撞擊可是目標中間也有室內空間間距問題,這兒,將教給大家用一個方法準確地檢驗圖象撞擊。 假定大家主要有兩種圖象(產品為...
小編寫此篇文章的目的,主要是給大家來做一個解答,解答關于pygame中Rect對象的相關內容知識,下面就給大家做一個比較詳細的解答。 class pygame.Rect Rect 對象的屬性: Rect表示的區域必須位于一個Surface對象之上,比如游戲的主窗口(screen)。上述方法由四個關鍵參數值構成,分別是left、top、width、height,為了方便大家理解這些距離的含...
摘要:源碼分享主函數游戲初始化九歌播放背景音樂游戲主循環按鍵檢測更新貪吃蛇和食物判斷游戲是否結束顯示游戲里必要的元素屏幕更新普普通通玩法詳細介紹源碼點小游戲玩法通過加減乘除操作小學生都沒問題的。 大家好,我是辣條。 今天給大家帶來30個py小游戲,一定要收藏...
閱讀 911·2023-01-14 11:38
閱讀 878·2023-01-14 11:04
閱讀 740·2023-01-14 10:48
閱讀 1982·2023-01-14 10:34
閱讀 942·2023-01-14 10:24
閱讀 819·2023-01-14 10:18
閱讀 499·2023-01-14 10:09
閱讀 572·2023-01-14 10:02