Example #1
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;
        }
Example #2
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 },
Example #3
0
 static Manager()
 {
     controller = new InputController("Teslagrad.tas");
     xbox       = XboxController.RetrieveController(0);
     XboxController.UpdateFrequency = 30;
     XboxController.StartPolling();
 }
Example #4
0
 public XInputController(int deviceIndex)
 {
     _deviceIndex   = deviceIndex;
     _controller    = XboxController.RetrieveController(deviceIndex);
     _running       = true;
     _monitorThread = new Thread(MonitorThread);
     _monitorThread.Start();
 }
Example #5
0
 public Shield(ref Engine.PointF Position, int player) : base("Shield" + player, null, 50, 50)
 {
     this.Following = Position;
     this.player    = player;
     this.Visible   = false;
     Game.AddElement(this);
     this.ZOrder    = 10;
     controller     = XboxController.RetrieveController(player - 1);
     FramesOfShield = (int)(Game.FrameRate * ShieldDuration);
 }
Example #6
0
        private void SetupKeyHandlers()
        {
            //register for keyboard events
            KeyDown += MainWindow_KeyDown;

            //register for xbox controller events
            handHeldController = XboxController.RetrieveController(0);
            handHeldController.StateChanged += handHeldController_StateChanged;
            XboxController.StartPolling();
        }
        public MainWindow()
        {
            InitializeComponent();
            DataContext         = this;
            _selectedController = XboxController.RetrieveController(0);
            _selectedController.StateChanged += _selectedController_StateChanged;
            XboxController.StartPolling();
            ArduinoTimer          = new System.Timers.Timer();
            ArduinoTimer.Interval = Config.DataSendDelay;
            ArduinoTimer.Elapsed += ArduinoTimer_Elapsed;
            ArduinoTimer.Start();

            System.Timers.Timer DebugTimer = new System.Timers.Timer();
            DebugTimer.Interval = 200;
            DebugTimer.Elapsed += DebugTimer_Elapsed;
            DebugTimer.Start();

            SetupSweepers();
        }
Example #8
0
        internal void InitializeController()
        {
            XboxController.StopPolling();

            try
            {
                _controller = XboxController.RetrieveController(_currid);
                _controller.StateChanged += _selectedController_StateChanged;
                XboxController.StartPolling();

                _message = "Connected to controller #" + _currid;
            }
            catch
            {
                AddRuntimeMessage(GH_RuntimeMessageLevel.Warning, "Cannot find controller with ID #" + _currid);
                _controller = null;

                _message = "Cannot find controller with ID #" + _currid;
            }
        }
Example #9
0
        public GamepadService(ISteeringConfig config, int controllerIndex, int updateFrequency)
        {
            if (updateFrequency <= 0)
            {
                throw new ArgumentException("Update frequency should be positive");
            }

            _config = config;
            //divide by 128 to get -255 <=> 255 range on thumbstick
            _rangeConverter = new RangeConverter(128f, 255);
            _gamepadModel   = new GamepadModel();

            var controller = XboxController.RetrieveController(controllerIndex);

            controller.StateChanged       += StateChanged;
            XboxController.UpdateFrequency = updateFrequency;

            _lowPassFilterTimer          = new Timer(10);
            _lowPassFilterTimer.Elapsed += LowPassFilterTimerOnElapsed;
        }
Example #10
0
        public Player1() : base("Player1", null, 32, 32, "Player1", 100)
        {
            this.Gravity         = false;
            this.Collision       = CollisionTypes.Circular;
            this.CollisionRadius = 32;
            this.ScreenWrapping  = true;

            this.ClearFrames();
            this.AddFrame("Player1.png", 0);
            GoToFrame(0);

            gun        = new Gun(this);
            shield     = new Shield(ref this.Position, 1);
            controller = XboxController.RetrieveController(0);

            Position.X = -200;

            Velocity.X = 0;
            Velocity.Y = 0;
        }
Example #11
0
        public void ControllerScan()
        {
            while (_active)
            {
                // Check validity of connected controllers
                var deadControllers = new List <IController>();

                foreach (var controller in Controllers)
                {
                    if (controller.IsAlive())
                    {
                        continue;
                    }

                    Log.WriteLine($"XInput device {controller.Name} was disconnected.");
                    controller.Stop();
                    deadControllers.Add(controller);
                }

                // Remove disconnected devices
                if (deadControllers.Count > 0)
                {
                    Controllers.RemoveAll(c => deadControllers.Contains(c));
                }

                // Update controller list
                for (int i = 0; i < 4; i++)
                {
                    var controller = XboxController.RetrieveController(i);
                    if (!controller.IsConnected || Controllers.Any(device => device.UnderlyingController == controller))
                    {
                        continue;
                    }
                    var xdevice = new XInputController(i);
                    Log.WriteLine($"XInput device {xdevice.Name} was connected.");
                    Controllers.Add(xdevice);
                }

                Thread.Sleep(2000);
            }
        }
Example #12
0
        public Gun(GameObject Player) : base("Gun" + (Player.Name == "Player1" ? 1 : 2),
                                             null,
                                             32,
                                             32)
        {
            angles = new List <float>(40);

            if (Player.Name == "Player1")
            {
                Following  = (Player1)Player;
                controller = XboxController.RetrieveController(0);
            }
            else
            {
                Following2 = (Player2)Player;
                controller = XboxController.RetrieveController(1);
            }
            PlayerNumber = Player.Name == "Player1" ? 1 : 2;
            Game.AddElement(this);
            this.AddFrame(new Bitmap(32, 32), 0);
        }
Example #13
0
        public static void ScanDevices()
        {
            // Scan for devices
            lock (_allControllers)
            {
                if (Settings.Default.EnableDS4)
                {
                    try
                    {
                        DS4Devices.findControllers();

                        var listDS4 = DS4Devices.getDS4Controllers();

                        foreach (var controller in listDS4)
                        {
                            if (_allControllers.Count(c => c.UnderlyingDevice == controller.HidDevice) == 0)
                            {
                                Logger.Write("Found new DS4 device: {0}", controller.MacAddress);
                                _allControllers.Add(new DS4Input(controller.MacAddress));
                                ControllersUpdated?.Invoke();
                            }
                        }
                    }
                    catch (ThreadAbortException ex)
                    { }
                    catch (Exception ex)
                    {
                        Logger.Write("DS4 driver error: ", ex);
                        MessageBox.Show(string.Format(Resources.ErrorDriverDs4Disabled, ex.Message), Resources.ErrorDriverDisabledTitle, MessageBoxButton.OK, MessageBoxImage.Error);
                        Settings.Default.EnableDS4 = false;
                        Settings.Default.Save();
                    }
                }

                if (Settings.Default.EnableXbox)
                {
                    // Scan for Xbox controllers
                    try
                    {
                        for (int i = XboxController.FIRST_CONTROLLER_INDEX; i < XboxController.MAX_CONTROLLER_COUNT; i++)
                        {
                            XInputState stateController = new XInputState();
                            int         result          = XInput.XInputGetState(i, ref stateController);
                            if (result == 0) // Controller found
                            {
                                var controller = XboxController.RetrieveController(i);
                                if (_allControllers.Count(c => c.UnderlyingDevice == controller) == 0)
                                {
                                    Logger.Write("Found new XInput device: {0}", i);
                                    _allControllers.Add(new XboxInput(i));
                                    ControllersUpdated?.Invoke();
                                }
                            }
                        }
                    }
                    catch (ThreadAbortException ex)
                    { }
                    catch (Exception ex)
                    {
                        Logger.Write("XInput driver error: ", ex);
                        MessageBox.Show(string.Format(Resources.ErrorDriverXboxDisabled, ex.Message), Resources.ErrorDriverDisabledTitle, MessageBoxButton.OK, MessageBoxImage.Error);
                        Settings.Default.EnableXbox = false;
                        Settings.Default.Save();
                    }
                }
            }
        }
Example #14
0
 public GamepadPoller(int controllerIndex, int updateFrequency)
 {
     _controller = XboxController.RetrieveController(controllerIndex);
     XboxController.UpdateFrequency = updateFrequency;
     StartPolling();
 }
Example #15
0
 public XboxInput(int UserIndex)
 {
     _user       = UserIndex;
     _controller = XboxController.RetrieveController(_user);
 }
 private void SelectedControllerChanged(object sender, SelectionChangedEventArgs e)
 {
     _selectedController = XboxController.RetrieveController(((ComboBox)sender).SelectedIndex);
     OnPropertyChanged("SelectedController");
 }
Example #17
0
 public XMap()
 {
     _displayService = new DisplayService();
     _xboxController = XboxController.RetrieveController(0);
     _gameProcesses  = ConfigurationManager.AppSettings["gameProcesses"].Split(';').ToList();
 }