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); } } }
public void SpawnEnemy() { Enemy enemy = null; if (PlayerScore <= 50) { enemy = new Lvl1Enemy(this); } else if (PlayerScore <= 100) { enemy = new Lvl2Enemy(this); } else if (PlayerScore <= 150) { enemy = new Lvl3Enemy(this); } else if (PlayerScore <= 200) { enemy = new Lvl4Enemy(this); } else { boss = new Boss(this); enemy = boss; SceneUpdateDelegate += boss.OnSceneUpdate; } if (enemy != null) { enemy.Spawn(); SceneGameUnits.Add(enemy); } }
public void SpawnPlayer() { SpawnEnemy(); GenerateBonusDelay(); lastTime = new TimeSpan(DateTime.Now.Ticks).TotalMilliseconds; bonusTimer = new TimeSpan(DateTime.Now.Ticks).TotalMilliseconds; Player = new Player(this, "playerStartSprite.png"); SceneGameUnits.Add(Player); Hud.UpdateHudData(); }
private void OnEnemyCollision(SKPhysicsContact contact) { bool isPlayerAndEnemyContact = (contact.BodyA.CategoryBitMask == (uint)GameObjects.player && contact.BodyB.CategoryBitMask == (uint)GameObjects.enemy) || (contact.BodyB.CategoryBitMask == (uint)GameObjects.player && contact.BodyA.CategoryBitMask == (uint)GameObjects.enemy); if (isPlayerAndEnemyContact) { SKPhysicsBody EnemyBody; SKPhysicsBody PlayerBody; if (contact.BodyA.CategoryBitMask == (uint)GameObjects.enemy || contact.BodyA.CategoryBitMask == (uint)GameObjects.enemy) { EnemyBody = contact.BodyA; PlayerBody = contact.BodyB; } else { EnemyBody = contact.BodyB; PlayerBody = contact.BodyA; } var enemyObject = SceneGameUnits.Find( (obj) => obj.ID.ToString() == EnemyBody.Node.Name); if (enemyObject != null) { enemyObject.GetDamage(100); Player.GetDamage(10); } else if (EnemyBody.Node == boss.Node) { boss.GetDamage(50); Player.GetDamage(100); } } }
private void DeleteUnit(GameUnit unit) { SceneGameUnits.Remove(unit); unit.Node.RemoveFromParent(); }