[英]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.