2016-02-11 31 views
1

我正在處理一些動畫視圖的碰撞檢測,我正在爲一些alpha圖像視圖設置動畫。即使當第二個對象位於ImageView的透明部分上時,碰撞檢測也會觸發,但它看起來沒有觸及它,但ImageView容器是超出圖像邊界的矩形框。如何使Android視圖的形狀不是矩形

如何檢測它何時觸及圖像的繪製部分或使容器變成三角形?

這裏的IM如何檢測兩種觀點之間的碰撞:

public boolean checkCollision(View v1, View v2) { 
    if (v1 == null || v2 == null) { 
     log.e("Views must not be null"); 
     throw new IllegalArgumentException("Views mut be not null"); 
    } 
    Rect R1 = new Rect(); 
    v1.getHitRect(R1); 
    Rect R2 = new Rect(); 
    v2.getHitRect(R2); 
    return Rect.intersects(R1, R2); 
} 
+1

爲什麼你需要這種碰撞檢測?如果這是關於遊戲邏輯或類似的,還有其他更合適的方法來實現這一點,例如OpenGL或遊戲框架。 – marktani

+1

@mcwise是的是關於一個基本的遊戲,但唯一的約束是沒有任何框架,使其儘可能輕量級。你知道任何第三方庫可以幫助我實現嗎? –

回答

0

我建議做是做的邊框初步覈實,只是爲了看看,如果你需要進行更準確的檢查。如果只有少量物體發生碰撞,則此步驟是可選的,但如果您擁有很多物體,則會節省大量性能。 如果您確實需要進行進一步檢查,請在圖像上標出確實存在堅實紋理的圖像,然後檢查與這些點的碰撞。如果你願意的話,我可以試着讓你得到一些代碼,但是請查看這個問題來深入解釋事情。 https://gamedev.stackexchange.com/questions/30866/collision-detection-with-non-rectangular-images

相關問題