Pygame中Clock.tick()调用报错:Literal[1]无法赋值给self参数
修复Pygame中clock.tick()的类型错误
你的代码核心问题是没有正确实例化Clock对象:
# 错误写法:仅赋值了Clock类,未创建实例 clock = pygame.time.Clock
将代码修改为以下形式,给Clock加上括号完成实例化:
import pygame pygame.init() screen = pygame.display.set_mode((100,100)) # 正确:创建Clock类的实例 clock = pygame.time.Clock() running=True while running: for event in pygame.event.get(): if event.type == pygame.QUIT: running = False pygame.display.flip() clock.tick(1)
错误原因说明
pygame.time.Clock是一个类,必须通过Clock()创建实例后,才能调用它的tick()方法。原写法中clock指向的是类本身,调用clock.tick(1)时,Python会把参数1当作类方法的self参数传入,而tick()方法需要的是Clock对象作为self,这就导致了类型不匹配的报错。
内容的提问来源于stack exchange,提问作者Eshwar
相关产品推荐
相关产品推荐

