我正在開發一個小型的Android遊戲。在開始使用AndEngine之前,我使用了Canvas對象並在其上繪製所有內容。爲了測試兩個位圖是否相互碰撞,我檢查了它們的邊界框是否重疊。在這種情況下,我檢查了兩個位圖的重疊矩形是否有共同的一個非透明像素。 這種方法完美地工作,我能夠檢測像素完美的碰撞。AndEngine:兩個精靈的碰撞
由於一些性能問題,我開始使用AndEngine。碰撞檢測工作安靜,但兩個精靈的碰撞測試明確劑量工作像素完美。碰撞測試僅僅是一個邊界框測試。
我正在開發一個小型的Android遊戲。在開始使用AndEngine之前,我使用了Canvas對象並在其上繪製所有內容。爲了測試兩個位圖是否相互碰撞,我檢查了它們的邊界框是否重疊。在這種情況下,我檢查了兩個位圖的重疊矩形是否有共同的一個非透明像素。 這種方法完美地工作,我能夠檢測像素完美的碰撞。AndEngine:兩個精靈的碰撞
由於一些性能問題,我開始使用AndEngine。碰撞檢測工作安靜,但兩個精靈的碰撞測試明確劑量工作像素完美。碰撞測試僅僅是一個邊界框測試。
這裏是像素完善的檢測一個很好的例子,
下面兩個動畫精靈的碰撞代碼很適合我在andEngine不使用pixelPerfect類。它可能對你有幫助。
public boolean isCollides(AnimatedSprite animSprite1 ,AnimatedSprite animSprite2) throws Exception{
float diffX = Math.abs((animSprite1.getX() + animSprite1.getWidth()/2)-
(animSprite2.getX() + animSprite2.getWidth()/2));
float diffY = Math.abs((animSprite1.getY() + animSprite1.getHeight()/2)-
(animSprite2.getY() + animSprite2.getHeight()/2));
if(diffX < (animSprite1.getWidth()/2 + animSprite2.getWidth()/3)
&& diffY < (animSprite1.getHeight()/2 + animSprite2.getHeight()/3)){
return true;
}else
return false;
}
這些庫被使用舊版本的And Engine –