Pygame按键后不退出

1 投票
1 回答
1290 浏览
提问于 2025-04-18 07:51

我一直在跟着一个弹球的例子练习,想熟悉一下pygame这个库。每次测试我的代码时,我都得强制关闭游戏窗口,因为它会卡住。不过在我的代码里(我直接从pygame官网上复制的),我有写明如果按下Esc键或者点击屏幕上的X按钮,游戏应该退出。可是我却遇到了一个错误。

    running == False
NameError: name 'running' is not defined

我的代码是

   while 1:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running == False
        if event.type ==pygame.KEYDOWN and event.key == pygame.K_ESCAPE:
            running == False

我能不能定义一个“运行中”的状态,这样在我尝试退出时,游戏就不会直接卡住了?

1 个回答

2

首先,你需要在你的循环之前把运行状态设置为真,也就是写成 running = True。其次,你应该在某个地方检查这个值;最简单的方法是把 while 1 改成 while running。第三,双等号(==)是用来检查两个东西是否相等,而单等号(=)是用来给一个变量赋值的。你想要检查事件类型是否是 pygame.QUIT 或 KEYDOWN,所以那些双等号是对的,但接下来你要把运行状态设置为假,这就写成 running = False。用 running == False 这样的写法是没效果的。

撰写回答