1
2
3
4
5
6
7
8
9 import pilas
10
11
12 -class Fondo(pilas.actores.Actor):
30
32 "Muestra una escena que tiene un fondo de pantalla de paisaje."
33
36
38 "Muestra un fondo celeste con nubes."
39
42
44 "Muestra una escena que tiene un fondo de pantalla de paisaje."
45
48
50 "Muestra una escena que tiene un fondo de pantalla de paisaje."
51
54
55
57 "Representa una escena de fondo casi naranja."
58
62
63
65 "Es un espacio con estrellas."
66
69
71 "Muestra una escena que tiene un fondo de pantalla de paisaje."
72
75
77 "Pinta todo el fondo de un color uniforme."
78
83
87
88
90 """Representa un fondo formado por varias capas (o actores).
91
92 En fondo de este tipo, ayuda a generar un efecto de profundidad,
93 de perspectiva en tres dimensiones.
94 """
95
97 "Inicia el objeto, dando la opción de simular que el fondo es infinitio"
98
99 Fondo.__init__(self, "invisible.png")
100 self.posicion = 0
101 self.posicion_anterior = 0
102 self.capas = []
103 self.velocidades = {}
104 self.escena.mueve_camara.conectar(self.cuando_mueve_camara)
105 self.ciclico = True
106
107 if ciclico:
108 self.capas_auxiliares = []
109
110 - def agregar(self, capa, velocidad=1):
111 x, _, _, y = pilas.utils.obtener_bordes()
112 capa.fijo = True
113 capa.izquierda = x
114
115 self.capas.append(capa)
116 self.velocidades[capa] = velocidad
117
118 if self.ciclico:
119 copia = capa.duplicar()
120 copia.y = capa.y
121 copia.z = capa.z
122 copia.fijo = True
123 copia.imagen = capa.imagen
124 self.capas_auxiliares.append(copia)
125 copia.izquierda = capa.derecha
126 self.velocidades[copia] = velocidad
127
129 if self.posicion != self.posicion_anterior:
130 dx = self.posicion - self.posicion_anterior
131 self.mover_capas(dx)
132 self.posicion_anterior = self.posicion
133
144
146 for capa in self.capas:
147 capa.x -= dx * self.velocidades[capa]
148
149 if self.ciclico:
150 for capa in self.capas_auxiliares:
151 capa.x -= dx * self.velocidades[capa]
152
167