Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/pilas/fps.py
blob: 943ae6a380cc36f4b353470d312b5ec74e08b43b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#import pygame
import time
import pygame

class ___FPS:

    def __init__(self, fps, usar_modo_economico):
        pass

    def actualizar(self):
        time.sleep(1 / 40.0)

    def obtener_cuadros_por_segundo(self):
        return 0

class FPS(object):
    #print "Usando pygame en el modulo fps"

    def __init__(self, fps, usar_modo_economico):
        self.antes = self.ahora = pygame.time.get_ticks()
        self.frecuencia = 1000.0 / fps
        self.t_fps = self.ahora
        self.rendimiento = 0
        self.cuadros_por_segundo = "??"
        self.usar_modo_economico = usar_modo_economico

    def actualizar(self):
        retorno = 0
        self.ahora = pygame.time.get_ticks()

        dt = self.ahora - self.antes 

        while dt >= self.frecuencia:
            self.antes += self.frecuencia
            dt = self.ahora - self.antes 
            retorno += 1

            if self.ahora - self.t_fps > 1000.0:
                #print self.cuadros_por_segundo
                self.cuadros_por_segundo = str(self.rendimiento)
                self.t_fps += 1000.0
                self.rendimiento = 0
        else:
            if self.usar_modo_economico:
                pygame.time.wait(int(self.frecuencia - dt))
            else:
                pygame.time.delay(int(self.frecuencia - dt))

            returno = 1


        self.rendimiento += 1
        return retorno


    def obtener_cuadros_por_segundo(self):
        return self.cuadros_por_segundo