2014-07-15 2 views
3

나는 경과 시간에 크게 의존하는 게임을 만들고 있습니다. 현재 구현은 pygame.time.get_ticks()를 기반으로하며 매우 간단하고 쉽습니다. 여기에 작은 예가 나와 있습니다.Pygame과 Pickle로 이전 경과 시간 로딩

if event.type == DISPTIMER: 
     time = int(pygame.time.get_ticks()/1000) 
     timeObj = buttonFont.render(str(time) + ' seconds since start', False, black) 
     windowSurfaceObj.blit(timeObj, (450, 50)) 

그러나 나는 이것을 산란시키는 방법을 잘 모릅니다. 파이 게임 설명서를 모두 살펴 보았고 파이 게임의 시간 모듈에 쓸 방법이 없었습니다. 나는 시계를 사용할 수는 있지만, 시계의 값을 재설정하지 않고 읽을 수는 없으므로 내 용도에 적합하지 않습니다.

다루기 힘든 해결 방법없이이 작업을 수행 할 수있는 방법이 있습니까?

+2

PyGame에서 시간을 덮어 쓸 수 없습니다. – furas

+1

저장 한 시간을 pickle하고'get_ticks()'에 의해 반환 된 시간에 추가 할 필요가있을 것입니다. 그러나 그것은 "다루기 힘든 해결 방안"범주에 속할 수도 있습니다. – dano

+0

네, 생각했습니다. 나는 내가 찾고있는 것이 pygame의 시간 이외에 다른 것을 사용할 수 있는지에 대한 것이고, pygame의 시간은 좋지만 절임되고로드 될 수있는 작업에 적합하다고 생각한다. 편집 : Dano, 가능성이있는 후보로 보입니다. 아마 여분의 라인과 변수만으로이 작업을 할 수 있습니다. –

답변

1

좋아, 내가 뭘 하려는지 알았어.

내가 잘못하지 않았다면 게임을 시작한 후로 진드기를로드하고 저장할 수 있기를 원합니다. 이를 위해 pygame.time.Clockpassed_ticks을 저장할 추가 변수를 사용할 수 있습니다.

passed_ticks = 0 
clock = pygame.time.Clock() 

# somewhere in your main loop 
passed_ticks += clock.tick() 

# printing becomes 
if event.type == DISPTIMER: 
    time = int(passed_ticks/1000) 
    timeObj = buttonFont.render(str(time) + ' seconds since start', False, black) 
    windowSurfaceObj.blit(timeObj, (450, 50)) 

이제 저장하고 passed_ticks 변수 언제든지로드 할 수 있습니다 : 여기

은 예입니다.

+0

나는 dano의 제안처럼 더 많은 일을했다. time = int ((pygame.time.get_ticks() + savedTime)/1000). 하지만 고마워! –