我正在尝试在Tkinter中创建一个游戏,并且我想让While循环每秒仅运行x次。均匀分布。
我尝试将1除以X,然后使用时间模块等待该数量。但是它并没有每秒运行60次,只有50次。
def start(self):
Frame.__init__(self, self.master)
self.fpLength = 1 / self.fps
while True:
# Code here
time.sleep(self.fpLength)
我希望代码每秒运行60次。但它大约运行55。
答案 0 :(得分:0)
如果您是在线程中进行操作(请参阅我的评论),则可以尝试类似的操作
def start(self):
Frame.__init__(self, self.master)
# self.fpLength = 1 / self.fps
while True:
# Code here
clock = time.perf_counter() * 60 # measer time in 1/60 seconds
sleep = int(clock) + 1 - clock # time till the next 1/60
time.sleep(sleep/60)
当然,您可以在此处使用self.fps而不是常数60,我仅将其用于更清晰的注释。