使用Pygame调用tick方法时出现TypeError报错的问题求助
问题解决:Pygame中
pygame.time.Clock.tick()调用报错 错误原因
pygame.time.Clock.tick()是实例方法,不能直接通过类名调用,必须先创建Clock类的实例对象,再通过实例调用tick()方法。你直接用类名调用时,把整数40当成了实例参数传入,从而触发类型错误。
修正后的代码
import pygame, sys from pygame.locals import QUIT pygame.init() DISPLAYSURF = pygame.display.set_mode((400, 300)) pygame.display.set_caption('Warrior Pre-1.0') pos = 0 # 创建Clock类的实例 clock = pygame.time.Clock() while True: DISPLAYSURF.fill("red") #pygame.draw.rect(rect()) for event in pygame.event.get(): if event.type == QUIT: pygame.quit() sys.exit() pygame.display.update() # 通过实例调用tick方法控制帧率 clock.tick(40)
关键说明
- 先执行
clock = pygame.time.Clock()创建时钟实例,该实例会负责跟踪时间流逝。 - 循环末尾的
clock.tick(40)作用是限制游戏帧率,确保每秒最多运行40帧,避免游戏因硬件性能过高而运行过快。
内容的提问来源于stack exchange,提问作者William Dent
相关产品推荐
相关产品推荐

