0
我正在嘗試自定義碰撞器類,您可以在其中將兩個對象傳遞給方法,並且如果兩者中的任何一個發生碰撞,請執行某種操作。對象而不是實例的碰撞測試
例如,我想提出一個射擊遊戲,和我想要做的是說:
- 如果任何
Ship
碰撞與任何子彈Bullet
- 毀壞兩個受影響
Ship
和影響Bullet
- 毀壞兩個受影響
- 否則
- 什麼都不做
我想要做的就是一次寫這個,而不是每顆子彈和/或船舶。所以,我想這樣做是這樣的:
ColliderEvent collide = new ColliderEvent();
collide.hit(Ship, Bullet, new Runnable(){
@Override
public void run(){
// Destroy bullet and ship here
}
});
然後在我的主要遊戲線程,我會做一些事情,將測試如果某種hit
方法進行了規定,兩個物體碰撞在某些時候,和如果是的話執行第三個參數傳遞到hit
所以,有沒有辦法做到這一點,而不通過船舶/項目符號的實例hit
方法?
假設一艘船比一顆子彈大,你可以創建一個「位置」對象,讓一艘船返回一個「Set」方法並檢查一個子彈的位置是否包含在船的位置集中?這當然意味着'Position'正確地實現了'equals()'和'hashCode()'... –
fge
我同意..如果你想,你可以爲所有對象創建一個onCollision()函數並實現它在一個超類。 – Joel
我覺得你只是想爲每個船舶/子彈組合執行這種方法。兩個嵌套循環將完成此操作。 –