If语句只循环

2024-04-20 13:17:26 发布

您现在位置:Python中文网/ 问答频道 /正文

嗨,我的if语句在pygame中只执行一次,然后在执行之后它们就不再工作了。。。以下是我的一些菜单代码(简单的按键):

    if event.type == pygame.KEYDOWN:
        if event.key == pygame.K_SPACE:
            import game
        if event.key == pygame.K_i:
            import Instructions
        if event.key == pygame.K_c:
            import controls

下面是我的一些主要游戏代码(再次按键):

^{pr2}$

好吧,现在假设我在菜单中按空格键启动(它工作得很好),它会转到游戏模块然后开始游戏,如果我手动打开游戏模块(不是按空格键),按escape键,不过,如果我按空格键,然后按escape键返回菜单,它也能正常工作,所以只有当我直接打开游戏模块时,它才会工作。同时,工作按键只工作一次,而且只工作一次,所以如果我从菜单中按空格键,然后退出,然后再按空格键,它只会停留在菜单上,那么我该如何使这些“如果”循环无限大呢


Tags: 模块key代码importevent游戏iftype
1条回答
网友
1楼 · 发布于 2024-04-20 13:17:26

我认为您混淆了import语句的目的。一个import被设计成“加载”一个python脚本。你不应该用它来运行另一个python文件中的所有代码。在

例如,假设你游戏.py文件如下所示:

a = 'Test'
print 'Running...'

那么,你的主.py文件如下所示:

^{pr2}$

当你跑的时候主.py,第一个import发生。这将导致game模块被加载。这意味着运行game.py脚本,并且其中定义的所有变量/函数/etc都在game模块中定义。在

想想你是如何使用pygame的。您使用了import pygame行。这里的目标不是“运行”pygame脚本,而是让自己能够访问pygame模块中的内容。在

您要做的是在游戏.py文件:

def run():
    print 'Running...'

要使打印多次发生,可以从中调用run()函数主.py多次。。。在

import game

game.run()
game.run()
game.run()

这将导致您在game.py文件(也称为game模块)的run()函数中定义的代码多次运行。在

相关问题 更多 >