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; } } }
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; }
public Sketch() { DefaultStyleKey = typeof(Sketch); _container = new Canvas(); _inputClerk = new SketchInputManager(this); _selectionClerk = new SelectionManager(this); _linkClerk = new SketchLinkManager(this); // 在andriod中,点击节点事件会无限触发SizeChanged事件。 SizeChanged += OnSizeChanged; }
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(); */ }
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); }); }