Ejemplo n.º 1
0
 public void Run()
 {
     Vec v = new Vec(1.0,1.0);
     Console.WriteLine("v={0}", v);
     v = v.Scale(5.0).Add(new Vec(3.0,-2.0));
     Console.WriteLine("v={0}", v);
 }
Ejemplo n.º 2
0
 void OnMouseUp(object sender, MouseEventArgs a)
 {
     if (a.Button == MouseButtons.Left && !mouseDownLocation.IsEmpty)
     {
         U.show("OnMouseUp");
         var s = new Sprite(images[curimage], 0.0F);
         s.Position = new Vec(mouseDownLocation);
         Vec spd      = new Vec(a.Location).Subtract(s.Position).Scale(0.4);
         var speedlen = spd.Length;
         if (speedlen > U.maxspeed)
         {
             spd = spd.Scale(U.maxspeed / speedlen);
         }
         else if (speedlen < U.minspeed)
         {
             // make random speed
             double alpha = Math.PI * 2.0 * random.NextDouble();
             speedlen = (random.NextDouble() * (U.maxspeed - U.minspeed) + U.minspeed);
             spd      = Vec.Dir(alpha).Scale(speedlen);
         }
         s.Speed    = spd;
         s.Rotation = (float)(random.NextDouble() - 0.5) * 10.0F;
         sprites.Add(s);
         mouseDownLocation = new Point();
         mouseLastLocation = mouseDownLocation;
     }
     else if (a.Button == MouseButtons.Right)
     {
         curimage += 1;
         if (curimage >= images.Count)
         {
             curimage = 0;
         }
         prototype = new Sprite(images[curimage], 0.0F);
     }
 }
Ejemplo n.º 3
0
 void OnMouseUp(object sender, MouseEventArgs a)
 {
     if (a.Button == MouseButtons.Left && !mouseDownLocation.IsEmpty) {
         U.show("OnMouseUp");
         var s = new Sprite(images[curimage], 0.0F);
         s.Position = new Vec(mouseDownLocation);
         Vec spd = new Vec(a.Location).Subtract(s.Position).Scale(0.4);
         var speedlen = spd.Length;
         if (speedlen > U.maxspeed) {
             spd = spd.Scale(U.maxspeed/speedlen);
         } else if (speedlen < U.minspeed) {
             // make random speed
             double alpha = Math.PI * 2.0 * random.NextDouble();
             speedlen = (random.NextDouble() * (U.maxspeed-U.minspeed) + U.minspeed);
             spd = Vec.Dir(alpha).Scale(speedlen);
         }
         s.Speed = spd;
         s.Rotation = (float)(random.NextDouble() - 0.5) * 10.0F;
         sprites.Add(s);
         mouseDownLocation = new Point();
         mouseLastLocation = mouseDownLocation;
     } else if (a.Button == MouseButtons.Right) {
         curimage += 1;
         if (curimage >= images.Count) {
             curimage = 0;
         }
         prototype = new Sprite(images[curimage], 0.0F);
     }
 }
Ejemplo n.º 4
0
 // return a tangental projection
 public Vec Project(Vec v)
 {
     return(v.Scale(this.Scalar(v) / v.Length2));
 }
Ejemplo n.º 5
0
 // return a tangental projection
 public Vec Project(Vec v)
 {
     return v.Scale(this.Scalar(v)/v.Length2);
 }
Ejemplo n.º 6
0
 public void SetEndTime(double t)
 {
     time1     = t;
     pos1      = pos0.Add(speed.Scale(DeltaTime));
     collision = null;             // since we have limited the rib
 }
Ejemplo n.º 7
0
 private void setSpeed(Vec spd)
 {
     speed     = spd;
     pos1      = pos0.Add(speed.Scale(DeltaTime));
     collision = null;
 }