diff options
author | Jorge Ramírez <jorge@jramirez.me> | 2013-01-24 03:34:40 (GMT) |
---|---|---|
committer | Jorge Ramírez <jorge@jramirez.me> | 2013-01-24 03:34:40 (GMT) |
commit | 936a3258c817591378fb6556c7778cc0a090ea46 (patch) | |
tree | 10bee5fba8d8a3a02ec9642c4e787cedc3a0f476 | |
parent | b7fec428334b3c44cadc98dfdf8dfd59f3e6dcf5 (diff) |
Incorporacion de marcador
Se ha incorporado una seccion donde se muestra el puntaje obtenido
por el jugador. Falta realizar el calculo del puntaje lo cual
implicaria modificar la logica del metodo LanzarActivity.compute_score
-rw-r--r-- | activity.py | 72 |
1 files changed, 49 insertions, 23 deletions
diff --git a/activity.py b/activity.py index 3804138..b7f85cb 100644 --- a/activity.py +++ b/activity.py @@ -56,10 +56,6 @@ class LanzarActivity(activity.Activity): toolbar_box.toolbar.insert(title_entry, -1) title_entry.show() - share_button = ShareButton(self) - toolbar_box.toolbar.insert(share_button, -1) - share_button.show() - separator = gtk.SeparatorToolItem() separator.props.draw = False separator.set_expand(True) @@ -70,23 +66,10 @@ class LanzarActivity(activity.Activity): toolbar_box.toolbar.insert(stop_button, -1) stop_button.show() - self.drawing_area = gtk.DrawingArea() - self.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') - - self.drawing_area.connect('configure_event', self.__configure_cb) - self.drawing_area.connect('expose-event', self.__expose_cb) - self.connect('key-press-event', self.__key_press_cb, self.drawing_area) - - box = gtk.Alignment() - box.add(self.drawing_area) - box.set_padding(0, 0, 144, 0) - self.modify_bg(gtk.STATE_NORMAL, gtk.gdk.Color()) - + # variables de configuracion y control del juego self.DELTA_X = DELTA self.DELTA_Y = DELTA + self._score = 0 # Variable global que ira indicando el "indice" de pixel donde dibujar # la linea vertical @@ -105,15 +88,48 @@ class LanzarActivity(activity.Activity): # presiono alguna tecla para detenerlo. El valor inicial -1 indica que # todavia no se ha presionado una tecla para la linea horizontal self._selected_y = -1 + + self.drawing_area = gtk.DrawingArea() + self.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') + + self.drawing_area.connect('configure_event', self.__configure_cb) + self.drawing_area.connect('expose-event', self.__expose_cb) + self.connect('key-press-event', self.__key_press_cb, self.drawing_area) + + # tablero + board_box = gtk.Alignment() + board_box.add(self.drawing_area) + board_box.set_padding(0, 0, 144, 0) + self.modify_bg(gtk.STATE_NORMAL, gtk.gdk.Color()) + + # puntaje + score_str = gtk.Label() + score_str.set_markup("<span foreground='white' size='xx-large'><b>Puntaje</b></span>") + self.score_text = gtk.Label() + self.score_text_tmpl = "<span foreground='white' size='xx-large'>%d</span>" + self.score_text.set_markup(self.score_text_tmpl % self._score) + score_box = gtk.VBox() + score_box.pack_start(score_str, expand=False, fill=False) + score_box.pack_start(self.score_text, expand=False, fill=False) + score_align = gtk.Alignment() + score_align.set_padding(100, 0, 0, 0) + score_align.add(score_box) + + # box principal + main_box = gtk.HBox() + main_box.add(board_box) + main_box.add(score_align) gobject.timeout_add(DELAY, self.__move_vertical_line, self.drawing_area) - self.set_canvas(box) + self.set_canvas(main_box) self.set_toolbar_box(toolbar_box) toolbar_box.show() - box.show() - self.drawing_area.show() + main_box.show_all() def __configure_cb(self, drawing_area, data=None): x, y, width, height = drawing_area.get_allocation() @@ -228,11 +244,15 @@ class LanzarActivity(activity.Activity): def __draw_dart(self, drawing_area): """ - Dibuja el dardo una vez que se obtuvieron X e Y + Dibuja el dardo una vez que se obtuvieron X e Y. Ademas muestra + el puntaje obtenido. """ x = self._selected_x - 24 # para centrar la imagen y = self._selected_y - 24 + self.score = self.compute_score(self._selected_x, self._selected_y) + self.score_text.set_markup(self.score_text_tmpl % self.score) + self.draw_background(drawing_area) self.draw_line(drawing_area, "HORIZONTAL", self._selected_y) self.draw_line(drawing_area, "VERTICAL", self._selected_x) @@ -243,3 +263,9 @@ class LanzarActivity(activity.Activity): self._x = self._y = 0 self._selected_x = self._selected_y = -1 gobject.timeout_add(DELAY, self.__move_vertical_line, drawing_area) + + def compute_score(self, x, y): + """ + Calcula el puntaje en base a las coordenadas X e Y dadas como parametro. + """ + return x + y # for debugging |