조금 늦었지만 아직 누구에게나 유용 할 수 있기를 바랍니다. pygame에서 프로그램의 FPS를 인쇄하면 윈도우를 드래그하거나 반올림 할 때 델타 시간이 매우 길어지는 것을 볼 수 있습니다.
델타 시간이 특정 값 이상일 때마다 메인 루프가 반환됩니다.
class MainProgram(object):
def __init__(self, many_variables):
# Much code here
self.clock = pygame.time.Clock()
self.dt = self.clock.tick(60)/1000
def mainloop(self):
while self.running == True:
self.dt = self.clock.tick(60)/1000
if self.dt >= 0.05
return
# Rest of the program is only executed, if delta-time is below 0.05 sec
내 FPS는 60으로 제한됩니다. 동시에 DT는 초 단위로 계산됩니다 (파이 게임은 밀리 초를 사용합니다!). 그것이 너무 높은 resp를 올리면. FPS가 너무 낮게 떨어지면 (0.05s = 20FPS 이상) 주 코드를 더 이상 실행하지 않습니다.
필요에 맞게 값을 조정할 수 있습니다. 나는 게임에 대해 프레임 한계에 도달 할 수없는 구형 기계 (예 : 25FPS에서 DT는 이미 0.04 초!)에서 프로그램을 실행할 수 있어야하므로 최대 0.05가 한계라는 것을 알아 냈습니다.
이것이 어떤 용도로 사용되었는지 알려주세요. :)
누군가가 창을 끌 때 대답을 찾지 않는 것처럼 보입니다. 이것은 누군가가 창을 끌고 그 일이 멈추게 할 때 일어나는 일을 알아 내야하는 것처럼 보입니다. 창을 끌 때 게임에 눈치 채지 않아야합니다. – user2357112
나는이 반응이 조금 늦었다는 것을 알고있다. 그러나 코멘트에 관해서는, 나는 동일한 효과를 알아 차렸고, 나는 코드가 계속해서 실행 되었기 때문에가 아니라, DeltaTime = clock.tick (30)을 사용하여 느린 컴퓨터를 조정했기 때문에 이것이 루핑이 늦어 지지만 클록이 지연되지 않으므로이 값이 훨씬 더 큰 비율로 증가합니다. 왜냐하면 나는 clock.tick (30) 1 여분의 시간으로 변수를 선언함으로써 값을 "낭비"했을 때, 이것은 멈 춥니 다. – user3011212