0

我在不使用任何手势的情况下为 Kinect 创建了一个点击功能.. 它很简单而且可以工作.. 但是我希望该功能等待.. 我的计数器似乎没有工作.. 我想要做的是.. 如果我的手在按钮上让我们说超过 3 秒.. 然后返回 true .. 有什么方法可以做到吗?计数器似乎不起作用

  public bool KinectClick(int x,int y)
            {

                if ((x >= position.X && x <= position.X +position.Width) && (y >= position.Y && y <= position.Y + position.Height))
               {
                 //  time.Start();
                   int counter = 0;

                   while (true)
                   {
                       counter++;

                       if (counter >= 8000)
                       {
                           return true;
                           counter = 0;


                       }
                   }

               }
4

1 回答 1

1

我使用 DispatcherTimer 来完成你想要做的同样的事情。一个简单的表格可能看起来像这样:

private DispatcherTimer hitTestTimer = new DispatcherTimer();
private int timerCount = 5;

public MyConstructor() {
  hitTestTimer.Tick += OnHitTestTimerTick;
  hitTestTimer.Interval = new TimeSpan(0, 0, 1);
}

private void OnHitTestTimerTick(object sender, EventArgs e)
{
  if (timerCount > 1)
  {
    timerCount--;
  }
  else
  {
    // CLICK!
  }
}

您可以添加在您首次进入对象时切换的标志,并检查以验证自上次计时器滴答以来您是否(或尚未)离开该对象。

于 2012-10-04T19:21:24.290 回答