public MarioNightmareEnemyCollisionResponse(IMario m, INightmareEnemy n, List <IZombie> zombies, CollisionSide c, Game1 g) { timer--; // = g.TargetElapsedTime.TotalSeconds; delayTimer = timer + 2; if (c == CollisionSide.Top) { if (!g.nightmareThemeIsStarted) { MediaPlayer.Play(g.nightmareTheme); g.nightmareThemeIsStarted = true; } m.Bounce(); n.Die(); if (timer == 0) { locale.X = n.Location.X; locale.Y = n.Location.Y + n.Texture.Height; SoundEffectFactory.Instance.CreateNightmareZombieSpawnSound().PlaySound(); zombies.Add(ZombieFactory.Instance.CreateZombie(locale)); timer = 1; n.Die(); } } else { m.Die(); } }
public NightmareEnemyItemCollisionResponse(INightmareEnemy n, IItems i, CollisionSide c, Game1 g) { Rectangle intersection = Rectangle.Intersect(n.Position, i.Position); switch (c) { case CollisionSide.Top: n.BounceY(-intersection.Height); if (!n.IsKilled) { n.Land(); } break; case CollisionSide.Left: n.TurnRight(); n.BounceX(intersection.Width); break; case CollisionSide.Right: n.BounceX(-intersection.Width); n.TurnLeft(); break; case CollisionSide.None: n.Fall(); break; } }
public ZombieNightmareEnemyCollisionResponse(IZombie z, INightmareEnemy n, List <IZombie> zombieList, CollisionSide c) { timer--; // = g.TargetElapsedTime.TotalSeconds; delayTimer = timer + 2; locale = n.Location; if (c != CollisionSide.None) { if (n is NightmareGoombaEnemy) { locale.Y = n.Location.Y + n.Texture.Height; n.Die(); if (timer == 0) { SoundEffectFactory.Instance.CreateNightmareZombieSpawnSound().PlaySound(); zombieList.Add(ZombieFactory.Instance.CreateZombie(locale)); timer = 1; } } else { if (timer == 0) { n.Die(); SoundEffectFactory.Instance.CreateNightmareZombieSpawnSound().PlaySound(); zombieList.Add(ZombieFactory.Instance.CreateZombie(locale)); timer = 1; } } } }
public MarioNightmareEnemyCollisionDetector(Game1 g, INightmareEnemy n) { Rectangle mario = g.Character.Position; Rectangle nm = n.Position; CollisionSide type = CollisionDetector.Detect(mario, nm); if (type != CollisionSide.None) { new MarioNighmareEnemyCollisionResponsecs(g.Character, n, type, g); } }
public NightmareEnemyEnemyCollisionResponse(INightmareEnemy e1, INightmareEnemy e2, CollisionSide type) { Rectangle intersect = Rectangle.Intersect(e1.Position, e2.Position); if (type == CollisionSide.Left) { e1.BounceX(intersect.Width); e2.BounceX(-intersect.Width); e1.Turn(); e2.Turn(); } else if (type == CollisionSide.Right) { e1.BounceX(-intersect.Width); e2.BounceX(intersect.Width); e1.Turn(); e2.Turn(); } }
public NightmareEnemyNECollisionResponse(INightmareEnemy n1, INightmareEnemy n2, CollisionSide type, Game1 g) { Rectangle intersect = Rectangle.Intersect(n1.Position, n2.Position); if (type == CollisionSide.Left) { n1.BounceX(intersect.Width); n2.BounceX(-intersect.Width); n1.Turn(); n2.Turn(); } else if (type == CollisionSide.Right) { n1.BounceX(-intersect.Width); n2.BounceX(intersect.Width); n1.Turn(); n2.Turn(); } }
public static List <INightmareEnemy> LoadEnemy() { List <INightmareEnemy> nightmareEnemyList = new List <INightmareEnemy>(); List <String[]> loading = LevelLoader.ReturnLevel(); int x = 0, y = 0; foreach (String[] row in loading) { foreach (String column in row) { INightmareEnemy enemy = null; switch (column) { case "nGoomba": currPosition = new Vector2(x * ItemFactory.Instance.brickBlock.Width, (y + 1) * ItemFactory.Instance.brickBlock.Height - EnemyFactory.Instance.goomba.Height); enemy = NightmareEnemyFactory.Instance.CreateNightmareGoomba(currPosition); break; case "nTurtle": currPosition = new Vector2(x * ItemFactory.Instance.brickBlock.Width, (y + 1) * ItemFactory.Instance.brickBlock.Height - NightmareEnemyFactory.Instance.nightmareKoopa.Height); Console.WriteLine((y + 1) * ItemFactory.Instance.brickBlock.Height - NightmareEnemyFactory.Instance.nightmareKoopa.Height); enemy = NightmareEnemyFactory.Instance.CreateNightmareTurtle(currPosition); break; default: break; } if (enemy != null) { nightmareEnemyList.Add(enemy); } x++; } x = 0; y++; } return(nightmareEnemyList); }
private void MarioNightmareEnemyCollision() { for (int i = 0; i < nightmareEnemyList.Count; i++) { INightmareEnemy e = nightmareEnemyList[i]; if (!e.IsKilled) { Rectangle mario = g.Character.Position; Rectangle enemy = e.Position; CollisionSide type = CollisionDetector.Detect(mario, enemy); if (type != CollisionSide.None) { new MarioNightmareEnemyCollisionResponse(g.Character, e, nightmareZombie, type, g); } } } }
private void ZombieEnemyCollisionDetect() { for (int i = 0; i < zombies.Count; i++) { IZombie zombie = zombies[i]; Rectangle z = zombie.Position; for (int j = 0; j < nightmareEnemyList.Count; j++) { INightmareEnemy ne = nightmareEnemyList[j]; Rectangle n = ne.Position; CollisionSide cs = CollisionDetector.Detect(z, n); if (cs != CollisionSide.None) { new ZombieNightmareEnemyCollisionResponse(zombie, ne, zombies, cs); } } } }
private void EnemyEnemyCollision() { for (int i = 0; i < enemies.Count - 1; i++) { INightmareEnemy e1 = enemies[i]; if (!e1.IsKilled) { Rectangle enemy1 = e1.Position; for (int j = i; j < enemies.Count; j++) { INightmareEnemy e2 = enemies[j]; if (!e2.IsKilled) { Rectangle enemy2 = e2.Position; CollisionSide type = CollisionDetector.Detect(enemy1, enemy2); if (type != CollisionSide.None) { new NightmareEnemyEnemyCollisionResponse(e1, e2, type); } } } } } }