此篇文章主要是闡述了Pygame精準檢測圖象撞擊,在使用Pygame寫游戲時,有些人可能遇到2個Rect目標撞擊可是目標中間也有室內(nèi)空間間距問題,這兒,將教給大家用一個方法準確地檢驗圖象撞擊,需用的小伙伴可以借鑒一下
在使用Pygame寫游戲時,有些人可能遇到2個Rect目標撞擊可是目標中間也有室內(nèi)空間間距問題,這兒,將教給大家用一個方法準確地檢驗圖象撞擊。
假定大家主要有兩種圖象(產(chǎn)品為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)
下面,開展路徑規(guī)劃,大家需要使用overlap方法,應用如下所示:
mask.overlap(other,offset)
mask是1個Mask目標
other是另一個Mask目標
offset是1個數(shù)組元素,數(shù)組元素中分別是兩個rect的x坐標插值法和y坐標插值法
傳參主要有兩種,如果是個數(shù)組元素就證明早已撞擊,假如為None就證明并沒有撞擊
編碼如下所示:
offset=abs(rect1.x-rect2.x),abs(rect1.y-rect2.y) ifrect1.overlap(rect2,offset)!=None:#早已撞擊 print("早已撞擊")
之上編碼僅僅實例,可供參考,取名不用和上面相同,合乎命名規(guī)范就可以了
綜上所述,這篇文章留給大家介紹到這里了,希望可以給大家?guī)韼椭?/p>
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/129024.html
此篇文章主要是闡述了Pygame精準檢測圖象撞擊,在使用Pygame寫游戲時,有些人可能遇到2個Rect目標撞擊可是目標中間也有室內(nèi)空間間距問題,這兒,將教給大家用一個方法準確地檢驗圖象撞擊,需用的小伙伴可以借鑒一下?! ≡谑褂肞ygame寫游戲時,有些人可能遇到2個Rect目標撞擊可是目標中間也有室內(nèi)空間間距問題,這兒,將教給大家用一個方法準確地檢驗圖象撞擊。 假定大家主要有兩種圖象(為非...
小編寫此篇文章的目的,主要是給大家來做一個解答,解答關于pygame中Rect對象的相關內(nèi)容知識,下面就給大家做一個比較詳細的解答?! lass pygame.Rect Rect 對象的屬性: Rect表示的區(qū)域必須位于一個Surface對象之上,比如游戲的主窗口(screen)。上述方法由四個關鍵參數(shù)值構(gòu)成,分別是left、top、width、height,為了方便大家理解這些距離的含...
摘要:源碼分享主函數(shù)游戲初始化九歌播放背景音樂游戲主循環(huán)按鍵檢測更新貪吃蛇和食物判斷游戲是否結(jié)束顯示游戲里必要的元素屏幕更新普普通通玩法詳細介紹源碼點小游戲玩法通過加減乘除操作小學生都沒問題的。 大家好,我是辣條。 今天給大家?guī)?0個py小游戲,一定要收藏...
閱讀 1066·2023-01-14 11:38
閱讀 1062·2023-01-14 11:04
閱讀 901·2023-01-14 10:48
閱讀 2377·2023-01-14 10:34
閱讀 1147·2023-01-14 10:24
閱讀 1026·2023-01-14 10:18
閱讀 654·2023-01-14 10:09
閱讀 733·2023-01-14 10:02