blog.furas.pl
# prywatne notatki - Python, Linux, Machine Learning, etc.

Liczenie czasu w PyGame za pomocą time.get_ticks()

W Pygame nie ma specjalnej funkcji do liczenia ile czasu minęło od jakiegoś wydarzenia. Wszelkie działania z czasem opierają się na funkcji pygame.time.get_ticks(), która podaje ilość milisekund (tyknięć) od wywołania pygame.init().

Nie da się tej liczby wyzerować więc podstawowym sposobem liczenia czasu jest odejmowanie

# kiedy zaczynasz grę
start = time.get_ticks()

# w trakcie gry
current = time.get_ticks()

# czas trwania gry - w milisekundach lub sekundach
milisekundy = current - start
sekundy = (current - start)/1000

Przykład klasy Timer wykorzystującej powyższy sposób

class Timer():

    def __init__(self):
        self._start = 0

    def start(self):
        self._start = pygame.time.get_ticks()

    def current(self):
        return (pygame.time.get_ticks() - self._start)/1000

Przykład użycia

import pygame

#-----------------------------------------------

class Timer():

    def __init__(self):
        self._start = 0

    def start(self):
        self._start = pygame.time.get_ticks()

    def current(self):
        return (pygame.time.get_ticks() - self._start)/1000

#-----------------------------------------------

pygame.init()

t = Timer()

t.start() # start timera

pygame.time.wait(3000) # dla testów

print t.current() # wypisanie sekund: 3

pygame.time.wait(2000) # for test only

print t.current() # wypisanie sekund: 5

t.start() # restart timera

pygame.time.wait(3000) # dla testów

print t.current() # wypisanie sekund: 3
Książki: python-dla-kazdego-podstawy-programowania python-wprowadzenie python-leksykon-kieszonkowy python-receptury python-programuj-szybko-i-wydajnie python-projekty-do-wykorzystania black-hat-python-jezyk-python-dla-hackerow-i-pentesterow efektywny-python-59-sposobow-na-lepszy-kod tdd-w-praktyce-niezawodny-kod-w-jezyku-python aplikacje-internetowe-z-django-najlepsze-receptury