Пример #1
0
 private static IEnumerator<bool> LazyHoming(UserSprite par, Bullet b, double startAngle, double startSpeed, int delay, UserSprite target, double homingSpeed)
 {
     for (int i = 0; i < delay; i++)
     {
         b.X += Math.Cos(startAngle) * startSpeed;
         b.Y += Math.Sin(startAngle) * startSpeed;
         yield return true;
     }
     var ha = Math.Atan2(target.Y - b.Y, target.X - b.X);
     while (true)
     {
         b.X += Math.Cos(ha) * homingSpeed;
         b.Y += Math.Sin(ha) * homingSpeed;
         yield return true;
     }
 }
Пример #2
0
 private static IEnumerator<bool> LinearCurve(UserSprite par, Bullet b, double angle, double curve, double speed, int time)
 {
     for (int i = 0; i < time; i++)
     {
         angle += curve;
         b.X += Math.Cos(angle) * speed;
         b.Y += Math.Sin(angle) * speed;
         yield return true;
     }
     b.IsDead = true;
     yield break;
 }