【问题标题】:How to handle if statement inside a while loop - Python如何在while循环中处理if语句 - Python
【发布时间】:2021-08-05 17:47:57
【问题描述】:

我正在为我自己的游戏创建一个游戏机器人,在这个(附图在下面)游戏中,这个火柴人随机转身并转身离开。与此同时,如果他可以使用点击按钮窃取他的钱当你点击按钮时转身,游戏就结束了。

我要执行的是,使用 pyautogui 库获取其前额的 x,y 值和 RGB 的像素 R 值,如果它匹配其前额的 R 值,我将执行鼠标点击。如果没有也一样。

我遇到的问题是,当我尝试运行以下脚本时,它运行良好,但鼠标点击事件被触发了不止一次。

导入键盘 导入pyautogui 虽然不是keyboard.is_pressed('q'): 如果 pyautogui.pixel(687, 144)[0] != 255: print("看着你") pyautogui.click(681, 662) 别的: print("不看你") pyautogui.click(681,662)

我以以下方式尝试了带有 bool 变量的 on 脚本,但一旦这些变量变为false 之后程序无法运行。

导入键盘 导入pyautogui boolval1=真 boolval2=真 虽然不是keyboard.is_pressed('q'): 如果 pyautogui.pixel(687, 144)[0] != 255: 如果 boolval1: print("看着你") pyautogui.click(681, 662) boolval1 = 假 别的: 如果 boolval2: print("不看你") pyautogui.click(681,662) boolval2 = 假

每次这个火柴人转身离开时我只能单击一下吗??

这里我附上了游戏的草图以得到一个简短的想法

【问题讨论】:

    标签: python if-statement while-loop pyautogui


    【解决方案1】:
    a = 真 虽然不是keyboard.is_pressed('q'): b = 假 如果 pyautogui.pixel(687, 144)[0] == 255: b = 真 如果 b != a: 打印(“点击”) a = b

    我能够找到答案,这可能会节省时间

    【讨论】:

      【解决方案2】:

      您是否尝试过将代码包装在无限循环中

      while True:
          # do stuff with is pressed and clicks
      
      

      只是一个建议,但我认为你应该查看 MVC 设计模式, 之后这将是一团糟:

              if pyautogui.pixel(687, 144)[0] != 255:
      

      【讨论】:

      • 我不处理任何数据交换来使用 MVC,而 True: 是我在使用时使用的
      猜你喜欢
      • 2022-09-23
      • 1970-01-01
      • 2016-10-30
      • 2015-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-09
      相关资源
      最近更新 更多