Ejemplo n.º 1
0
        void frame_KeyPressDown(Element sender, KeyEventArgs e)
        {
            switch (e.InterestingKeys[0])
            {
            case Keys.F:
                factive = !factive;

                if (factive)
                {
                    foreach (var ball in PE.ActiveBodies)
                    {
                        if (rand.Next(5) == 0)
                        {
                            PE.AddBoundForceField(new BoundForceField(ball, 20, DefaultForces.StrongAttractor));
                            //PE.AddBoundForceField(new BoundForceField(ball, 20, DefaultForces.WeakAttractor));
                        }
                        if (rand.Next(50) == 0)
                        {
                            //PE.AddBoundForceField(new BoundForceField(ball, 100, DefaultForces.StrongAttractor));
                            //PE.AddBoundForceField(new BoundForceField(ball, 20, DefaultForces.WeakAttractor));
                        }
                    }
                }
                else
                {
                    PE.bffields.Clear();
                }
                break;

            case Keys.L:
                var c0 = new CircleBody(30, 300, new Vector2((new System.Random()).Next(0, (int)winSize.Width - 60), winSize.Height));
                c0.Velocity = -1000 * Vector2.UnitY;
                PE.ActiveBodies.Add(c0);
                break;


            case Keys.D:
                dactive = !dactive;
                if (dactive)
                {
                    PE.AddUniversalForce(DefaultForces.LinearDrag);
                }
                else
                {
                    PE.RemoveUniversalForce(DefaultForces.LinearDrag);
                }
                break;

            case Keys.G:
                gactive = !gactive;
                if (gactive)
                {
                    PE.AddUniversalForce(DefaultForces.Gravity);
                }
                else
                {
                    PE.RemoveUniversalForce(DefaultForces.Gravity);
                }
                break;

            default:
                break;
            }

            printStat();
        }