/// <summary> /// Callback pro změnu stavu páčky gamepadu pro přímý pohyb /// </summary> /// <param name="x">x souřadnice joysticku od -100 do 100</param> /// <param name="y">y souřadnice joysticku od -100 do 100</param> private void joystickDirectMoveChanged(int x, int y) { Point corectedPoint = MathLibrary.convertPointToCircle(x, y, 0, 0, 101); moveRobot(corectedPoint.X, corectedPoint.Y); if (!(joystick is MainWindow)) { controllView.moveDirectMoveJoystick(corectedPoint.X, corectedPoint.Y); } }
private void joystickMouseMoveHandler(MouseEventArgs e, Point location, PictureBox box, Action <int, int> stickObserver) { if (MathLibrary.isPointInCircle(e.X, e.Y, joystickR, joystickR, joystickR)) { location = e.Location; box.Invalidate(); if (enabledStick) { stickObserver((int)Math.Floor((e.X - joystickR) / ((double)joystickR / 100)), (int)Math.Floor((e.Y - joystickR) / ((double)joystickR / 100))); } } else { Cursor.Position = box.PointToScreen(MathLibrary.convertPointToCircle(e.X, e.Y, joystickR, joystickR, joystickR - 2)); } }