Python圖像碰撞檢測怎么做?Python如何實現圖像碰撞檢測

python能夠使用第三方庫pygame開發出各種游戲程序,而在游戲之中,操作是通過各種圖像來完成的,例如五子棋或者是俄羅斯方塊等等 。而這些游戲就是需要去通過圖像碰撞檢測來判斷圖像之間是否有接觸,這樣才可以執行下一步操作 。而下文也是和其相關的內容,一起看看吧 。

Python圖像碰撞檢測怎么做?Python如何實現圖像碰撞檢測


1.python圖像碰撞檢測功能需要使用到第三方庫pygame,它就是能夠創建窗口,并且將各種資源作為組件放在窗口內進行操作 。而圖像在其中也只是一個對象而已,而進行圖像檢測需要先獲取到它們的邊緣,代碼如下所示:
import pygamerect1=surface1.get_rect()rect2=surface2.get_rect()代碼示例之中調用方法的對象已經是讀取到程序內,并且添加到游戲窗口作為組件而存在的了 。
2.之后還是要去使用這兩個圖像對象調用mask方法來返回對應的mask對象,該對象的作用就是得到能夠實際進行坐標判斷,代碼如下所示:
mask1=pygame.mask.from_surface(surface1)mask2=pygame.mask.from_surface(surface2)3.最后就是通過overlap()方法來完成圖像碰撞檢測操作了,該操作實現的原理就是用一個rect對象調用該方法,然后將另外一個同類型圖像對象和坐標作為參數傳遞進去 。如果計算之后返回的結果不為空的話,就是沒有發生碰撞,反之則是圖像已經碰撞了 。
實際過程就是用第一個圖像的坐標去判斷它與第二個圖像坐標是否有重合,有重合就會產生差值從而結果不為空,代碼如下:
offset=abs(rect1.x-rect2.x),abs(rect1.y-rect2.y)if rect1.overlap(rect2,offset)!=None:  print("已經碰撞")【Python圖像碰撞檢測怎么做?Python如何實現圖像碰撞檢測】以上就是關于“Python圖像碰撞檢測怎么做?Python如何實現圖像碰撞檢測”的全部內容了,希望對你有所幫助 。

    猜你喜歡