Ejemplo n.º 1
1
        public override void Create()
        {
            base.Create();

            cControl = new XboxController(SlimDX.XInput.UserIndex.One);
            pControl = new XboxController(SlimDX.XInput.UserIndex.Two);

            GameObject cursor = new Cursor(cControl);
            GameObject player = new Player(pControl);
            GameObject cannon1 = new Cannon();
            cannon1.Position.X = 365;
            cannon1.Position.Y = -265;
            GameObject cannon2 = new Cannon();
            cannon2.Position.X = 365;
            cannon2.Position.Y = 265;
            GameObject cannon3 = new Cannon();
            cannon3.Position.X = -365;
            cannon3.Position.Y = 265;
            GameObject cannon4 = new Cannon();
            cannon4.Position.X = -365;
            cannon4.Position.Y = -265;
            ObjectManager.AddGameObject(cursor);
            ObjectManager.AddGameObject(player);
            ObjectManager.AddGameObject(cannon1);
            ObjectManager.AddGameObject(cannon2);
            ObjectManager.AddGameObject(cannon3);
            ObjectManager.AddGameObject(cannon4);
        }
 public PlayerInfo(XboxController ID, PlayerColors playerColors)
 {
     IsAlive      = true;
     PlayerID     = ID;
     CurrentColor = playerColors;
     Scores       = new List <ScoreInformation>();
 }
Ejemplo n.º 3
0
    // Update is called once per frame
    void Update()
    {
        XboxButton     activate   = XboxButton.LeftBumper;
        XboxController controller = XboxController.First;

        switch (m_playerNumber)
        {
        case 1:
            activate   = XboxButton.LeftBumper;
            controller = XboxController.First;
            break;

        case 2:
            activate   = XboxButton.RightBumper;
            controller = XboxController.First;
            break;

        case 3:
            activate   = XboxButton.LeftBumper;
            controller = XboxController.Second;
            break;

        case 4:
            activate   = XboxButton.RightBumper;
            controller = XboxController.Second;
            break;
        }

        if (XCI.GetButtonDown(activate, controller))
        {
            m_shipHealth.Health += m_healAmount;
        }
    }
Ejemplo n.º 4
0
 // Use this for initialization
 void Start()
 {
     _Pool  = new GameObject[1000];
     Timer  = _RateOfFire;
     _Pool  = _BulletPool.GetComponent <BulletPool>().GetBullet();
     Player = transform.parent.gameObject.GetComponent <PlayerMovement>().GetController;
 }
Ejemplo n.º 5
0
        private readonly Stopwatch _dpadStopwatch     = new Stopwatch(); //Basically a "debounce"

        internal Hexapi(IkController ikController,
                        XboxController xboxController,
                        Navigator navigator,
                        SparkFunSerial16X2Lcd display,
                        Gps.Gps gps,
                        IoTClient ioTClient)
        {
            _ik             = ikController;
            _xboxController = xboxController;
            _gps            = gps;
            _navigator      = navigator;
            _display        = display;
            _ioTClient      = ioTClient;

            _functionStopwatch.Start();
            _dpadStopwatch.Start();

            SetGaitOptions();

            XboxController.LeftDirectionChanged  += XboxController_LeftDirectionChanged;
            XboxController.RightDirectionChanged += XboxController_RightDirectionChanged;
            XboxController.DpadDirectionChanged  += XboxController_DpadDirectionChanged;
            XboxController.LeftTriggerChanged    += XboxController_LeftTriggerChanged;
            XboxController.RightTriggerChanged   += XboxController_RightTriggerChanged;
            XboxController.FunctionButtonChanged += XboxController_FunctionButtonChanged;
            XboxController.BumperButtonChanged   += XboxController_BumperButtonChanged;
            XboxController.DisconnectedEvent     += XboxController_DisconnectedEvent;;
        }
Ejemplo n.º 6
0
    void Awake()
    {
        allContollers = XboxController.All;

        currentIndex = 0;

        buttonPositions = new List <GameObject>();

        currentScene = SceneManager.GetActiveScene();

        if (currentScene.buildIndex == 0)
        {
            for (int outerIndex = 0; outerIndex < menuButtonCollection.Length; outerIndex++)
            {
                if (menuButtonCollection[outerIndex].activeInHierarchy)
                {
                    for (int innerIndex = 0; innerIndex < menuButtonCollection[outerIndex].transform.GetChild(1).childCount; innerIndex++)
                    {
                        buttonPositions.Add(menuButtonCollection[outerIndex].transform.GetChild(1).GetChild(innerIndex).gameObject);
                    }
                }
            }
        }
        else if (currentScene.buildIndex == 1)
        {
            for (int innerIndex = 0; innerIndex < menuButtonCollection[2].transform.GetChild(1).childCount; innerIndex++)
            {
                buttonPositions.Add(menuButtonCollection[2].transform.GetChild(1).GetChild(innerIndex).gameObject);
            }
        }
    }
Ejemplo n.º 7
0
    // Init
    private void Awake()
    {
        rb            = GetComponent <Rigidbody2D>();
        sr            = GetComponent <SpriteRenderer>();
        controller    = player_data.controllers[(int)Owner];
        earth_Reticle = GetComponent <earth_reticle>();
        if (Owner != player.Earth)
        {
            earth_Reticle.enabled = false;
        }

        // Init visuals
        //Color fadedCol = player_data.colors[(int)Owner];
        //fadedCol.a = sr.color.a;
        //sr.color = fadedCol;

        arrow_cap.color = player_data.colors[(int)Owner];
        line_to_active_region.startColor = player_data.colors[(int)Owner];
        line_to_active_region.endColor   = player_data.colors[(int)Owner];
        line_to_active_region.enabled    = false;
        arrow_cap.enabled = false;

        // Init raycast contact filter
        region_mask = LayerMask.GetMask(new string[] { "Regions" });
        contactFilter.NoFilter();
        contactFilter.useLayerMask = true;
        contactFilter.layerMask    = region_mask;
    }
Ejemplo n.º 8
0
    public void LoadPlayers() //! SpawnPlayers, Spawn Players,
    {
        XboxController[] JoinedXboxControllers = new XboxController[playerSelectedCharacter.Count];
        int nextIndex = 0;

        for (int i = 0; i < 4; i++)
        {
            if (playerSelectedCharacter.ContainsKey(XboxController.First + i))
            {
                JoinedXboxControllers[nextIndex] = XboxController.First + i;
                nextIndex++;
            }
        }
        if (!m_bMovedToMainScene)
        {
            for (int i = 0; i < 4 - JoinedPlayers; ++i)
            {
                Vector3 spawnPosition = ControllerManager.Instance.spawnPoints[i].position; //Get the spawn position
                                                                                            //Make the gameojbect and keep a reference scoped to the single loop
                GameObject go = Instantiate(playerSelectedCharacter[JoinedXboxControllers[i]], spawnPosition, Quaternion.identity, null);
                //Set anything required for the player to work.
                go.transform.position = spawnPosition;
                go.GetComponent <ControllerSetter>().SetController(JoinedXboxControllers[i]);
                go.GetComponent <ControllerSetter>().m_playerNumber = (int)JoinedXboxControllers[i] - 1;
                go.GetComponent <PlayerStatus>().spawnIndex         = i;
                //Find the Array for players
                //Make a reference in game manager
                GameManagerc.Instance.AddPlayer(go.GetComponent <PlayerStatus>());
                DontDestroyOnLoad(go);                           //turn it on
                go.SetActive(true);
                CameraControl.mInstance.AddTarget(go.transform); //make a reference in camera control
                m_bMovedToMainScene = true;
            }
        }
    }
Ejemplo n.º 9
0
        public virtual void Update(XboxController controller)
        {
            // movement
            Vector3 moveDirection = new Vector3(XCI.GetAxisRaw(XboxAxis.LeftStickX, controller), 0, XCI.GetAxisRaw(XboxAxis.LeftStickY, controller));

            _characterController.Move(moveDirection);

            // throw
            if (XCI.GetButton(XboxButton.RightBumper, controller) && _straightCoolDownTimer <= 0 && Time.time >= _straightThrowAvailableTime)
            {
                _straightCoolDownTimer = _settings.StraightCoolDown;
                _tossAvailableTime     = Time.time + _settings.ThrowDeadzoneDuration;
                _characterController.Throw();
            }

            if (_settings.StraightCoolDown > 0)
            {
                _straightCoolDownTimer -= Time.deltaTime;
            }


            // toss
            if (XCI.GetButton(XboxButton.LeftBumper, controller) && _arcCoolDownTimer <= 0 && Time.time >= _tossAvailableTime)
            {
                _arcCoolDownTimer           = _settings.ArcCoolDown;
                _straightThrowAvailableTime = Time.time + _settings.ThrowDeadzoneDuration;
                _characterController.Toss();
            }

            if (_settings.ArcCoolDown > 0)
            {
                _arcCoolDownTimer -= Time.deltaTime;
            }
        }
Ejemplo n.º 10
0
    //Setup
    private void Start()
    {
        //Listen to all controllers
        controller = XboxController.All;

        //Fill in the menuButtons Array
        //PopulateMenuButtons();

        //Fill in the menuButtons Array
        Button[] tempButtonChildren = GetComponentsInChildren <Button>();

        //menuButtons = new List<GameObject>[tempButtonChildren.Length];

        int countOfChildren = 0;

        //Add each active button to the list
        foreach (Button childButton in tempButtonChildren)
        {
            menuButtons.Add(childButton.gameObject);
            countOfChildren++;
        }

        //Store the colours
        buttonActiveTint   = menuButtons[0].GetComponent <Button>().colors.highlightedColor;
        buttonInactiveTint = menuButtons[0].GetComponent <Button>().colors.normalColor;

        //activate first menu item
        menuButtons[0].GetComponent <Image>().color = buttonActiveTint;
    }
Ejemplo n.º 11
0
 private void HandleInput(ref PlayerInput playerInput, XboxController controller)
 {
     //Vector3 cameraPos = BaseGame.CameraPos;
     if (Input.KeyboardUpPressed || controller.RightTrigger > 0)
     {
         //_playerForwardDelta = ForwardScalar * _elapsedGameTime;
         playerInput.Forward = 0.5f;
     }
     else if (Input.KeyboardDownPressed || controller.LeftTrigger > 0)
     {
         //_playerForwardDelta = -ForwardScalar * _elapsedGameTime;
         playerInput.Forward = -0.5f;
     }
     if (Input.KeyboardLeftPressed || controller.IsDPadLeftPressed)
     {
         //_playerRotationDelta = -RotationScalar * _elapsedGameTime;
         playerInput.Rotation = 0.5f;
     }
     else if (Input.KeyboardRightPressed || controller.IsDPadRightPressed)
     {
         //_playerRotationDelta = RotationScalar * _elapsedGameTime;
         playerInput.Rotation = -0.5f;
     }
     if (Input.KeyboardF1JustPressed)
     {
         game.ToggleDebugDrawing();
     }
 }
Ejemplo n.º 12
0
 public AxisToButton(XboxController controllerId, XboxAxis axis, ReadAxis readAxis, float deadZone)
 {
     m_ControllerId = controllerId;
     m_Axis         = axis;
     m_Readaxis     = readAxis;
     m_DeadZone     = deadZone;
 }
Ejemplo n.º 13
0
    // Set up controllers
    private void Awake()
    {
        if (inputManager != this)
        {
            Destroy(this);
            return;
        }
        // only temporary, need to make going from keyboard to controller more formal and streamlined!!!!!!!!!!
        // controllers[0] = new MouseKeyboard(0);
        keyboardEnabled = false;
        // for (int i = 1; i < 4; ++i)
        for (int i = 0; i < 4; ++i)
        {
            controllers[i] = new XboxController(i);
        }
        // ChangeControllerType(0, Controller.Type.MouseKeyboard);
#if UNITY_ANDROID || UNITY_IOS
        Debug.Log("Mobile Device Detected");
        ChangeControllerType(0, Controller.Type.TouchScreen);
        ChangeControllerType(1, Controller.Type.TouchScreen);
#endif

#if UNITY_EDITOR_WIN || UNITY_STANDALONE_WIN
        UpdateXInputStateThread = new Thread(UpdateXInputStateThreadLoop);
        UpdateXInputStateThread.Start();
#endif
    }
Ejemplo n.º 14
0
 public VirtualButton(XboxController controller, KeyCode key, XboxButton button, AxisToButton axis)
 {
     m_ControllerId = controller;
     m_Key          = key;
     m_Button       = button;
     m_Axis         = axis;
 }
Ejemplo n.º 15
0
        /// <summary>
        /// Updates every frame.
        /// </summary>
        private void Update()
        {
            // Written, 18.12.2018

            XboxController xc = MoControlsGO.xboxController;

            if (xc.isConnected)
            {
                if (xc.getButtonDown(keyName))
                {
                    startTime = Time.time;
                    timer     = startTime;
                }
                if (xc.getButtonPressed(keyName) && held == false)
                {
                    timer += Time.deltaTime;
                    if (timer > (startTime + holdTime))
                    {
                        held = true;
                        action?.Invoke();
                    }
                }
                if (xc.getButtonUp(keyName))
                {
                    held = false;
                }
            }
        }
Ejemplo n.º 16
0
    // Use this for initialization
    void Start()
    {
        if (PlayerPrefs.GetInt("P2_Controller_Scheme") == 0)
        {
            usingXbox = false;
        }
        else
        {
            usingXbox = true;
            if (PlayerPrefs.GetInt("P1_Controller_Scheme") == 0)
            {
                player2Controller = XboxController.First;
            }
            else
            {
                player2Controller = XboxController.Second;
            }
        }
        player2Camera = gameObject.GetComponentInChildren <Camera> ();
        mouseLook.Init(this.transform, player2Camera.transform);

        moves         = GameConstants.MOVES_BEFORE_COOLDOWN;
        coolDown      = GameConstants.COOLDOWN_VALUE;
        elapsedTime   = 0;
        movesLeftText = movesLeftGO.GetComponent <Text> ();
        updateMovesText();
    }
Ejemplo n.º 17
0
        public Screen()
        {
            InitializeComponent();

            bmp = new WriteableBitmap(BitmapWidth, BitmapHeight, 96, 96, PixelFormats.Gray8, null);
            var whitescreen = new byte[BitmapWidth * BitmapHeight];

            for (int i = 0; i < whitescreen.Length; i++)
            {
                whitescreen[i] = 0xff;
            }
            bmp.WritePixels(new Int32Rect(0, 0, BitmapWidth, BitmapHeight), whitescreen, BitmapWidth, 0);
            Display.Source = bmp;
            RenderOptions.SetBitmapScalingMode(Display, BitmapScalingMode.NearestNeighbor);

            FPSDisplayEnable.Checked   += (x, y) => FPS.Visibility = Visibility.Visible;
            FPSDisplayEnable.Unchecked += (x, y) => FPS.Visibility = Visibility.Collapsed;

            XboxController.UpdateFrequency = 5;
            XboxController.StartPolling();

            var Controller1 = new XboxControllerWithInterruptHandler(XboxController.RetrieveController(0));
            var Controller2 = new XboxControllerWithInterruptHandler(XboxController.RetrieveController(1));
            var Controller3 = new XboxControllerWithInterruptHandler(XboxController.RetrieveController(2));
            var Controller4 = new XboxControllerWithInterruptHandler(XboxController.RetrieveController(3));

            Dictionary <Key, JoypadKey> mappedKeys = new()
            {
                { Key.X, JoypadKey.A },
                { Key.LeftShift, JoypadKey.Select },
Ejemplo n.º 18
0
 private void HandleWeapons()
 {
     if (canRangeAttack && Input.GetAxisRaw(XboxController.GetButtonName(shootButton) + playerNumber) > 0.0f)
     {
         Shoot();
     }
 }
Ejemplo n.º 19
0
    // Use this for initialization
    private InputManager()
    {
        //Hard-setting Keybinds for players 1 and 2 here for now. Eventually implement options.
        PlayerKeybindArray [0].UpKey = KeyCode.W;
        PlayerKeybindArray [0].DownKey = KeyCode.S;
        PlayerKeybindArray [0].LeftKey = KeyCode.A;
        PlayerKeybindArray [0].RightKey = KeyCode.D;
        PlayerKeybindArray [0].LTurnKey = KeyCode.Q;
        PlayerKeybindArray [0].RTurnKey = KeyCode.E;
        PlayerKeybindArray [0].GraborThrowKey = KeyCode.F;
        PlayerKeybindArray[0].AbilityKey = KeyCode.R;

        PlayerKeybindArray [1].UpKey = KeyCode.I;
        PlayerKeybindArray [1].DownKey = KeyCode.K;
        PlayerKeybindArray [1].LeftKey = KeyCode.J;
        PlayerKeybindArray [1].RightKey = KeyCode.L;
        PlayerKeybindArray [1].LTurnKey = KeyCode.U;
        PlayerKeybindArray [1].RTurnKey = KeyCode.O;
        PlayerKeybindArray [1].GraborThrowKey = KeyCode.Semicolon;
        PlayerKeybindArray[1].AbilityKey = KeyCode.P;

        PlayerKeybindArray [0].SelectKey = KeyCode.Return; //Only exists once to prevent game from "double-pausing"
        PlayerKeybindArray [0].ExitKey = KeyCode.Escape;

        for (int i = 0; i < ControllerArray.Length; i++)
        {
            ControllerArray[i] = new XboxController(i);
        }
    }
Ejemplo n.º 20
0
        public void Run()
        {
            Console.WriteLine("== ARDUINO INTERFACE ==");
            var controller = new XboxController();

            Console.Write("Use default settings? (y/n) :");
            TankInterface tank;

            if (Console.ReadLine().ToUpper().Equals("Y"))
            {
                tank = new TankInterface("COM3", 115200);
            }
            else
            {
                Console.Write("PORT: ");
                var port = Console.ReadLine();

                Console.Write("BAUDRATE: ");
                var baudrate = int.Parse(Console.ReadLine());

                tank = new TankInterface(port, baudrate);
            }

            tank.AttachController(controller);
        }
Ejemplo n.º 21
0
        static void Main(string[] args)
        {
            RenderWindow app = new RenderWindow(new VideoMode(800, 600), "OMG, it works!");

            app.Closed += new EventHandler(OnClose);

            Color windowColor = new Color(77, 255, 130);

            CircleShape shape = new CircleShape(10);

            shape.FillColor = new Color(Color.Red);

            RectangleShape square = new RectangleShape();

            square.FillColor    = new Color(Color.Red);
            square.Position     = new Vector2f(app.Size.X / 2, app.Size.Y / 2);
            square.OutlineColor = new Color(0, 0, 0, 255);
            square.Size         = new Vector2f(50, 50);

            // Start the game loop
            while (app.IsOpen())
            {
                // Process events
                app.DispatchEvents();

                // Clear screen
                app.Clear(windowColor);

                app.Draw(shape);
                app.Draw(square);

                Console.WriteLine(XboxController.RefreshButtonPressed());
                Console.WriteLine(XboxController.RefreshAxisPressed());


                if (JoyState.HasFlag(ControllerState.DPAD_UP_PRESSED))
                {
                    square.Position = new Vector2f(square.Position.X, square.Position.Y - 1);
                }

                if (JoyState.HasFlag(ControllerState.DPAD_DOWN_PRESSED))
                {
                    square.Position = new Vector2f(square.Position.X, square.Position.Y + 1);
                }

                if (JoyState.HasFlag(ControllerState.DPAD_LEFT_PRESSED))
                {
                    square.Position = new Vector2f(square.Position.X - 1, square.Position.Y);
                }

                if (JoyState.HasFlag(ControllerState.DPAD_RIGHT_PRESSED))
                {
                    square.Position = new Vector2f(square.Position.X + 1, square.Position.Y);
                }


                // Update the window
                app.Display();
            }
        }
Ejemplo n.º 22
0
 static Manager()
 {
     controller = new InputController("Teslagrad.tas");
     xbox       = XboxController.RetrieveController(0);
     XboxController.UpdateFrequency = 30;
     XboxController.StartPolling();
 }
Ejemplo n.º 23
0
        /// <summary>
        /// Update
        /// </summary>
        protected override void Update(GameTime gameTime)
        {
            // Update game engine
            base.Update(gameTime);

            var controller = XboxController.RetrieveController(0);

            controller.UpdateState();

            if (controller.IsBackPressed || Keyboard.GetState().IsKeyDown(Keys.Escape))
            {
                Exit();
            }

            var elapsedGameTime = (float)gameTime.ElapsedGameTime.TotalSeconds;

            var input = new PlayerInput();

            HandleInput(ref input, controller);

            game.Input(input);
            game.Update(elapsedGameTime);
            frame = game.getPosition();

            CameraPos = new Vector3(frame.Position.X, -frame.Position.Y, CameraPos.Z);

            ViewMatrix = Matrix.CreateLookAt(CameraPos, new Vector3(CameraPos.X, CameraPos.Y, 0), Vector3.Up);

            Window.Title = "GTA2.NET - " + WindowTitle + Fps.ToString(CultureInfo.InvariantCulture) + " fps X: " + CameraPos.X.ToString() + "Y: " + CameraPos.Y.ToString() + "Z: " + CameraPos.Z;
        }
Ejemplo n.º 24
0
 private void HandlePickup()
 {
     if (Input.GetButtonDown(XboxController.GetButtonName(pickupButton) + playerNumber) && !isCarrying)
     {
         GameObject item = pickUpVolume.PickupItem();
         if (item != null)
         {
             pickedUpItem = item;
             pickedUpItem.transform.parent        = itemLocation.transform;
             pickedUpItem.transform.localPosition = Vector3.zero;
             pickedUpItem.GetComponent <PickUpItem>().HoldItem(true);
             isCarrying = true;
         }
         else
         {
             pickedUpItem = null;
             isCarrying   = false;
         }
     }
     else if (Input.GetButtonDown(XboxController.GetButtonName(pickupButton) + playerNumber) && isCarrying)
     {
         pickedUpItem.transform.parent = null;
         pickedUpItem.GetComponent <PickUpItem>().HoldItem(false);
         pickedUpItem = null;
         isCarrying   = false;
     }
 }
Ejemplo n.º 25
0
    private void AddController(XboxController controller)
    {
        int id = ((int)controller) - 1;
        // If there's a container empty, then add a player into it. (Not sure if we should do this, or just match the ID to the connected controller).
        GameObject containerGO = this.GetContainerByID(id).gameObject;

        if (containerGO)
        {
            // Getting the container and checking if it already has a player
            PlayerContainer container = containerGO.GetComponent <PlayerContainer>();
            if (container.HasPlayer)
            {
                return;
            }

            // Setting up the container:
            container.ID         = id;
            container.Controller = controller;
            container.HasPlayer  = true;
            container.ToggleMech();
            ++assignedPlayers;
        }
        else
        {
            Debug.Log("Can't find container.");
        }
    }
Ejemplo n.º 26
0
        static void RespondToJoystickEvents(RectangleShape player)
        {
            buttonText.DisplayedString = XboxController.RefreshButtonPressed();
            axisText.DisplayedString   = XboxController.RefreshAxisPressed();

            if (JoyState.HasFlag(ControllerState.DPAD_UP_PRESSED))
            {
                player.Position = new Vector2f(player.Position.X, player.Position.Y - 1);
            }

            if (JoyState.HasFlag(ControllerState.DPAD_DOWN_PRESSED))
            {
                player.Position = new Vector2f(player.Position.X, player.Position.Y + 1);
            }

            if (JoyState.HasFlag(ControllerState.DPAD_LEFT_PRESSED))
            {
                player.Position = new Vector2f(player.Position.X - 1, player.Position.Y);
            }

            if (JoyState.HasFlag(ControllerState.DPAD_RIGHT_PRESSED))
            {
                player.Position = new Vector2f(player.Position.X + 1, player.Position.Y);
            }

            if (JoyState.HasFlag(ControllerState.B_PRESSED))
            {
                player.Position = RespawnCentreScreen();
            }
        }
Ejemplo n.º 27
0
    // @brief Update is called once per frame
    //          Handles adding players to the game and starting the game
    private void Update()
    {
        if (m_isLoading)
        {
            return;
        }

        // Add players to the game
        AddPlayer();

        // If there are no players in the list, the game cannot start
        if (Menus.GetActivatedPlayerAmount() <= 0)
        {
            return;
        }
        else
        {

            // Loop through each controller and check for an input to start the game
            for (int i = 0; i < Menus.GetActivatedPlayerAmount(); i++)
            {
                // Only allow players who have joined the game to start it
                StaticVariables holder = Menus.GetPlayerInformation(i);
                XboxController controller = holder.Controller;

                // Only let the player change hat and ready up if they have not already readied up
                if (!holder.IsReady)
                {
                    HatSelection();

                    ReadyUp();
                }
                else
                {
                    // Check for the players input
                    if (XCI.GetButtonDown(XboxButton.Start, controller))
                    {
                        m_PlayerAddMenu.SetActive(false);
                        m_loadingMenu.SetActive(true);

                        for (int j = 0; j < m_listOfUI.Count; j++)
                        {
                            Destroy(m_listOfUI[j]);
                            Destroy(m_readyPlayers[j]);
                        }

                        gameObject.GetComponent<PlayerAdd>().enabled = false;
                    }
                }

            }
        }

        for (int i = 0; i < Menus.GetActivatedPlayerAmount(); i++)
        {
            StaticVariables holder = Menus.GetPlayerInformation(i);
            ControllerVibrato(holder);
        }
    }
Ejemplo n.º 28
0
        private static void HandleXboxInputPanTilt(MainWindow mainWindow, PanTiltController panTilt, FiringController firingController,
                                                   XboxController handHeldController)
        {
            try
            {
                var convertedXboxInputX = ConvertXInputCoordinateToVelocity(handHeldController.LeftThumbStick.X);
                var convertedXboxInputY = ConvertXInputCoordinateToVelocity(handHeldController.LeftThumbStick.Y);
                Console.WriteLine("X Value Converted - " + convertedXboxInputX);
                //Pan Up & Pan Down for Manual Tracking
                if (convertedXboxInputY <= PAN_TILT_SPEED_LIMIT && !s_PanTiltTooFarDown && mainWindow.TrackingMode == TrackingMode.MANUAL)
                {
                    s_PanTiltTooFarUp          = false;
                    mainWindow.CannonYVelocity = convertedXboxInputY;
                    panTilt.PanY(mainWindow.CannonYVelocity);
                }
                if (convertedXboxInputY >= -1 * PAN_TILT_SPEED_LIMIT && !s_PanTiltTooFarUp && mainWindow.TrackingMode == TrackingMode.MANUAL)
                {
                    mainWindow.CannonYVelocity = convertedXboxInputY;
                    //set too far to false. if its stil too far the next key event handler will set to true
                    s_PanTiltTooFarDown = false;
                    panTilt.PanY(mainWindow.CannonYVelocity);
                }

                if (convertedXboxInputY <= PAN_TILT_SPEED_LIMIT && !s_PanTiltTooFarDown && mainWindow.TrackingMode == TrackingMode.AUDIBLE)
                {
                    s_PanTiltTooFarUp          = false;
                    mainWindow.CannonYVelocity = convertedXboxInputY;
                    panTilt.PanY(mainWindow.CannonYVelocity);
                }
                if (convertedXboxInputY >= -1 * PAN_TILT_SPEED_LIMIT && !s_PanTiltTooFarUp && mainWindow.TrackingMode == TrackingMode.AUDIBLE)
                {
                    mainWindow.CannonYVelocity = convertedXboxInputY;
                    //set too far to false. if its stil too far the next key event handler will set to true
                    s_PanTiltTooFarDown = false;
                    panTilt.PanY(mainWindow.CannonYVelocity);
                }
                if (mainWindow.CannonXVelocity >= -1 * PAN_TILT_SPEED_LIMIT && !s_PanTiltTooFarRight && mainWindow.TrackingMode == TrackingMode.MANUAL)
                {
                    mainWindow.CannonXVelocity = convertedXboxInputX;
                    //set too far to false. if its stil too far the next key event handler will set to true
                    s_PanTiltTooFarLeft = false;
                    panTilt.PanX(mainWindow.CannonXVelocity);
                }
                if (mainWindow.CannonXVelocity <= PAN_TILT_SPEED_LIMIT && !s_PanTiltTooFarLeft && mainWindow.TrackingMode == TrackingMode.MANUAL)
                {
                    mainWindow.CannonXVelocity = convertedXboxInputX;

                    //set too far to false. if its stil too far the next key event handler will set to true
                    s_PanTiltTooFarRight = false;
                    panTilt.PanX(mainWindow.CannonXVelocity);
                }
            }
            //anything goes wrong, stop pantilt and crash the app
            catch (Exception ex)
            {
                panTilt.Disengage();
                throw ex;
            }
        }
Ejemplo n.º 29
0
    // Update is called once per frame
    void Update()
    {
        if (PlayerManager.Gamestate == gamestate.sea_levels_rose)
        {
            return;
        }

        // Take in player input for switching policies
        for (int i = 0; i < 2; i++)
        {
            int    Player        = (i == 0) ? (int)player.A : (int)player.B;
            int    currentPolicy = (int)policies[Player];
            policy newPolicy     = (policy)currentPolicy;

            XboxController controller = player_data.controllers[Player];
            if (RCI.GetButtonDown(XboxButton.DPadDown, controller))
            {
                newPolicy = (policy)Mathf.Clamp(currentPolicy - 1, 1, policiesCount - 1);
            }
            else if (RCI.GetButtonDown(XboxButton.DPadUp, controller))
            {
                newPolicy = (policy)Mathf.Clamp(currentPolicy + 1, 1, policiesCount - 1);
            }

            ChangePolicyBonusDisplay(i, currentPolicy, newPolicy);

            if (newPolicy != policies[Player])
            {
                policies[Player] = newPolicy;
                //city.updatePoliciesAll(Player, (policy)newPolicy);
                // Play corresponding sound effect
                if (newPolicy == policy.industry)
                {
                    mixer.playSFX("ind policy");
                }
                else if (newPolicy == policy.neutral)
                {
                    mixer.playSFX("population growth");
                }
                else if (newPolicy == policy.eco)
                {
                    mixer.playSFX("eco policy");
                }
            }
        }

        // Update policy displays
        for (int pol = 0; pol < policiesCount; pol++)
        {
            if (p1PolicyDisplays[pol] != null)
            {
                setPolicySR(p1PolicyDisplays[pol], policies[1] == (policy)pol);
            }
            if (p2PolicyDisplays[pol] != null)
            {
                setPolicySR(p2PolicyDisplays[pol], policies[2] == (policy)pol);
            }
        }
    }
Ejemplo n.º 30
0
        static void Main(string[] args)
        {
            GameApp         = new RenderWindow(new VideoMode(ScreenWidth, ScreenHeight), "Display Sprites");
            GameApp.Closed += new EventHandler(OnClose);

            Color windowColor = new Color(0, 192, 255);

            SetupFont();
            SetupPlayerSprite();
            SetupBombSprite();
            SetupAppleSprite();
            SetupGameText();

            // quick alias
            var app = GameApp;

            // Start the game loop
            while (app.IsOpen())
            {
                // Process events
                app.DispatchEvents();

                // Clear screen
                app.Clear(windowColor);

                BombSprite.Position = GameUtils.RandomlyMovePosition(BombSprite.Position, app.Size);


                buttonText.DisplayedString = XboxController.RefreshButtonPressed();
                axisText.DisplayedString   = XboxController.RefreshAxisPressed();

                PlayerSprite.Position = RespondToJoystickEvents(PlayerSprite.Position);

                if (IsPlayerOverFood(PlayerSprite.GetGlobalBounds(), AppleSprite.GetGlobalBounds()) == true)
                {
                    // Respawn food and increase health!
                    AppleSprite.Position          = RespawnRandomLocation();
                    foodCountText.DisplayedString = string.Format("Food: {0}", ++foodCount);
                }

                if (IsPlayerOverEnemy(PlayerSprite.GetGlobalBounds(), BombSprite.GetGlobalBounds()) == true)
                {
                    PlayerSprite.Position        = RespawnTopLeftScreen();
                    killCountext.DisplayedString = string.Format("Killed: {0}", ++killCount);
                }

                app.Draw(headerText);
                app.Draw(buttonText);
                app.Draw(axisText);
                app.Draw(foodCountText);
                app.Draw(killCountext);
                app.Draw(PlayerSprite);
                app.Draw(BombSprite);
                app.Draw(AppleSprite);

                // Update the window
                app.Display();
            }
        }
Ejemplo n.º 31
0
 public XInputController(int deviceIndex)
 {
     _deviceIndex   = deviceIndex;
     _controller    = XboxController.RetrieveController(deviceIndex);
     _running       = true;
     _monitorThread = new Thread(MonitorThread);
     _monitorThread.Start();
 }
Ejemplo n.º 32
0
        public void XboxControllerUpdateTest()
        {
            XboxController controller = new XboxController(TrackingState.NotApplicable, Utilities.Handedness.None);

            controller.SetupDefaultInteractions(Utilities.Handedness.None);

            TestGenericJoystickControllerUpdate(controller);
        }
Ejemplo n.º 33
0
    private static void Initialize()
    {
        for (int i = 0; i < NUMBER_OF_CONTROLLERS; ++i)
        {
            m_XboxControllers[i] = new XboxController();
            m_XboxControllers[i].ControllerIndex = (PlayerIndex)i;

            m_IsInitialized = true;
        }

        UpdateState();
    }
Ejemplo n.º 34
0
	public static Player Create(XboxController i)
	{

		Player player = (GameObject.Instantiate(Game.Instance.Settings.PlayerPrefabs[(int)i - 1].gameObject) as GameObject).GetComponent<Player>();
		player.rigidbody.isKinematic = true;
		MeshRenderer [] renderers = player.GetComponentsInChildren<MeshRenderer>();
		foreach (MeshRenderer r in renderers) {
			if (r.tag != "PasDeCouleur")
				r.material.color = Game.Instance.Settings.PlayerColors [(int)i - 1];
		}
		player.controller = i;
		return player;
	}
Ejemplo n.º 35
0
        public override void Update()
        {
            base.Update();

            pControl = pControl == null ? new XboxController(SlimDX.XInput.UserIndex.Two) : pControl;

            if (!GameOver && (ObjectManager.GetAllObjectsByName("CANNON").Count == 0 ||
                ObjectManager.GetObjectByName("PLAYER") == null))
            {
                TextManager.AddText("RESTART", "Press START to restart", FontTypes.Arial32);
                TextObject text = TextManager.GetTextObjectByName("RESTART");
                text.Position.X = -Game.WindowWidth / 2;
                text.Position.Y = Game.WindowHeight / 2;
                GameOver = true;
            }

            if (GameOver)
            {
                pControl.Update();
                if (cControl.IsTriggered(XboxKeys.START) || pControl.IsTriggered(XboxKeys.START))
                    GameStateManager.GoToState(new Level());
            }
        }
Ejemplo n.º 36
0
        private static float XInputApplyDeadzone(float rawAxisValue, XboxAxis axis, XboxController controller)
        {
            float finalValue = rawAxisValue;
            float deadzone = 0.0f;

            // Find the deadzone
            switch(axis)
            {
            case XboxAxis.LeftStickX:
                deadzone = XciHandler.Instance.Deadzones.LeftStickX[(int) controller];
                break;
            case XboxAxis.LeftStickY:
                deadzone = XciHandler.Instance.Deadzones.LeftStickY[(int) controller];
                break;
            case XboxAxis.RightStickX:
                deadzone = XciHandler.Instance.Deadzones.RightStickX[(int) controller];
                break;
            case XboxAxis.RightStickY:
                deadzone = XciHandler.Instance.Deadzones.RightStickY[(int) controller];
                break;
            case XboxAxis.LeftTrigger:
                deadzone = XciHandler.Instance.Deadzones.LeftTrigger[(int) controller];
                break;
            case XboxAxis.RightTrigger:
                deadzone = XciHandler.Instance.Deadzones.RightTrigger[(int) controller];
                break;
            }

            // Clear axis value if less than the deadzone
            if(Mathf.Abs(rawAxisValue) < deadzone)
            {
                finalValue = 0.0f;
            }
            // Remap the axis value from interval [0,1] to [deadzone,1]
            else
            {
                finalValue = (Mathf.Abs(rawAxisValue) * (1 - deadzone)) + deadzone;
                finalValue = finalValue * Mathf.Sign(rawAxisValue);
            }

            return finalValue;
        }
		/// <summary> 
		/// 	Returns the float number of the specified axis from a specified controller without Unity's smoothing filter. 
		/// </summary>
		/// <param name='axis'> 
		/// 	An identifier for the specified Xbox axis to be tested. 
		/// </param>
		/// <param name='controller'>
		/// 	An identifier for the specific controller on which to test the axis.
		/// </param>
		public static float GetAxisRaw(XboxAxis axis, XboxController controller)
		{
			if (controller == XboxController.All)
				return GetAxisRaw(axis);

			int controllerNumber = (int)controller;

			float r = 0.0f;
			
			if(OnWindowsNative())
			{
				if(!XInputStillInCurrFrame())
				{
					XInputUpdateAllStates();
				}
					
				GamePadState ctrlrState = XInputGetPaticularState(controllerNumber);
				
				if(axis == XboxAxis.LeftTrigger || axis == XboxAxis.RightTrigger)
				{
					r = XInputGetAxisState(ctrlrState.Triggers, axis);
				}
				else
				{
					r = XInputGetAxisState(ctrlrState.ThumbSticks, axis);
				}
			}
			
			else
			{
				string axisCode = DetermineAxisCode(axis, controllerNumber);
				
				r = Input.GetAxisRaw(axisCode);
				r = AdjustAxisValues(r, axis, controllerNumber);
			}
				
			return r;
		}
		// From @ProjectEnder
		/// <summary> 
		/// 	Returns <c>true</c> at the frame the specified button is Pressed by a specified controller. 
		/// 	Does NOT work on Linux with Wired Controllers.
		/// </summary>
		/// <param name='button'> 
		/// 	Identifier for the Xbox button to be tested. 
		/// </param>
		/// <param name='controller'>
		/// 	An identifier for the specific controller on which to test the button.
		/// </param>
		public static bool GetDPadDown(XboxDPad padDirection, XboxController controller)
		{
			if (controller == XboxController.All)
				return GetDPadDown(padDirection);

			int controllerNumber = (int)controller;

			bool r = false;
			
			if(OnWindowsNative())
			{
				if(Time.frameCount < 2)
				{
					return false;
				}
				
				if(!XInputStillInCurrFrame())
				{
					XInputUpdateAllStates();
				}
				
				GamePadState ctrlrState = XInputGetPaticularState(controllerNumber);
				GamePadState ctrlrStatePrev = XInputGetPaticularStatePrev(controllerNumber);
				
				if( ( XInputGetDPadState(ctrlrState.DPad, padDirection) == ButtonState.Pressed ) &&
				   ( XInputGetDPadState(ctrlrStatePrev.DPad, padDirection) == ButtonState.Released ) )
				{
					return true;
				}
			}
			
			else
			{
				string inputCode = "";
				
				if(OnMac())
				{
					inputCode = DetermineDPadMac(padDirection, controllerNumber);
					r = Input.GetKeyDown(inputCode);
				}
				else if(OnLinux() && IsControllerWireless(controllerNumber))
				{
					inputCode = DetermineDPadWirelessLinux(padDirection, controllerNumber);
					r = Input.GetKeyDown(inputCode);
				}
				else
				{
					//Place Holder for Wired Linux
					r = false;
				}
			}
			
			return r;
		}
		/// <summary> 
		/// 	Returns <c>true</c> if the specified D-Pad direction is pressed down by a specified controller. 
		/// </summary>
		/// <param name='padDirection'> 
		/// 	An identifier for the specified D-Pad direction to be tested. 
		/// </param>
		/// <param name='controller'>
		/// 	An identifier for the specific controller on which to test the D-Pad.
		/// </param>
		public static bool GetDPad(XboxDPad padDirection, XboxController controller)
		{
			if (controller == XboxController.All)
				return GetDPad(padDirection);

			int controllerNumber = (int)controller;

			bool r = false;
			
			if(OnWindowsNative())
			{
				if(!XInputStillInCurrFrame())
				{
					XInputUpdateAllStates();
				}
				
				GamePadState ctrlrState = XInputGetPaticularState(controllerNumber);

				if( XInputGetDPadState(ctrlrState.DPad, padDirection) == ButtonState.Pressed )
				{
					return true;
				}
			}
			
			else
			{
				string inputCode = "";
				
				if(OnMac())
				{
					inputCode = DetermineDPadMac(padDirection, controllerNumber);
					r = Input.GetKey(inputCode);
				}
				else if(OnLinux() && IsControllerWireless(controllerNumber))
				{
					inputCode = DetermineDPadWirelessLinux(padDirection, controllerNumber);
					r = Input.GetKey(inputCode);
				}
				else // Windows Web Player and Linux Wired Controller
				{
					inputCode = DetermineDPad(padDirection, controllerNumber);
					
					switch(padDirection)
					{
						case XboxDPad.Up: 		r = Input.GetAxis(inputCode) > 0; break;
						case XboxDPad.Down: 	r = Input.GetAxis(inputCode) < 0; break;
						case XboxDPad.Left: 	r = Input.GetAxis(inputCode) < 0; break;
						case XboxDPad.Right:	r = Input.GetAxis(inputCode) > 0; break;
						
						default: r = false; break;
					}
				}
			}
			
			return r;
		}
		/// <summary> 
		/// 	Returns <c>true</c> at the frame the specified button is released by a specified controller. 
		/// </summary>
		/// <param name='button'> 
		/// 	Identifier for the Xbox button to be tested. 
		/// </param>
		/// <param name='controller'>
		/// 	An identifier for the specific controller on which to test the button.
		/// </param>
		public static bool GetButtonUp(XboxButton button, XboxController controller)
		{
			if (button.IsDPad())
				return GetDPadUp(button.ToDPad(), controller);

			if (controller == XboxController.All)
				return GetButtonUp(button);

			int controllerNumber = (int)controller;

			if(OnWindowsNative())
			{
				if(Time.frameCount < 2)
				{
					return false;
				}
				
				if(!XInputStillInCurrFrame())
				{
					XInputUpdateAllStates();
				}
				
				GamePadState ctrlrState = XInputGetPaticularState(controllerNumber);
				GamePadState ctrlrStatePrev = XInputGetPaticularStatePrev(controllerNumber);
				
				if( ( XInputGetButtonState(ctrlrState.Buttons, button) == ButtonState.Released ) &&
				    ( XInputGetButtonState(ctrlrStatePrev.Buttons, button) == ButtonState.Pressed ) )
				{
					return true;
				}
			}
			
			else
			{
				string btnCode = DetermineButtonCode(button, controllerNumber);
				
				if(Input.GetKeyUp(btnCode))
				{
					return true;
				}
			}
			
			return false;
		}
 public void Start()
 {
     _selectedController = XboxController.RetrieveController( 0 );
     XboxController.StartPolling();
 }
Ejemplo n.º 42
0
 public XboxInput(XboxController controller)
 {
     this.controller = controller;
 }