Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJorge 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)
commit936a3258c817591378fb6556c7778cc0a090ea46 (patch)
tree10bee5fba8d8a3a02ec9642c4e787cedc3a0f476
parentb7fec428334b3c44cadc98dfdf8dfd59f3e6dcf5 (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.py72
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