public void GeneratePowerUpTest() { // GameItem-Liste initialisieren GameItem.GameItemList = new System.Collections.Generic.LinkedList <IGameItem>(); // Speedboost PowerUp in die Liste eintragen int frequency = 1000; CreatePowerUp create = delegate(Vector2 pos, Vector2 vel) { new Speedboost(pos, vel); }; PowerUpGenerator.AddAvailablePowerUp(PowerUpEnum.Speedboost, frequency, create); // Passende Parameter initialisieren PowerUpEnum type = PowerUpEnum.Speedboost; Vector2 position = Vector2.Zero; PowerUpGenerator.GeneratePowerUp(type, position); // Überprüfen, ob tatsächlich das gewünschte PowerUp erstellt wurde Assert.AreEqual(GameItem.GameItemList.Count, 1); Assert.AreEqual(GameItem.GameItemList.First.Value is Speedboost, true); // GameItem-Liste zurücksetzen GameItem.GameItemList = null; }
/// <summary> /// Fügt ein PowerUp der Liste hinzu /// </summary> /// <remarks> /// Wenn ein PowerUp nicht zufällig erzeut werden soll, dann muss <c>frequency</c> = 0 gesetzt werden. /// Außerdem sollte jede Art von PowerUp nur einmal in der Liste vorkommen. /// </remarks> /// <param name="type">Typ des PowerUps</param> /// <param name="frequency">Häufigkeit des PowerUps, ein absoluter Wert, der in Relation zu anderen PowerUps gesetz sein muss. Standardwert zur Orientierung: 1000</param> /// <param name="create">Delegate, dass ein neues PowerUp dieser Art erzeugt</param> public static void AddAvailablePowerUp(PowerUpEnum type, int frequency, CreatePowerUp create) { // Füge das PowerUp der Liste hinzu availablePowerUps.Add(new AvailablePowerUp(type, frequency, create)); // Berechnne die Summe aller PowerUps neu int sum = 0; foreach (AvailablePowerUp powerUp in availablePowerUps) { sum += powerUp.Frequency; } frequencySum = sum; }
/// <summary> /// Konstruktor /// </summary> /// <param name="type">Typ des PowerUps</param> /// <param name="frequency">Häufigkeit des PowerUps</param> /// <param name="create">Delegate, mit dem ein neues PowerUp der angegeben Art erzeugt werden kann</param> public AvailablePowerUp(PowerUpEnum type, int frequency, CreatePowerUp create) { this.Type = type; this.Frequency = frequency; this.Create = create; }