Python 3.4:检查某些输入短语,同时仍能运行def

时间:2015-08-24 08:07:24

标签: python python-3.x input phrase

在一个基于文本的简单游戏中,我正在使用Python 3.4.2,我有兴趣添加一个选项菜单。为此,我希望用户可以随时在聊天中输入“选项”,然后会弹出一个选项菜单。我一直在阅读类似的问题,但一直无法找到适合我的游戏的任何东西,其中一切都在各种Def中发生,没有同时发表声明。

提前致谢!

编辑:抱歉没有足够的信息。以下是我的代码片段:

import time
SetTimes=0

#Scrolling Up
def Entering(SetTimes):
    if SetTimes>=1:
        time.sleep(0.1)
        print("\n")
        SetTimes-=1
        Entering(SetTimes)
    else:
        return


#Intro Developers
def Intro(SetTimes):
    print("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n")
    print("blah blah blah")
    time.sleep(0.1)
    print("blah blah blah")
    time.sleep(0.1)
    print("blah blah blah")
    SetTimes=12
    Entering(SetTimes)
    SetTimes=2
    time.sleep(2)
    print("\n")
    Entering(SetTimes)
    Intro2(SetTimes)

基本上,我想要完成的是图形游戏,但图形是使用Ascii完成的。 Entering(SetTimes)def用于为开场场景制作滚动效果,类似于旧游戏。游戏将在玩家在指定时间输入命令的情况下进行。例如,它可能显示为“左侧和右侧似乎有路径”,用户可以输入“左”或“右”,但仅限于指定的时刻。

我要问的是,是否有可能让它不断检查您输入“选项”,同时不会冻结游戏。

1 个答案:

答案 0 :(得分:2)

当您需要用户输入时,您需要检查用户输入。没有办法解决这个问题。

1)重组代码

您可能应该使用一些while语句。通常代码类似于:

init_everything()
while running:
    handle_input()
    update_everything()
    draw_everything() # or print or whatever
    if game_over():
        running = False

# display score or something

2)使用多线程

不要这样做。你可以使用两个线程 - 一个运行游戏,一个检查输入。但是不要这样做。看起来你是Python /游戏开发/编程的新手,这将太复杂和困难。

3)使用一些库

不要自己做所有事情。不要重新发明轮子。对于非常简单的事情来说,这可能有点过头了,但你可以从一些图书馆中获益。 Pygame非常棒。

结论

1)是最简单的,可能是你的情况。从长远来看, 3)是最好的。不要使用 2)