public HalfPadState(ControlSide side, PlayerIndex controllerIndex)
        {
            GamePadState gamePadState = GamePad.GetState(controllerIndex);
            if (side == ControlSide.left)
            {
                stick1 = new Stick(gamePadState.ThumbSticks.Left);
                stick2 = new Stick(gamePadState.DPad.Up,
                                   gamePadState.DPad.Down,
                                   gamePadState.DPad.Left,
                                   gamePadState.DPad.Right);

                Btn1 = gamePadState.Buttons.LeftShoulder;
                Btn2 = (gamePadState.Triggers.Left < Controller.deadZone) ? ButtonState.Released : ButtonState.Pressed; //TODO: test
                Btn2AsTrigger = gamePadState.Triggers.Left;
                Btn3 = gamePadState.Buttons.LeftStick;

                BtnStart = gamePadState.Buttons.Back;
            }
            else //if (side == ControlSide.right)
            {
                stick1 = new Stick(gamePadState.ThumbSticks.Right);
                stick2 = new Stick(gamePadState.Buttons.Y,
                                   gamePadState.Buttons.A,
                                   gamePadState.Buttons.X,
                                   gamePadState.Buttons.B);

                Btn1 = gamePadState.Buttons.RightShoulder;
                Btn2 = (gamePadState.Triggers.Right < Controller.deadZone) ? ButtonState.Released : ButtonState.Pressed; //TODO: test
                Btn2AsTrigger = gamePadState.Triggers.Right;
                Btn3 = gamePadState.Buttons.RightStick;

                BtnStart = gamePadState.Buttons.Start;
            }
        }
Ejemplo n.º 2
0
        public bool reassign()
        {
            for (int j = 0; j < maxControllers * 2; j++)
            {
                Console.WriteLine("j = " + j);
                int i = (j * 2) % ((maxControllers * 2 - 1) + j / (maxControllers * 2 - 1)); //magic
                if (i >= connectedControllers() * 2)
                {
                    if (j < maxControllers)
                    {
                        j = maxControllers - 1;
                        continue;
                    }
                    else
                    {
                        Console.WriteLine("Insufficient controllers! Player " + playerNum + " will not work!");
                        enabled = false;

                        return(false);
                    }
                }

                if ((1 << i).isAvailable())
                {
                    controllerIndex = intToPlayerIndex[(i / 2) + 1];
                    if ((i % 2) == 0)
                    {
                        side = ControlSide.left;
                    }
                    else
                    {
                        side = ControlSide.right;
                        fullControllerAvailable = false;
                        halfControllers.First(x => x.controllerCode == (ControllerCodes)((int)controllerCode >> 1))
                        .fullControllerAvailable = false;
                    }
                    assign((ControllerCodes)(1 << i));
                    return(true);
                }
            }
            if (!GamePad.GetState(controllerIndex).IsConnected)
            {
                Console.WriteLine("Warning: Player " + playerNum + " is disconnected.");
            }
            return(false);
        }
Ejemplo n.º 3
0
        public HalfPadState(ControlSide side, PlayerIndex controllerIndex)
        {
            //SharpDX.XInput.Controller c;
            //var s = c.GetState();
            //var gp = s.Gamepad;
            //gp.

            GamePadState gamePadState = GamePad.GetState(controllerIndex);

            if (side == ControlSide.left)
            {
                stick1 = new Stick(gamePadState.ThumbSticks.Left);
                stick2 = new Stick(gamePadState.DPad.Up,
                                   gamePadState.DPad.Down,
                                   gamePadState.DPad.Left,
                                   gamePadState.DPad.Right);

                Btn1 = gamePadState.Buttons.LeftShoulder;
                Btn2 = (gamePadState.Triggers.Left < Controller.deadZone) ? ButtonState.Released : ButtonState.Pressed;
                //TODO: test
                Btn2AsTrigger = gamePadState.Triggers.Left;
                Btn3          = gamePadState.Buttons.LeftStick;

                BtnStart = gamePadState.Buttons.Back;
            }
            else //if (side == ControlSide.right)
            {
                stick1 = new Stick(gamePadState.ThumbSticks.Right);
                stick2 = new Stick(gamePadState.Buttons.Y,
                                   gamePadState.Buttons.A,
                                   gamePadState.Buttons.X,
                                   gamePadState.Buttons.B);

                Btn1 = gamePadState.Buttons.RightShoulder;
                Btn2 = (gamePadState.Triggers.Right < Controller.deadZone) ? ButtonState.Released : ButtonState.Pressed;
                //TODO: test
                Btn2AsTrigger = gamePadState.Triggers.Right;
                Btn3          = gamePadState.Buttons.RightStick;

                BtnStart = gamePadState.Buttons.Start;
            }
        }
        public bool reassign()
        {
            for (int j = 0; j < maxControllers*2; j++)
            {
                Console.WriteLine("j = " + j);
                int i = (j * 2) % ((maxControllers*2 - 1) + j / (maxControllers*2 - 1)); //magic
                if (i >= connectedControllers() * 2)
                {
                    if (j < maxControllers)
                    {
                        j = maxControllers - 1;
                        continue;
                    }
                    else
                    {
                        PopUp.Toast("Insufficient controllers! Player " + playerNum + " will not work!");
                        enabled = false;

                        return false;
                    }
                }

                if ((1 << i).isAvailable())
                {
                    controllerIndex = intToPlayerIndex[(i / 2) + 1];
                    if ((i % 2) == 0)
                    {
                        side = ControlSide.left;
                    }
                    else
                    {
                        side = ControlSide.right;
                        fullControllerAvailable = false;
                        halfControllers.First(x => x.controllerCode == (ControllerCodes)((int)controllerCode >> 1)).fullControllerAvailable = false;
                    }
                    assign((ControllerCodes)(1 << i));
                    return true;
                }
            }
            if (!GamePad.GetState(controllerIndex).IsConnected)
                PopUp.Toast("Warning: Player " + playerNum + " is disconnected.");
            return false;
        }
Ejemplo n.º 5
0
        protected override void Initialize()
        {
            this.Dock = DockStyle.Fill;

            //Init camera and dimensions
            this.worldDimensions = new Rectangle(0, 0, this.Width, this.Height);
            previousScroll       = Mouse.GetState().ScrollWheelValue;
            zoomIncrement        = 0.01f;
            camera = new Camera(GraphicsDevice.Viewport, (int)worldDimensions.Width * worldSizeMultiplier, (int)worldDimensions.Height * worldSizeMultiplier, 1f);

            numOfMasses = 80;

            ContentManager content = new ContentManager(Services);

            content.RootDirectory = "Content";
            massTexture           = content.Load <Texture2D>("Image1");
            selectedTexture       = content.Load <Texture2D>("selectedRing");
            spriteBatch           = new SpriteBatch(GraphicsDevice);
            selectedMass          = null;

            lastLMouse = Microsoft.Xna.Framework.Input.ButtonState.Released;
            lastRMouse = Microsoft.Xna.Framework.Input.ButtonState.Released;

            //area selection
            startVector = new Vector2();

            //group list
            objectGroupList = new List <ObjectGroup>();


            // Start the animation timer.
            timer          = new Timer();
            timer.Interval = 1;
            timer.Tick    += Tick;
            timer.Start();

            //create simulation
            springSim               = new Simulation(this);
            springSim.Stiffness     = stiffness;
            springSim.Damping       = damping;
            springSim.Length        = 10f;
            springSim.MassPerString = numOfMasses;
            stringLists             = new List <SimString>();

            //add forces
            gravity = new Gravity(new Vector2(0f, 9.81f));
            springSim.AddGlobalForceGenerator(gravity);

            air = new Medium(0.5f);
            springSim.AddGlobalForceGenerator(air);

            barrier = new ControlSide(new Rectangle(worldDimensions.X, worldDimensions.Y,
                                                    worldDimensions.Width * worldSizeMultiplier, worldDimensions.Height * worldSizeMultiplier));
            springSim.AddGlobalForceGenerator(barrier);

            //add integrator
            integrator           = new ForwardEulerIntegrator(this);
            springSim.Integrator = integrator;

            parentForm.saveState();
        }