1

所以我正在使用 Kinect SDK 编写一个 XNA 应用程序,当我的游戏从游戏屏幕切换到另一个屏幕时,我通过使用停止 Kinect

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

虽然它确实有效,但它有相当大的延迟,让我的游戏看起来至少有 10 秒没有响应。然后在那个屏幕之后,我再次回到游戏屏幕,但设置不同。所以我用

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

这是重新启动 Kinect 的最佳方式吗?

4

1 回答 1

1

只是摆弄了一些,把停止放在一个单独的线程上似乎有效。

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

调用此方法:

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

gScreen是包含在此游戏屏幕包装中的游戏屏幕。

如果有人有更好的答案,请随时发布。

于 2013-08-15T19:11:24.547 回答