微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何处理while循环中的if语句 - Python

如何解决如何处理while循环中的if语句 - Python

我正在为我自己的游戏创建一个游戏机器人,在这个(附图在下面)游戏中,这个棒子会随机转身然后转身离开。同时,如果他的话,我可以使用点击按钮来偷他的钱当你点击按钮时,游戏就会结束。

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

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


    import keyboard
    import pyautogui
    
    while not keyboard.is_pressed('q'):
        if pyautogui.pixel(687,144)[0] != 255:
            print("Looking at you")
            pyautogui.click(681,662)
        else:
            print("Not looking at you")
            pyautogui.click(681,662)

我用以下方式尝试了带有 bool 变量的 on 脚本,但是一旦这些变量变成了 看着你 不看着你,它只会一次工作false 之后程序无法运行。


    import keyboard
    import pyautogui
    
    
    boolval1=True
    boolval2=True
    
    while not keyboard.is_pressed('q'):
        if pyautogui.pixel(687,144)[0] != 255:
            if boolval1:
                print("Looking at you")
                pyautogui.click(681,662)
                boolval1 = False
        else:
            if boolval2:
                print("Not looking at you")
                pyautogui.click(681,662)
                boolval2 = False

有没有办法每次这个火柴人转身离开时我只能点击一次??

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

enter image description here

解决方法

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

while True:
    # do stuff with is pressed and clicks

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。