私のゲームでは、すべてのゲームオブジェクトがEntityクラスを継承します。すべての敵オブジェクトには敵を拡張する独自のクラスがあります。敵はエンティティを拡張します。 つまり、 エンティティ - >敵 - >シャークエネミー。特定のクラスを拡張するリスト内のオブジェクトを見つける
ここで、特定のクラスとの衝突をテストする機能が必要です。 例えば、弾丸クラスを持っている場合、Enemyを拡張するエンティティとの衝突をテストするだけです。
私の周りGoogleで検索してきた、これは私が持っているものです。
public <T> Entity collide(Entity a, Class<T> desiredClass)
{
for (Entity b : entities)
if (b.getClass() == desiredClass && collide(a, b))
return b;
return null;
}
私が欲しいものの一種であることが、私はそれがdesiredClassを拡張するかどうかを知る必要があり、クラスがdesiredClassは等しいない場合。代わりに、クラスの平等をチェックする
if (b instanceof desiredType)
感謝を!これは完全に機能しました。 –