Esempio n. 1
0
 private void RandomEntityV(Entity entity)
 {
     float v = Helper.RandomFloat(this.minV, this.maxV);
     float a = Helper.RandomFloat(0, 2 * (float)Math.PI);
     entity.SetV(v, a);
 }
Esempio n. 2
0
 private void CatchEvent(Entity entity, Entity entityNext, ref bool isRun)
 {
     if (entityNext.State == State.Run && entity.Id != this.mainEntityId)
     {
         float d = Helper.ExtDistance(entity, entityNext);
         if (entity.Near == null)
         {
             entity.Near = entityNext;
             isRun = false;
         }
         else
         {
             float dn = Helper.ExtDistance(entity, entity.Near);
             if (d < dn)
             {
                 entity.Near = entityNext;
                 isRun = false;
             }
         }
         if (entity.Near != null)
         {
             float v = entity.V;
             if (v == 0)
             {
                 v = Helper.RandomFloat(this.minV, this.maxV);
             }
             float a = (float)Math.Atan2(entity.Near.Y - entity.Y, entity.Near.X - entity.X) - entity.A;
             a = Math.Min(a, 0.1f);
             a = Math.Max(a, -0.1f);
             entity.SetV(v, entity.A + a);
             this.AfterEvent(entity);
         }
     }
 }