簡單介紹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
- 簡單前端——圓與圓碰撞檢測前端
- 精準化測試原理簡介
- 精準測試最為簡單的問題之一:資料與邏輯
- NodeJS require路徑問題簡單介紹NodeJSUI
- 簡單介紹標準庫fmt的基本使用
- 碰撞檢測
- javascript for in語句瀏覽器相容問題簡單介紹JavaScript瀏覽器
- getBoundingClientRect()瀏覽器相容問題簡單介紹GCclient瀏覽器
- 簡單介紹Windows中將Nginx新增為服務的問題WindowsNginx
- Webpack 的簡單介紹Web
- Promise的簡單介紹Promise
- CFRunloopObserverRef 的簡單介紹OOPServer
- Pygame的簡單總結GAM
- 簡單介紹redis分散式鎖解決表單重複提交的問題Redis分散式
- 簡單介紹Nginx tp3.2.3 404問題解決方案Nginx
- 簡單介紹Lombok使用@Tolerate實現衝突相容問題Lombok
- 簡單介紹最新python 字串陣列互轉問題Python字串陣列
- 解決Pygame精靈會跳但不會走的問題GAM
- SVG簡單介紹SVG
- HTML簡單介紹HTML
- ActiveMQ簡單介紹MQ
- HTML 簡單介紹HTML
- JavaScript 簡單介紹JavaScript
- CSS 簡單介紹CSS
- SCSS 簡單介紹CSS
- UICollectionView 簡單介紹UIView
- css簡單介紹CSS
- SpringMvc的簡單介紹SpringMVC
- javascript的this用法簡單介紹JavaScript
- noscript的作用簡單介紹
- Redux的簡單概念介紹Redux
- ORACLE SEQUENCE的簡單介紹Oracle
- 基因檢測精確查明病情、精準診治疾病
- 簡單介紹使用Nginx限制百度蜘蛛頻繁抓取的問題Nginx
- 簡單介紹C#獲取攝像頭拍照顯示影像的方法C#
- javascript訪問物件屬性方式簡單介紹JavaScript物件