Exemplo n.º 1
0
        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);
                }
            }
        }
Exemplo n.º 2
0
 private void DestroyBullet(Bullet bullet)
 {
     bullet.Node.RemoveFromParent();
     BulletsInScene.Remove(bullet);
 }