繁体   English   中英

pygame.QUIT() - TypeError: 'int' object 不可调用

[英]pygame.QUIT() - TypeError: 'int' object is not callable

我是 python 的新手。我正在为一个简单的外星人入侵游戏编写代码,但出现此错误。

import sys
import pygame
from settings import Settings
from ship import Ship
import game_functions as gf

def run_game():
    pygame.init()
    ai_settings = Settings()
    screen = pygame.display.set_mode((ai_settings.screen_width, ai_settings.screen_height))
    pygame.display.set_caption("Game")
    ship = Ship(screen)
    bg_color = (230, 230, 230)

    while True:
        gf.check_events(ship)
        ship.update()
        gf.update_screen(ai_settings, screen, ship)
        for event in pygame.event.get():
            if event.type==pygame.QUIT():
                sys.exit()
        screen.fill(ai_settings.bg_color)
        ship.blitme()
        pygame.display.flip()
run_game()

我知道我不小心调用了一些 integer 值,但我不知道哪里出错了。

我也检查了这些行

文件“C:/Users/Areeb Irfan/.PyCharmCE2018.3/config/scratches/AlienGame.py”,第 25 行,在 run_game() 中
文件“C:/Users/Areeb Irfan/.PyCharmCE2018.3/config/scratches/AlienGame.py”,第 16 行,在 run_game gf.check_events(ship)
文件“C:\Users\Areeb Irfan.PyCharmCE2018.3\config\scratches\game_functions.py”,第 5 行,在 check_events if event.type==pygame.QUIT() 中:
TypeError: 'int' object 不可调用

如错误消息中所示,此行event.type==pygame.QUIT()是问题所在。 错误TypeError: 'int' object is not callable意味着您正在尝试调用一个int,这意味着您试图将一个int视为一个函数,这又意味着您在int值后有括号() pygame.QUIT在该行中唯一带有括号的pygame.QUIT ,因此只需删除括号即可:

if event.type==pygame.QUIT:

要解决此问题,请删除 pygame.QUIT 中的括号 ()。 摆脱它们,然后再次运行代码。 它应该可以工作,只要您在其他地方没有相同的“如果”。

您的代码中存在缺陷。 你写成:

if event.type == pygame.QUIT():
        quit()

最好尝试使用此代码:

if event.type == pygame.QUIT():
        quit()

(或者)

if event.type == pygame.QUIT():
        sys.exit()

发生这种情况是因为 pygame.QUIT 是一个 integer 数据。 Integer 数据后面没有括号。 但是用括号将它括起来会使它成为错误的 function。 希望这对你有帮助!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM