我有一个问题是,如果外部条件(自动被推测)为假,我想要(从0.01增加)从0到1(该位很容易),如果条件是,则停止计数器真。
条件是两个物体之间是否发生碰撞。我知道这部分工作正常,因为我已经手动测试并在循环内。但是,如果发生碰撞,停止计数器将证明是棘手的。我确信这是非常简单的,我错过了。
def autoHandClose():
global collisionDeteched # this is set to false but on collision correctly changes to true
counter = 0
for x in range(100):
if collisionDeteched == False:
counter = counter + 0.01
h.setGesture(hand.GESTURE_FIST, closeThumb=True, weight = counter)
else:
break
权重参数从0到1(因此我想从0到1关闭手的原因)我可以关闭手但是如果检测到碰撞则不能让它停止。此方法分配给按键盘按钮。
我猜这个逻辑错了,对吧?
答案 0 :(得分:1)
检查'collisionDetected'是否在并行线程上运行到此循环?如果不是,您将永远不会退出循环,因为collisionDetected的值永远不会更新。是这样的吗?
另请注意:
您可能希望更改for循环以使其更像这样以使代码更清晰:
for counter in range(0,1,0.01):
...
这将减少在循环中设置计数器的需要。