diff options
author | Jorge Ramírez <jorgeramirez1990@gmail.com> | 2013-01-19 01:28:54 (GMT) |
---|---|---|
committer | Jorge Ramírez <jorgeramirez1990@gmail.com> | 2013-01-19 01:28:54 (GMT) |
commit | a3fb8bc72c4198f88f1b0ce242b8e005a2df19ae (patch) | |
tree | 24c24724cd2eff920d262d8a5a9e92b829d1d2b5 | |
parent | ade6a1f41e835a4d1b5580edc148b989d1bbd334 (diff) |
Mostrar dardo y reiniciar juego
Una vez que se tienen X e Y se despliega el dardo y cuando
el jugador vuelve a pulsar una tecla, se reinicia el juego.
TODO:
* calcular puntaje y mostrar.
* buscar un dardo un poco mas grande =D.
-rwxr-xr-x | board.py | 34 | ||||
-rw-r--r-- | images/dart.png | bin | 0 -> 3793 bytes |
2 files changed, 28 insertions, 6 deletions
@@ -2,20 +2,24 @@ import gtk import gobject + DELAY = 5 DELTA = 1 WIDTH = 512 HEIGHT = 512 + class Darts(): def __init__(self): window = gtk.Window() + window.set_title('Lanzar') drawing_area = gtk.DrawingArea() drawing_area.set_size_request(WIDTH, HEIGHT) self.pixbuf = gtk.gdk.pixbuf_new_from_file('images/dartboard.png') + self.dart_pixbuf = gtk.gdk.pixbuf_new_from_file('images/dart.png') window.connect('destroy', self.destroy) drawing_area.connect('configure_event', self.__configure_cb) @@ -49,7 +53,6 @@ class Darts(): gobject.timeout_add(DELAY, self.__move_vertical_line, drawing_area) - def destroy(self, window, data=None): gtk.main_quit() @@ -84,7 +87,7 @@ class Darts(): # Dibujar la diana sobre el fondo negro self.pixmap.draw_pixbuf(None, self.pixbuf, 0, 0, 0, 0, -1, -1, gtk.gdk.RGB_DITHER_NONE, 0, 0) - + def draw_line(self, drawing_area, orientation, line_index): #Utilizado para dibujar objetos en el pixmap cr = self.pixmap.cairo_create() @@ -101,8 +104,7 @@ class Darts(): rectangle = cr.rectangle(rectangle) drawing_area.queue_draw() cr.fill() - - + def __move_vertical_line(self, drawing_area): #Dibujar el fondo sobre el cual movemos las lineas, si aun no hemos #presionado un boton para dejar la linea vertical en una coordenada dada @@ -159,10 +161,30 @@ class Darts(): gobject.timeout_add(DELAY, self.__move_horizontal_line, drawing_area) elif self._selected_y == -1: self._selected_y = self._y + gobject.timeout_add(DELAY, self.__draw_dart, drawing_area) else: # TO-DO: Calcular el puntaje de acuerdo a _selected_x y _selected_y - pass - # TO-DO: Mostrar el puntaje, y al presionar algo iniciar de nuevo + # TO-DO: Mostrar el puntaje + self.restart_game(drawing_area) + + def __draw_dart(self, drawing_area): + """ + Dibuja el dardo una vez que se obtuvieron X e Y + """ + x = self._selected_x - 24 # para centrar la imagen + y = self._selected_y - 24 + + self.draw_background(drawing_area) + self.draw_line(drawing_area, "HORIZONTAL", self._y) + self.draw_line(drawing_area, "VERTICAL", self._x) + self.pixmap.draw_pixbuf(None, self.dart_pixbuf, 0, 0, x, y, -1, -1, + gtk.gdk.RGB_DITHER_NONE, 0, 0) + + def restart_game(self, drawing_area): + self._x = self._y = 0 + self._selected_x = self._selected_y = -1 + gobject.timeout_add(DELAY, self.__move_vertical_line, drawing_area) + if __name__ == "__main__": my_darts = Darts() diff --git a/images/dart.png b/images/dart.png Binary files differnew file mode 100644 index 0000000..600c05d --- /dev/null +++ b/images/dart.png |