簡體   English   中英

如何在不滿足特定條件時使用鍵盤打破循環? 一個循環中的兩個條件

[英]How to use the keyboard to break a loop when a certain condition is not met? Two conditions in one loop

我正在嘗試使用 python 代碼根據提供給項目的圖像來操作游戲。 問題是,每次我嘗試設置一個鍵來停止或打破一個已經定義了可能結束的循環(例如,當游戲中發生某些事情時),它永遠不會打破循環。 相反,第一個條件是唯一可以打破它的條件。

我根據我看過的一些教程在 PyCharm 上啟動了這個項目。 我觀看的其中一個教程是為了了解該做什么的基礎,在頻道上有特色:“Indently”。 但我仍然沒有任何提示這個問題。 這里是:


    # if the bot sees lava or the user press the keybind, he'll stop.
    if locate_lava() or keyboard.is_pressed('p'):
        break
    else:
        move_character('w', 2, 'attack')
        locate_mobs()



我在 stack overflow: Break a loop when pressing a key中看到過類似的問題,但沒有一個答案真正有幫助。 很抱歉對 Python 或英語的任何不尊重,我不擅長這兩種語言。

最初,作為 Lua 代碼的用戶和 Python 的初學者,嘗試了一堆 Python 庫的代碼(因為我真的不知道發生了什么)。 最后,我在這個項目中的嘗試都沒有成功。

不太確定為什么您的代碼不起作用,它應該。 您是否導入了鍵盤(並使用 pip 安裝)?

諾曼在這里的回答可能對你有幫助: https://stackoverflow.com/a/57644349/18505884

一種方法:

import keyboard

while True:
    if keyboard.read_key() == "p" or locate_lava():
        print("You pressed p or found lava")
        break
    else:
        move_character('w', 2, 'attack')
        locate_mobs()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM