在Python中循环和if语句

时间:2013-07-11 16:52:49

标签: python if-statement for-loop nested logic

我有一个问题是,如果外部条件(自动被推测)为假,我想要(从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关闭手的原因)我可以关闭手但是如果检测到碰撞则不能让它停止。此方法分配给按键盘按钮。

我猜这个逻辑错了,对吧?

1 个答案:

答案 0 :(得分:1)

检查'collisionDetected'是否在并行线程上运行到此循环?如果不是,您将永远不会退出循环,因为collisionDetected的值永远不会更新。是这样的吗?

另请注意:

您可能希望更改for循环以使其更像这样以使代码更清晰:

for counter in range(0,1,0.01):
   ...

这将减少在循环中设置计数器的需要。