2013-08-15 3 views
0

Так я пишу приложение XNA с помощью Kinect SDK и когда мои игры меняется от экрана игры на другой экран, я остановить с помощью KinectКак перезапустить Kinect

sensor.Stop(); 
sensor.Dispose(); 

И в то время как это делает работа у него есть значительное отставание и заставляет мою игру выглядеть невосприимчивой в течение как минимум 10 секунд. Затем после этого экрана снова вернусь к игровому экрану, но с разными настройками. Поэтому я использую

//set all my event handlers 
sensor.blahStream += myFunction; 
sensor.Start(); 

Это лучший способ перезапустить Kinect?

+0

Могу ли я спросить, почему вы перезапускаете Kinect? В чем причина его включения/выключения? –

+0

Чтобы удалить все настройки, которые я разместил на Kinect (скелетное сглаживание, обработчики событий и т. Д.), Чтобы я мог использовать его снова «с нуля», так сказать. – dudeofea

ответ

0

Просто пробормотал еще что-нибудь, помещая остановку на отдельном потоке, похоже, работает.

stopGameThread = new Thread(new ParameterizedThreadStart(stopGame)); 
stopGameThread.Start(); 

, что вызывает этот метод:

void stopGame(object sender) 
{ 
    gScreen.sensor.Stop(); 
    gScreen.sensor.Dispose(); 
    running = false; 
} 

gScreen является игровым экраном, содержащимся в этой игре экран обертке.

Если у кого-то есть лучшие ответы, не стесняйтесь публиковать их.