Beispiel #1
0
        public void SpawnBirbs(Vector3 position)
        {
            var numBirbs = FlatRedBallServices.Random.Next(MinBirbs, MaxBirbs);

            for (int i = 0; i < numBirbs; i++)
            {
                var birb = MenuBirbFactory.CreateNew(this.LayerProvidedByContainer);
                MenuBirbList.Add(birb);
                birb.SetRandomAnimationFrame();

                //Position
                birb.Position = position;

                //Initial Velocity
                var     randDeg     = FlatRedBallServices.Random.Between(-MaxFlyVariationDeg, MaxFlyVariationDeg);
                var     newAngleDeg = DefaultFlyAngleDeg + randDeg;
                var     newAngleRad = newAngleDeg * (Math.PI / 180);
                Vector3 birdVector  = new Vector3((float)Math.Cos(newAngleRad), (float)Math.Sin(newAngleRad), Z) * MaxSpeed;
                birb.Velocity = birdVector;

                //X velocity to fly off screen.
                var sign = FlatRedBallServices.Random.Next(0, 2) * 2 - 1;
                birb.XAcceleration = BirbXAccel * sign;

                birb.Drag = FlatRedBallServices.Random.Between(MinBirbDrag, MaxBirbDrag);
            }
        }
Beispiel #2
0
 private void ManageBirbs()
 {
     for (int i = MenuBirbList.Count - 1; i > -1; i--)
     {
         var birb = MenuBirbList[i];
         if (birb.X < Camera.Main.AbsoluteLeftXEdgeAt(birb.Z) || birb.X > Camera.Main.AbsoluteRightXEdgeAt(birb.Z))
         {
             birb.Destroy();
             MenuBirbList.Remove(birb);
         }
     }
 }