Esempio n. 1
0
        protected override void Update()
        {
            SketchInputManager sketchInputManager = SketchEngine.FindObjectByType <SketchInputManager>();

            if (OnSketchPointer == null)
            {
                foreach (var sketchPointer in sketchInputManager.SketchPointers)
                {
                    if (StartRegion.IsOverlapPoint(sketchPointer.Point) && sketchPointer.HitLayer == Level)
                    {
                        if (sketchPointer.State == Input.PointerState.Pressed)
                        {
                            OnSketchPointer = sketchPointer;
                            _StartPos       = OnSketchPointer.Point;
                            Pressed         = true;
                        }
                    }
                }
            }
            else
            {
                if (OnSketchPointer.State == Input.PointerState.Pressed)
                {
                    Delta = OnSketchPointer.Point - _StartPos;
                }
                else
                {
                    Pressed         = false;
                    OnSketchPointer = null;
                }
            }
        }
Esempio n. 2
0
        protected override void OnInstantiated()
        {
            base.OnInstantiated();
            var sketchInfo = SketchEngine.FindObjectByType <SketchInfo>();

            RectTransform      = new RectTransform(sketchInfo);
            SketchInputManager = SketchEngine.FindObjectByType <SketchInputManager>();
            SketchInputManager.PointerPressed  += SketchInputManager_PointerPressed;
            SketchInputManager.PointerMoved    += SketchInputManager_PointerMoved;
            SketchInputManager.PointerReleased += SketchInputManager_PointerReleased;
        }
Esempio n. 3
0
File: Sketch.cs Progetto: Daoting/dt
        public Sketch()
        {
            DefaultStyleKey = typeof(Sketch);

            _container      = new Canvas();
            _inputClerk     = new SketchInputManager(this);
            _selectionClerk = new SelectionManager(this);
            _linkClerk      = new SketchLinkManager(this);

            // 在andriod中,点击节点事件会无限触发SizeChanged事件。
            SizeChanged += OnSizeChanged;
        }
Esempio n. 4
0
        public SketchDesignPage()
        {
            this.InitializeComponent();
            InputManager inputManager = new InputManager(InputLayerRect);

            Sketch = new Sketch();
            Sketch.SkiaManager.Init(SKCanvasView.Invalidate, SKMatrix.MakeScale(1, -1));
            System.Diagnostics.Debug.WriteLine("MainPageThread:" + Thread.CurrentThread.ManagedThreadId);
            Sketch.Start();
            Sketch.SketchEngine.Instantiate <ExampleSketchObject>();
            Sketch.SketchEngine.Instantiate <GridRenderer>();
            Sketch.SketchEngine.Instantiate <PointerInfoBoard>();
            Sketch.SketchEngine.Instantiate <SketchBorderRenderer>();
            Sketch.SketchEngine.Instantiate <ComponentSelector>();


            sketchInputManager = Sketch.SketchEngine.Instantiate <SketchInputManager>();
            sketchInputManager.Init(inputManager);
            var joystick = Sketch.SketchEngine.Instantiate <ColorJoystick>();

            joystick.RectTransform.AnchorMax = new Vector2(1, 1);
            joystick.RectTransform.AnchorMin = new Vector2(0, 0);
            joystick.RectTransform.OffsetMax = new Vector2(-100, -100);
            joystick.RectTransform.OffsetMin = new Vector2(100, 100);
            joystick.Level = 1;

            var inputComponentBuilder = Sketch.SketchEngine.Instantiate <InputComponentBuilder>();

            inputComponentBuilder.RectTransform.AnchorMax = new Vector2(1, 1);
            inputComponentBuilder.RectTransform.AnchorMin = new Vector2(0, 0);
            inputComponentBuilder.RectTransform.OffsetMax = new Vector2(-100, -100);
            inputComponentBuilder.RectTransform.OffsetMin = new Vector2(100, 100);

            var joystick2 = Sketch.SketchEngine.Instantiate <ColorJoystick>();

            joystick2.RectTransform.AnchorMax = new Vector2(0, 0);
            joystick2.RectTransform.AnchorMin = new Vector2(0, 0);
            joystick2.RectTransform.OffsetMax = new Vector2(-10, -10);
            joystick2.RectTransform.OffsetMin = new Vector2(-2000, 2000);
            joystick2.Level = 2;
            //InputLayerRect.TransformMatrix;
            Matrix3x2 matrix = Matrix3x2.CreateScale(0.2f, -0.2f);

            sketchInputManager.InputSpaceToSketchSpaceMatrix = matrix;

            Sketch.SkiaManager.BeforePaint += SkiaManager_BeforePaint;
        }
        public SketchPage(IInputManager inputManager)
        {
            InitializeComponent();
            Sketch = new Sketch();
            Sketch.SkiaManager.Init(CanvasView.InvalidateSurface, SKMatrix.MakeScale(1, -1));
            Sketch.SketchInfo.OnUpdated += SketchInfo_OnUpdated;
            Sketch.SketchInfo.OnDraw    += SketchInfo_OnDraw;
            Sketch.SketchEngine.Instantiate <GridRenderer>();
            Sketch.SketchEngine.Instantiate <PointerInfoBoard>();
            Sketch.SkiaManager.BeforePaint += SkiaManager_BeforePaint;
            SketchInputManager              = Sketch.SketchEngine.Instantiate <SketchInputManager>();
            Sketch.Start();

            SketchInputManager.Init(inputManager);
            CanvasView.InvalidateSurface();
            Setup();
        }
        public MainPage()
        {
            this.InitializeComponent();
            InputManager inputManager = new InputManager(InputLayerRect);

            Sketch = new Sketch();
            Sketch.SkiaManager.Init(SKCanvasView.Invalidate, SKMatrix.MakeScale(1, -1));
            System.Diagnostics.Debug.WriteLine("MainPageThread:" + Thread.CurrentThread.ManagedThreadId);

            BluetoothManager = new BluetoothManager();

            ExampleSketchObject = Sketch.SketchEngine.Instantiate <ExampleSketchObject>();
            Sketch.SketchEngine.Instantiate <GridRenderer>();
            Sketch.SketchEngine.Instantiate <PointerInfoBoard>();
            Sketch.SketchEngine.Instantiate <SketchBorderRenderer>();
            sketchInputManager = Sketch.SketchEngine.Instantiate <SketchInputManager>();
            sketchInputManager.Init(inputManager);

            Sketch.Start();

            var joystick = Sketch.SketchEngine.Instantiate <ColorJoystick>();

            joystick.RectTransform.AnchorMax = new Vector2(0, 0);
            joystick.RectTransform.AnchorMin = new Vector2(0, 0);
            joystick.RectTransform.OffsetMax = new Vector2(-100, -100);
            joystick.RectTransform.OffsetMin = new Vector2(100, 100);
            joystick.Level = 3;

            var joystick2 = Sketch.SketchEngine.Instantiate <LineAreaJoystick <byte> >();

            joystick2.RectTransform.AnchorMax = new Vector2(0, 0);
            joystick2.RectTransform.AnchorMin = new Vector2(0, 0);
            joystick2.RectTransform.OffsetMax = new Vector2(-10, -10);
            joystick2.RectTransform.OffsetMin = new Vector2(-2000, 2000);
            joystick2.Level = 2;
            //InputLayerRect.TransformMatrix;
            Matrix3x2 matrix = Matrix3x2.CreateScale(0.2f, -0.2f);

            sketchInputManager.InputSpaceToSketchSpaceMatrix = matrix;
            Sketch.SkiaManager.BeforePaint += SkiaManager_BeforePaint;


            /*
             * var characteristicDict = new Dictionary<Guid, List<CharacteristicProfile>>();
             * characteristicDict.Add(KeyboardServiceWrapper.Guid, new List<CharacteristicProfile>()
             * {
             *  new CharacteristicProfile
             *  {
             *      Notified = true,
             *      Guid = Constants.KeyActionCharacteristicWrapper
             *  }
             * });
             * var serviceId = new List<Guid>
             * {
             *  GyroscopeRfcommServiceConnectionWrapper.RfcommServiceId
             * };
             * ConnectionProfile profile = new ConnectionProfile()
             * {
             *  RequiredCharacteristicGuids = characteristicDict,
             *  RequiredServiceGuids = serviceId
             * };
             *
             * TestJitterFixer.DataEmited += TestJitterFixer_DataEmited;
             * var dialog = new BleDeviceSelectorDialog(BluetoothManager, profile);
             * dialog.Closed += Dialog_Closed;
             * dialog.ShowAsync();
             */
        }
Esempio n. 7
0
        public MainPage()
        {
            InitializeComponent();
            //AbsoluteLayout.SetLayoutFlags(CanvasView, AbsoluteLayoutFlags.All);
            //AbsoluteLayout.SetLayoutBounds(CanvasView, new Rectangle(0, 0, 1, 1));
            var bluetoothManager        = DependencyService.Get <IManagerManager>().BluetoothManager;
            var deviceInfomationService = new DeviceInfomationServiceBuilder(bluetoothManager).Build();

            bluetoothManager.GattSever.AddService(new DeviceInfomationServiceBuilder(bluetoothManager).Build());
            //bluetoothManager.GattSever.AddService(new BatteryServiceWrapper(bluetoothManager).GattServerService);
            bluetoothManager.GattSever.AddService(new RfcommServerServiceWrapper(bluetoothManager).GattServerService);
            KeyboardServiceWrapper = new KeyboardServiceWrapper(bluetoothManager);
            bluetoothManager.GattSever.AddService(KeyboardServiceWrapper.GattServerService);
            bluetoothManager.GattSever.StartAdvertising();

            var createServiceProviderTask = bluetoothManager.CreateRfcommServiceProviderAsync(GyroscopeRfcommServiceConnectionWrapper.RfcommServiceId);

            createServiceProviderTask.Wait();
            var gyroRfcommServiceProvider = createServiceProviderTask.Result;

            gyroRfcommServiceProvider.OnConnectionReceived += GyroRfcommServiceProvider_OnConnectionReceived;
            gyroRfcommServiceProvider.StartAdvertising();
            Sketch = new Sketch();
            Sketch.SkiaManager.Init(CanvasView.InvalidateSurface, SKMatrix.MakeScale(1, -1));


            Sketch.SketchEngine.Instantiate <GridRenderer>();

            Sketch.SketchEngine.Instantiate <PointerInfoBoard>();
            Sketch.SkiaManager.BeforePaint += SkiaManager_BeforePaint;
            ManagerManager     = DependencyService.Get <IManagerManager>();
            SketchInputManager = Sketch.SketchEngine.Instantiate <SketchInputManager>();
            Sketch.Start();
            SketchInputManager.Init(ManagerManager.InputManager);

            /*
             * var joystick = Sketch.SketchEngine.Instantiate<ColorJoystick>();
             * joystick.RectTransform.AnchorMax = new Vector2(1, 1);
             * joystick.RectTransform.AnchorMin = new Vector2(0, 0);
             * joystick.RectTransform.OffsetMax = new Vector2(-800, -800);
             * joystick.RectTransform.OffsetMin = new Vector2(10, 10);
             * joystick.Level = 2;
             */

            var joystick2 = Sketch.SketchEngine.Instantiate <LineAreaJoystick <byte> >();

            joystick2.RectTransform.AnchorMax = new Vector2(0, 0);
            joystick2.RectTransform.AnchorMin = new Vector2(0, 0);
            joystick2.RectTransform.OffsetMax = new Vector2(600, 600);
            joystick2.RectTransform.OffsetMin = new Vector2(500, 500);
            joystick2.Level = 3;

            joystick2.AddArea(AreaJoystick <byte> .Area <byte> .CreateFromAngle((byte)VirtualKeyCode.VK_D, -60, 60, 0, float.PositiveInfinity));
            joystick2.AddArea(AreaJoystick <byte> .Area <byte> .CreateFromAngle((byte)VirtualKeyCode.VK_W, 30, 150, 0, float.PositiveInfinity));
            joystick2.AddArea(AreaJoystick <byte> .Area <byte> .CreateFromAngle((byte)VirtualKeyCode.VK_A, 120, 240, 0, float.PositiveInfinity));
            joystick2.AddArea(AreaJoystick <byte> .Area <byte> .CreateFromAngle((byte)VirtualKeyCode.VK_S, 210, 330, 0, float.PositiveInfinity));
            joystick2.AddArea(AreaJoystick <byte> .Area <byte> .CreateFromAngle((byte)VirtualKeyCode.LSHIFT, 0, 360, 0.7f, float.PositiveInfinity));
            joystick2.OnAreaStatusChanged += Joystick2_OnAreaStatusChanged;

            var keyboardButton = Sketch.SketchEngine.Instantiate <KeyboardKeyButton>();

            keyboardButton.RectTransform.AnchorMax = new Vector2(0, 0);
            keyboardButton.RectTransform.AnchorMin = new Vector2(0, 0);
            keyboardButton.RectTransform.OffsetMin = new Vector2(50, 50);
            keyboardButton.RectTransform.OffsetMax = new Vector2(150, 150);
            keyboardButton.Level = 2;
            ExampleSketchObject  = Sketch.SketchEngine.Instantiate <ExampleSketchObject>();
            Sketch.SketchEngine.Instantiate <SketchBorderRenderer>();
            Sketch.SketchEngine.Instantiate <RectTransformFrameRenderer>();

            CanvasView.InvalidateSurface();
            ExampleSketchObject.Position = new SKPoint(Sketch.Width / 2, Sketch.Height / 2);
            SensorSpeed speed = SensorSpeed.Game;

            Gyroscope.ReadingChanged += Gyroscope_ReadingChanged;
            Gyroscope.Start(speed);

            Device.StartTimer(TimeSpan.FromSeconds(1 / 60f), () => { CanvasView.InvalidateSurface(); return(!true); });
        }