首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Leap运动控制器setTimeout Javascript评分不准确?

Leap运动控制器setTimeout Javascript评分不准确?
EN

Stack Overflow用户
提问于 2014-04-13 11:56:04
回答 1查看 103关注 0票数 0

我尝试过无数种方法去尝试,但没有成功!在现有的代码中,当用户在跳跃运动控制器上盘旋5指时,5秒后,计数器将开始连续计数,直到达到169或更多,我希望它能加到1。我试图让用户在跳跃运动上盘旋10次,所以每次用户做练习时,它会将1加1/ 10,然后再加2/ 10等等。但当用户做了一次,我得到169 / 10!有没有人对此有任何建议,或能为我指出正确的方向?这是一个大学项目,我觉得我的深度在这里!我已经包括了所有的代码:

代码语言:javascript
复制
//Set up the controller
var controller = new Leap.Controller();
var isCounting = false;
controller.on( 'frame' , function(frame){
  c.clearRect(0, 0, width, height);
  var numberOfFingers = frame.fingers.length;
  c.font = "200px Arial";
  c.fillStyle = '#3e8a41';
  c.textAlign = 'center';
  c.textBaseline = 'middle';
  c.fillText( numberOfFingers , width/2 , height/2 );

  if(numberOfFingers == 5 && !isCounting) {
    isCounting = true;
    setTimeout(function(){
      isCountring = false;
      if(numberOfFingers == 5){ //5 fingers still after 5s
        var start = parseInt(document.getElementById('count').innerHTML);
        var end = start+1;
        document.getElementById('count').innerHTML = end;
        }
      }, 5*1000); //your 5s
    }
});


controller.connect();
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-14 13:36:46

我认为问题在于frame已经运行得非常快,所以您创建了大量的setTimeouts,并且每个setTimeouts都为您的值增加了1。我建议你设置一个旗子来跟踪你正在做的事情:

代码语言:javascript
复制
var isCounting = false;
controller.on( 'frame' , function(frame){
    c.clearRect(0, 0, width, height);
    var numberOfFingers = frame.fingers.length;

    if(numberOfFingers == 5 && !isCounting) {
        isCounting = true;
        setTimeout(function(){
            isCountring = false;
            if(numberOfFingers == 5){ //5 fingers still after 5s
                var start = parseInt(document.getElementById('count').innerHTML);
                var end = start+1;
                document.getElementById('count').innerHTML = end;
            }
        }, 5*1000); //your 5s 
     }
});

我没有一个飞跃,所以我不能确定100%,但这是值得一试。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23042444

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档