private void OnBulletCollision(SKPhysicsContact contact) { if (IsBulletContact(contact)) { SKPhysicsBody bulletBody; SKPhysicsBody otherBody; if (contact.BodyA.CategoryBitMask == (uint)GameObjects.playerBullet || contact.BodyA.CategoryBitMask == (uint)GameObjects.enemyBullet) { bulletBody = contact.BodyA; otherBody = contact.BodyB; } else { bulletBody = contact.BodyB; otherBody = contact.BodyA; } var bulletObject = BulletsInScene.Find( (obj) => obj.ID.ToString() == bulletBody.Node.Name); var otherObject = SceneGameUnits.Find( (obj) => obj.ID.ToString() == otherBody.Node.Name); if (otherObject != null && bulletObject != null) { otherObject.GetDamage(bulletObject.DMG); DestroyBullet(bulletObject); } } }
private void DestroyBullet(Bullet bullet) { bullet.Node.RemoveFromParent(); BulletsInScene.Remove(bullet); }