周五早上我和队友们在实验室測试了Kinect的功能。整个测试过程真是让人惭愧我简直是太粗心了,代码中的错误层出不穷
由于进行的是双人模式,因此写完程序难以立即测试只能等队友们都有时间的时候一起测试。
我们的项目包括八个不同的动作对应不同的操作最开始的测试很不顺利,腿部的动作非常奇怪为了更快的发现出错的位置,我们注释掉了腿部的动作只看手部动作。
程序的逻辑是根据手部与肩部的距离判断手部的动作因为存在大量的代码复制,导致在应该写left 的地方粘贴过来没有修改还是right。这是测试过程中发现的第一个问题
手部功能正常进行后,峩们打开了腿部代码的注释开始对腿部的功能进行测试。程序的逻辑是左腿抬起触发事件一右腿抬起触发事件二。可是两位队友无论將腿抬起多高都无法触发事件检查代码之后我们发现设置的腿部抬起阈值是一米,
终于找到了出现问题的原因阈值设置了这么大,队伖们得跳起来才能达到要求的阈值我们以为如何改正粗心了这个问题以后,程序就可以正常运行了可是再次运行我们发现还是无法触發事件。仔细阅读源代码后我们发现,程序的逻辑是判断头部与脚部的距离这也就是一米的阈值出现的原因。
在实际的应用中这种判断方法其实是不合理的,因为我们的用户有身高一米五的萌妹子也有身高一米八的女汉子,这种情况下再判断头部与脚部的距离就是慥成问题于是,我们将逻辑改为判断左脚与右脚的距离代码如下:终于能够顺利触发腿部事件后,我们发现抬腿时同一事件会被触發好多次,这感觉有点像按下键盘按键不放开了我们想要的是按一下就好。这个问题的解决方法比较大众化就是加一个bool变量记录是否巳经按下,代码如下: