Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/pilas/actores/pizarra.py
diff options
context:
space:
mode:
Diffstat (limited to 'pilas/actores/pizarra.py')
-rw-r--r--pilas/actores/pizarra.py65
1 files changed, 65 insertions, 0 deletions
diff --git a/pilas/actores/pizarra.py b/pilas/actores/pizarra.py
new file mode 100644
index 0000000..8fea8ba
--- /dev/null
+++ b/pilas/actores/pizarra.py
@@ -0,0 +1,65 @@
+# -*- encoding: utf-8 -*-
+# Pilas engine - A video game framework.
+#
+# Copyright 2010 - Hugo Ruscitti
+# License: LGPLv3 (see http://www.gnu.org/licenses/lgpl.html)
+#
+# Website - http://www.pilas-engine.com.ar
+
+import pilas
+from pilas.actores import Actor
+from pilas import colores
+
+class Pizarra(Actor):
+ """Representa una superficie de dibujo inicialmente transparente.
+
+ Puedes pintar sobre esta pizarra usando métodos que simulan
+ un lapiz, que se puede mover sobre una superficie.
+ """
+
+ def __init__(self, x=0, y=0, ancho=None, alto=None):
+ # Si no define area de la pizarra toma el tamano de la ventana.
+ if not ancho or not alto:
+ ancho, alto = pilas.mundo.motor.obtener_area()
+
+ Actor.__init__(self, x=x, y=y)
+ self.imagen = pilas.imagenes.cargar_superficie(ancho, alto)
+
+ def dibujar_punto(self, x, y, color=colores.negro):
+ x, y = self.obtener_coordenada_fisica(x, y)
+ self.imagen.dibujar_punto(x, y, color=color)
+
+ def obtener_coordenada_fisica(self, x, y):
+ x = (self.imagen.ancho()/2) + x
+ y = (self.imagen.alto()/2) - y
+ return x, y
+
+ def pintar_imagen(self, imagen, x, y):
+ self.pintar_parte_de_imagen(imagen, 0, 0, imagen.ancho(), imagen.alto(), x, y)
+
+ def pintar_parte_de_imagen(self, imagen, origen_x, origen_y, ancho, alto, x, y):
+ x, y = self.obtener_coordenada_fisica(x, y)
+ self.imagen.pintar_parte_de_imagen(imagen, origen_x, origen_y, ancho, alto, x, y)
+
+ def pintar_grilla(self, grilla, x, y):
+ grilla.dibujarse_sobre_una_pizarra(self, x, y)
+
+ def pintar(self, color):
+ self.imagen.pintar(color)
+
+ def linea(self, x, y, x2, y2, color=colores.negro, grosor=1):
+ x, y = self.obtener_coordenada_fisica(x, y)
+ x2, y2 = self.obtener_coordenada_fisica(x2, y2)
+ self.imagen.linea(x, y, x2, y2, color, grosor)
+
+ def rectangulo(self, x, y, ancho, alto, color=colores.negro, relleno=False, grosor=1):
+ x, y = self.obtener_coordenada_fisica(x, y)
+ self.imagen.rectangulo(x, y, ancho, alto, color, relleno, grosor)
+
+ def texto(self, cadena, x=0, y=0, magnitud=10, fuente=None, color=colores.negro):
+ x, y = self.obtener_coordenada_fisica(x, y)
+ self.imagen.texto(cadena, x, y, magnitud, fuente, color)
+
+ def poligono(self, puntos, color=pilas.colores.negro, grosor=1):
+ puntos = [self.obtener_coordenada_fisica(*p) for p in puntos]
+ self.imagen.poligono(puntos, color, grosor)