簡單介紹Pygame 精準檢測影像碰撞的問題
導讀 | 這篇文章主要介紹了Pygame 精準檢測影像碰撞,在用Pygame寫遊戲的時候,有人可能會遇到兩個Rect物件碰撞但是物件之間還有空間間隔的問題,這裡,將教大家用一種方法精準地檢測影像碰撞,需要的朋友可以參考下 |
在用Pygame寫遊戲的時候,有人可能會遇到兩個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是一個Mask物件
other是另外一個Mask物件
offset是一個元組,元組中分別為兩個rect的x座標插值和y座標插值
返回值有兩種,如果是一個元組就說明已經碰撞,如果為None就說明沒有碰撞
程式碼如下:
offset=abs(rect1.x-rect2.x),abs(rect1.y-rect2.y) if rect1.overlap(rect2,offset)!=None: # 已經碰撞 print("已經碰撞")
以上程式碼只是示例,可供參考,命名不需要和上方一致,符合命名規範就行。
到此這篇關於Pygame 精準檢測影像碰撞的文章就介紹到這了。
原文來自:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2905066/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 精準檢測Linux核心漏洞介紹Linux
- python如何檢測pygame中的碰撞PythonGAM
- 精準化測試原理簡介
- 精準測試最為簡單的問題之一:資料與邏輯
- 簡單介紹標準庫fmt的基本使用
- 碰撞檢測
- 簡單介紹最新python 字串陣列互轉問題Python字串陣列
- 簡單介紹Windows中將Nginx新增為服務的問題WindowsNginx
- Webpack 的簡單介紹Web
- AOP的簡單介紹
- 簡單介紹redis分散式鎖解決表單重複提交的問題Redis分散式
- 簡單介紹Lombok使用@Tolerate實現衝突相容問題Lombok
- 簡單介紹Nginx tp3.2.3 404問題解決方案Nginx
- Pygame的簡單總結GAM
- form表單的簡單介紹ORM
- Flownet 介紹 及光流的簡單介紹
- 解決Pygame精靈會跳但不會走的問題GAM
- RPC簡單介紹RPC
- Python簡單介紹Python
- KVM簡單介紹
- RMI簡單介紹
- HTML簡單介紹HTML
- HTML 簡單介紹HTML
- JavaScript 簡單介紹JavaScript
- CSS 簡單介紹CSS
- ajax簡單介紹
- SVG簡單介紹SVG
- Clickjacking簡單介紹
- 【Pandas】簡單介紹
- Map簡單介紹
- JSON簡單介紹JSON
- ActiveMQ簡單介紹MQ
- 函子的簡單介紹
- 簡單介紹使用Nginx限制百度蜘蛛頻繁抓取的問題Nginx
- 【基準測試】BenchmarkDotNet介紹
- Git_簡單介紹Git
- jQuery Validate簡單介紹jQuery
- JSON物件簡單介紹JSON物件