コード例 #1
0
ファイル: MainWindow.xaml.cs プロジェクト: Dsalce/Robot
        private void load_window(object sender, RoutedEventArgs e)
        {
            //Esto es opcional pero ayuda a colocar el dispositivo Kinect a un cierto angulo de inclinacion, desde -27 a 27
            ArduinoPort          = new System.IO.Ports.SerialPort();
            ArduinoPort.PortName = "COM3";  //sustituir por vuestro
            ArduinoPort.BaudRate = 9600;
            ArduinoPort.Open();


            this.isGrip = false;
            //miKinect.Stop();


            this.miKinect = KinectSensor.KinectSensors[0]; //this.sensorChooser.sensor.Kinect;//
            miKinect.SkeletonStream.Enable();
            miKinect.ColorStream.Enable();
            this.miKinect.Start();
            miKinect.ElevationAngle = 15;
            this.miKinect.Stop();
            sensorChooser = new KinectChooser(this.kinectRegion, this.sensorChooserUi);


            // miKinect.ColorFrameReady += miKinect_ColorFrameReady;
            // miKinect.SkeletonFrameReady += miKinect_SkeletonFrameReady;
            // AsyncCallback callBack = new AsyncCallback(OnQuery);
            // KinectRegion.AddQueryInteractionStatusHandler(this.kinectRegion, OnQuery);
            miKinect.ColorFrameReady += miKinect_ColorFrameReady;
            Task t1 = Task.Run(() => KinectRegion.AddQueryInteractionStatusHandler(this.kinectRegion, OnQuery));
            Task t2 = Task.Run(() => miKinect.SkeletonFrameReady += miKinect_SkeletonFrameReady);
            // Task t3 = Task.Run(() =>this.dist.Text = ArduinoPort.ReadByte().ToString());
        }
コード例 #2
0
        /// <summary>
        /// Called to initialize the control when we are not in design mode.
        /// </summary>
        private void InitializeKinectThumb()
        {
            KinectRegion.AddHandPointerGotCaptureHandler(this, this.OnHandPointerCaptured);
            KinectRegion.AddQueryInteractionStatusHandler(this, this.OnQueryInteractionStatus);
            KinectRegion.AddHandPointerMoveHandler(this, this.OnHandPointerMove);
            KinectRegion.AddHandPointerGripReleaseHandler(this, this.OnHandPointerGripRelease);
            KinectRegion.AddHandPointerLostCaptureHandler(this, this.OnHandPointerLostCapture);

            KinectRegion.SetIsGripTarget(this, true);
        }
コード例 #3
0
        private void InitializeKinectButtonBase()
        {
            KinectRegion.AddHandPointerEnterHandler(this, this.OnHandPointerEnter);
            KinectRegion.AddHandPointerMoveHandler(this, this.OnHandPointerMove);

            KinectRegion.AddHandPointerGotCaptureHandler(this, this.OnHandPointerCaptured);
            KinectRegion.AddHandPointerLostCaptureHandler(this, this.OnHandPointerLostCapture);


            KinectRegion.AddHandPointerGripHandler(this, this.OnHandPointerGrip);
            KinectRegion.AddHandPointerGripReleaseHandler(this, this.OnHandPointerGripRelease);
            KinectRegion.AddQueryInteractionStatusHandler(this, this.OnQueryInteractionStatus);
        }
コード例 #4
0
        public DragDropElement()
        {
            lastGripState = GripState.Released;

            kinectRegionBinder = new KinectRegionBinder(this);
            kinectRegionBinder.OnKinectRegionChanged += OnKinectRegionChanged;

            KinectRegion.AddHandPointerEnterHandler(this, OnHandPointerEnter);
            KinectRegion.AddHandPointerMoveHandler(this, OnHandPointerMove);
            KinectRegion.AddHandPointerGotCaptureHandler(this, OnHandPointerCaptured);
            KinectRegion.AddHandPointerLostCaptureHandler(this, OnHandPointerLostCapture);
            KinectRegion.AddHandPointerGripHandler(this, OnHandPointerGrip);
            KinectRegion.AddHandPointerGripReleaseHandler(this, OnHandPointerGripRelease);
            KinectRegion.AddQueryInteractionStatusHandler(this, OnQueryInteractionStatus);
        }
コード例 #5
0
        private void createApplesAndTrees()
        {
            setAppleSize();

            Point rangeMin = new Point();
            Point rangeMax = new Point();

            Canvas[] tree = new Canvas[treesCount];
            myApple = new Apple[treesCount * applesOnTree];
            ImageBrush treeBg = new ImageBrush();

            treeBg.ImageSource = new BitmapImage(new Uri(@"../../../Graphics/ApplesGame/tree.png", UriKind.Relative));

            int appleCounter = 0;

            for (int i = 0; i < treesCount; i++)
            {
                tree[i]        = new Canvas();
                tree[i].Width  = (int)(windowWidth / treesCount * 0.5) * 1.5;//*1.7 - full screen of trees;
                tree[i].Height = (int)(windowHeight / 1.25);
                Canvas.SetTop(tree[i], 50);
                Canvas.SetLeft(tree[i], (i * tree[i].Width + 20));
                tree[i].Margin = new Thickness((i * 0.2 * tree[i].Width), 0, 20, 0);
                tree[i].Name   = "tree" + i;
                playfield.Children.Add(tree[i]);
                tree[i].Background = treeBg;

                setApplesArena(ref rangeMin, ref rangeMax);
                colorsCount = basketCount;

                for (int j = 0; j < applesOnTree; j++)
                {
                    myApple[appleCounter] = new Apple(rangeMin, rangeMax, appleSize, appleCounter, i, colorsCount);
                    var button = myApple[appleCounter].Figure;
                    button.Foreground = new SolidColorBrush(Colors.Transparent);
                    KinectRegion.AddQueryInteractionStatusHandler(button, OnQuery);
                    KinectRegion.AddHandPointerGripHandler(button, OnHandPointerGrip);
                    tree[i].Children.Add(button);
                    button.MouseEnter  += button_MouseEnter;
                    button.StylusEnter += button_StylusEnter;
                    button.MouseLeave  += button_MouseLeave;
                    button.StylusLeave += button_StylusLeave;
                    appleCounter++;
                }
            }
        }
コード例 #6
0
        /**
         * Evento que se genera al cargar la mainwindow
         */
        private void loadWindow(object sender, RoutedEventArgs e)
        {
            this.isGrip = false;



            this.miKinect = KinectSensor.KinectSensors[0]; //this.sensorChooser.sensor.Kinect;//
            miKinect.SkeletonStream.Enable();
            miKinect.ColorStream.Enable();
            this.miKinect.Start();
            miKinect.ElevationAngle = 15;
            this.miKinect.Stop();
            sensorChooser = new KinectChooser(this.kinectRegion, this.sensorChooserUi);



            miKinect.SkeletonFrameReady += miKinect_SkeletonFrameReady;
            Task t1 = Task.Run(() => KinectRegion.AddQueryInteractionStatusHandler(this.kinectRegion, OnQuery));
        }
コード例 #7
0
        private void OnHandPointerGrip(object sender, HandPointerEventArgs handPointerEventArgs)
        {
            var button = sender as KinectCircleButton;

            if (handPointerEventArgs.HandPointer.IsInGripInteraction == true)
            {
                int buttonContent;
                GripOverButton = true;
                KinectRegion.AddQueryInteractionStatusHandler(kinectRegion, OnQuery);
                KinectRegion.AddHandPointerGripReleaseHandler(kinectRegion, OnHandPointerGripRelase);

                var Tree = button.Parent as Canvas;
                Tree.Children.Remove(button);
                buttonContent = (int)button.Content;
                GripApple     = myApple[buttonContent];
                Tree.Children.Remove(myApple[buttonContent].Figure);
                Treenum = GripApple.TreeNumber;
                handPointerEventArgs.Handled = true;
            }
        }
コード例 #8
0
ファイル: Paint.xaml.cs プロジェクト: Dsalce/TMIKinect
        private void load_window(object sender, RoutedEventArgs e)
        {
            //Esto es opcional pero ayuda a colocar el dispositivo Kinect a un cierto angulo de inclinacion, desde -27 a 27
            this._sensor = KinectSensor.KinectSensors[0];
            this._sensor.Start();
            this.ang = 0;
            _sensor.ElevationAngle = 15;
            this._sensor.Stop();

            sensorChooser = new KinectChooser(this.kinectRegion, this.sensorChooserUi);



            pen  = new Pencils(this);
            col  = new Colors(this);
            size = new SizePaint(this);

            this.ctl = new Controlador();
            KinectRegion.AddHandPointerMoveHandler(this.paint, OnHandMove);
            KinectRegion.AddQueryInteractionStatusHandler(this.paint, OnQuery);
        }
コード例 #9
0
        private void OnHandPointerGripRelase(object sender, HandPointerEventArgs handPointerEventArgs)
        {
            if (handPointerEventArgs.HandPointer.IsInGripInteraction == false && GripOverButton == true)
            {
                bool  check = false;
                Point point = handPointerEventArgs.HandPointer.GetPosition(playfield);
                for (int i = 0; i < basketCount; i++)
                {
                    if ((point.X >= basket[i].Position.X) &&
                        (point.X <= basket[i].EndPosition.X) &&
                        (point.Y >= basket[i].Position.Y) &&
                        (point.Y <= basket[i].EndPosition.Y))
                    {
                        if (GripApple.Color == basket[i].Color)
                        {
                            handPointerEventArgs.Handled = true;
                            gameScore.collectSuccess();
                            check = true;
                        }
                    }
                }

                if (!check)
                {
                    handPointerEventArgs.Handled = true;
                    gameScore.collectFail();
                    check = false;
                    Apple MovingApple = new Apple(GripApple, point.X, point.Y);
                    playfield.Children.Add(MovingApple.Figure);
                    MoveTo(MovingApple, GripApple.Pos.X, GripApple.Pos.Y, point.X, point.Y);
                    KinectRegion.AddQueryInteractionStatusHandler(MovingApple.Figure, OnQuery);
                    KinectRegion.AddHandPointerGripHandler(MovingApple.Figure, OnHandPointerGrip);
                    handPointerEventArgs.Handled = true;
                }
            }
            GripOverButton = false;
        }
コード例 #10
0
        public void RegisterCallbackToSensor(KinectSensor sensor)
        {
            if (isRegisterAllFrameReady)
            {
                sensor.AllFramesReady += sensor_AllFramesReady;
            }
            else
            {
                sensor.SkeletonFrameReady += sensor_SkeletonFrameReady;
                sensor.DepthFrameReady    += sensor_DepthFrameReady;
                sensor.ColorFrameReady    += sensor_ColorFrameReady;
            }

            KinectRegion.AddHandPointerGotCaptureHandler(element, this.OnHandPointerCaptured);
            KinectRegion.AddHandPointerLostCaptureHandler(element, this.OnHandPointerLostCapture);
            KinectRegion.AddHandPointerEnterHandler(element, this.OnHandPointerEnter);
            KinectRegion.AddHandPointerMoveHandler(element, this.OnHandPointerMove);
            KinectRegion.AddHandPointerPressHandler(element, this.OnHandPointerPress);
            KinectRegion.AddHandPointerGripHandler(element, this.OnHandPointerGrip);
            KinectRegion.AddHandPointerGripReleaseHandler(element, this._onHandPointerGripRelease);
            KinectRegion.AddQueryInteractionStatusHandler(element, this.OnQueryInteractionStatus);
            KinectRegion.SetIsGripTarget(element, true);
            KinectState.Instance.KinectRegion.HandPointersUpdated += KinectRegion_HandPointersUpdated;
        }