weiekko 发表于 2020-12-17 21:58

一个while无限循环中两个并列的if如何让他们同时运行


while True:
    button.Update()
    if button.A_wasPressed :
      led.white = 1
    button.Update()
    if button.B_wasPressed :
      c = 0

比如这一小段代码
当程序运行到if button A时我按下了button B
这时c=0并不会运行
怎么解决它

weiekko 发表于 2020-12-17 22:12

brightwill 发表于 2020-12-17 22:10
while True:
   
    if button.A_wasPressed :


我把B改成了elif,就可以了
button update是更新按钮状态
谢谢啦

weiekko 发表于 2020-12-17 21:59

求解决,实在不行俺去发悬赏

brightwill 发表于 2020-12-17 22:03

while True:
    button.Update()
    if button.A_wasPressed :
      led.white = 1
         if button.B_wasPressed :
             c = 0
    button.Update()
    if button.B_wasPressed :
      c = 0
这样不行?

weiekko 发表于 2020-12-17 22:05

brightwill 发表于 2020-12-17 22:03
while True:
    button.Update()
    if button.A_wasPressed :


我试试
尝试一下

weiekko 发表于 2020-12-17 22:07

brightwill 发表于 2020-12-17 22:03
while True:
    button.Update()
    if button.A_wasPressed :


还是不行,按钮按好几下才亮

brightwill 发表于 2020-12-17 22:10

while True:
   
    if button.A_wasPressed :
      led.white = 1
    if button.B_wasPressed :
      c = 0
    button.Update()
试试? 另外button.Update()这个是干嘛的

cdj68765 发表于 2020-12-17 22:11

设置一个局部变量类型来收集全部按钮选择,在所有button按钮事件过后通过这个局部变量的值来选择执行什么内容
A和B按钮只影响这个局部变量的值而不影响C的值
我用C#写一个例子给你看
while (true)
            {
                int Temp = -1;
                if (Button.A)
                  Temp += 1;
                if (Button.B)
                  Temp += 2;
                switch (Temp)
                {
                  case 0:
                        led.white = 1;
                        break;
                  case 1:
                        c = 0;
                        break;
                  case 2:
                        led.white = 1;
                        c = 0;
                        break;
                }
            }

AsktaoMS 发表于 2020-12-17 22:26

其实,我看到当有两个以上需要同时以不同事件触发的方式激活的时候,我第一个想到的注册一个监听器。楼主可以查一下监听器的原理。 代码逼格会上升很多哈哈哈

lvcaolhx 发表于 2020-12-18 07:58

程序在不断的调试中成功
页: [1] 2
查看完整版本: 一个while无限循环中两个并列的if如何让他们同时运行