/// <summary> /// Statischer Konstruktor, der das PowerUp beim <c>PowerUpGenerator</c> registriert. /// </summary> static SlowMotion() { PowerUpGenerator.AddAvailablePowerUp(PowerUpEnum.SlowMotion, GameItemConstants.SlowMotionFrequency, delegate(Vector2 pos, Vector2 vel) { new SlowMotion(pos, vel); }); }
/// <summary> /// Statischer Konstruktor, der das PowerUp beim <c>PowerUpGenerator</c> registriert. /// </summary> static Deflector() { PowerUpGenerator.AddAvailablePowerUp(PowerUpEnum.Deflector, GameItemConstants.DeflectorFrequency, delegate(Vector2 pos, Vector2 vel) { new Deflector(pos, vel); }); }
/// <summary> /// Statischer Konstruktor, der das PowerUp beim <c>PowerUpGenerator</c> registriert. /// </summary> static Rapidfire() { PowerUpGenerator.AddAvailablePowerUp(PowerUpEnum.Rapidfire, GameItemConstants.RapidfireFrequency, delegate(Vector2 pos, Vector2 vel) { new Rapidfire(pos, vel); }); }
/// <summary> /// Statischer Konstruktor, der das PowerUp beim <c>PowerUpGenerator</c> registriert. /// </summary> static Speedboost() { PowerUpGenerator.AddAvailablePowerUp(PowerUpEnum.Speedboost, GameItemConstants.SpeedboostFrequency, delegate(Vector2 pos, Vector2 vel) { new Speedboost(pos, vel); }); }
/// <summary> /// Statischer Konstruktor, der das PowerUp beim <c>PowerUpGenerator</c> registriert. /// </summary> static MultiShot() { PowerUpGenerator.AddAvailablePowerUp(PowerUpEnum.MultiShot, GameItemConstants.MultiShotFrequency, delegate(Vector2 pos, Vector2 vel) { new MultiShot(pos, vel); }); }
/// <summary> /// Diese Methode wird bei einer Kollision mit einem anderen Objekt aufgerufen. /// Innerhalb der Methode wird der Schaden am übergebenen Objekt berechnet, /// oder PowerUps angewendet. Außerdem wird das <c>Hit</c>-Event ausgelöst. /// </summary> /// <remarks> /// Bei der Kollisionsprüfung wird nur verhindert, dass zwei gleichartige Objekte kollidieren. /// Deshalb muss in dieser Methode geprüft werden, ob eine Kollision mit dem übergebenen Objekt überhaupt sinnvoll ist. /// </remarks> /// <param name="collisionPartner">Das GameItem mit dem die Kollision stattfand.</param> public override void IsCollidedWith(IGameItem collisionPartner) { // Aliens können mit dem Spieler, Spielerprojektilen und Schilden kollidieren if (!(collisionPartner is Player) && !(collisionPartner is Projectile) && !(collisionPartner is Shield)) { return; } if (collisionPartner is Projectile) { Projectile projectile = (Projectile)collisionPartner; if (!(projectile.ProjectileType == ProjectileTypeEnum.PlayerNormalProjectile) && !(projectile.ProjectileType == ProjectileTypeEnum.PiercingProjectile)) { return; } } // Wenn der Programmfluss hier ankommt, gibt es eine Kollision. if (Alien.Hit != null) { Alien.Hit(this, EventArgs.Empty); } Hitpoints -= collisionPartner.Damage; if (Hitpoints <= 0) { if (Alien.ScoreGained != null) { Alien.ScoreGained(this, EventArgs.Empty); } PowerUpGenerator.GeneratePowerUp(PowerUpEnum.Random, Position); } }