Обнаружение игрока Kinect

Привет всем, у меня есть следующий блок кода

using (SkeletonFrame skeletonFrame = e.OpenSkeletonFrame())
{
    if (skeletonFrame != null)
    {
        Skeleton[] skeletons = new Skeleton[skeletonFrame.SkeletonArrayLength];
        skeletonFrame.CopySkeletonDataTo(skeletons);
        foreach (Skeleton skeleton in skeletons)
        {
            if (skeleton.TrackingState == SkeletonTrackingState.Tracked)
            {
                //DoSomething();
            }
            else if (skeleton.TrackingState == SkeletonTrackingState.NotTracked)
            {
                //DoSomethingElse();
            }
        } 
    }
}

Мой план состоит в том, чтобы вызвать метод, который говорит, что игрок обнаружен, когда игрок отслеживается. И наоборот, когда никто не отслеживается. По сути, использую Kinect для детектора движения (только человек, которого я знаю). Но, как оказалось, этот цикл не работает правильно для меня. С помощью отладчика я вижу, что я попал внутрь DoSomething(); Но вот где его застряли и продолжает повторять то же сообщение, что DoSomething() должен делать, даже когда игрок уходит. Есть идеи, почему это происходит и как это сделать?

0 ответов

Другие вопросы по тегам