我正在尝试使用Leap Motion让我的代码在0到255之间向上滚动(因此打印:1,然后是2,然后是cw圆上的3和acw圆上的3,2,1)。 / p>
手势的动作驻留在void onFrame()方法中。
每次检测到圆形手势时我都需要增加一个数字并输出每个数字。就目前而言,我的代码在背景中进行递增,并且只在我输入图形时计数(因此我的计数图形显示在第二个提示中)。这很糟糕,因为用户实际上无法看到他们提交给阈值提示的号码。
请帮助,我对此很新,这会减慢我的项目速度!
我提供了精简版课程,以突出问题所在。
听众课程:
public class ImageJListener extends Listener {
public Robot robot;
public int promptValue;
// potentially look into atomic objects and non atomic objects in case this has a threading issue
public ImageJListener() {
this.promptValue = 0;
}
public int getPromptValue() {
return this.promptValue;
}
...
public int onFrame(Controller controller) {
com.leapmotion.leap.Frame frame = controller.frame();
for (Gesture gesture : frame.gestures()) {
if (gesture.type() == Type.TYPE_CIRCLE) {
CircleGesture circle = new CircleGesture(gesture);
if (circle.pointable().direction().angleTo(circle.normal()) <= Math.PI / 4) {
promptValue++;
return promptValue;
} else {
promptValue--;
return promptValue;
}
} else if (gesture.type() == Type.TYPE_KEY_TAP) {
KeyTapGesture Tap;
Tap = new KeyTapGesture(gesture);
try {
Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_ENTER);
robot.keyRelease(KeyEvent.VK_ENTER);
} catch (AWTException awt) {
}
}
}
}
}
插件类(调用promptValue变量来填充提示符:
IJ.setRawThreshold(imp, IJ.getNumber("prompt", (listener.getPromptValue())), IJ.getNumber("prompt", (listener.getPromptValue())), null);
非常感谢,
赖安
答案 0 :(得分:0)
从OnFrame()返回一个值无济于事。 OnFrame由Leap Motion代码调用,即使您可以提供,也不会对该值执行任何操作。你需要的是一个改变提示值的功能 - 如果可能的话。然后OnFrame可以调用该函数。