Python中的循环和if语句

2024-06-01 00:20:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个问题,我想去(通过增量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来关闭手部的原因)我可以关闭手部,但如果检测到碰撞,就无法让它停止。此方法分配给键盘按键。你知道吗

我猜逻辑是错的,对吧?你知道吗


Tags: to对象defcounter计数器手动this条件
1条回答
网友
1楼 · 发布于 2024-06-01 00:20:02

“collisionDetected”检查是否在此循环的并行线程上运行?否则,您将永远不会退出循环,因为collisionDetected的值将永远不会更新。是这样吗?你知道吗

另请注意:

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

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

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

相关问题 更多 >