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;
        }
Exemple #2
0
        /// <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;
        }
Exemple #3
0
 /// <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;
 }