diff options
author | CarlosC <ccarvallo@tecnopy.org> | 2013-01-29 04:49:30 (GMT) |
---|---|---|
committer | CarlosC <ccarvallo@tecnopy.org> | 2013-01-29 04:49:30 (GMT) |
commit | 6db2d26c52841a37ebe2920715689af973be257d (patch) | |
tree | b0e98d4cb297088df5fc2e99d13d5b1d5e0ea934 | |
parent | 832156e8f9a48afb3e016f02a6fb96306ab0de0c (diff) |
reinicio de juego activado
-rwxr-xr-x | example.py | 78 |
1 files changed, 42 insertions, 36 deletions
@@ -3,6 +3,8 @@ import gtk import gobject DELAY = 10 +WIDTH = 600 +HEIGHT = 600 class MyApp(): @@ -15,7 +17,7 @@ class MyApp(): self.vadjustment = gtk.Adjustment() self.hadjustment = gtk.Adjustment() - #asignacion de valores por defecto + #asignacion de valores por defecto del adjustment self.vadjustment.set_upper(100) self.vadjustment.set_value(0) self.hadjustment.set_upper(100) @@ -24,8 +26,7 @@ class MyApp(): #asignacion de propiedades de widgets self.vslide = gtk.VScale(self.vadjustment) self.hslide = gtk.HScale(self.hadjustment) - self.vslide.set_digits(0) - self.hslide.set_digits(0) + #propiedad para que no se muestre valor del slide self.vslide.set_draw_value(False) self.hslide.set_draw_value(False) @@ -37,7 +38,7 @@ class MyApp(): #asignacion de variables de widgets self.drawing_area = gtk.DrawingArea() - self.drawing_area.set_size_request(600, 600) + self.drawing_area.set_size_request(WIDTH, HEIGHT) #imagen de fondo self.pixbuf = gtk.gdk.pixbuf_new_from_file('images/arco.jpg') @@ -64,13 +65,25 @@ class MyApp(): #funcion que se activa al presionar cualquier tecla y pregunta sobre el estado de los indicadores def __key_press_event_cb(self, window, event): - gobject.timeout_add(DELAY, self.__vslider_move_cb) - if self.indicator_x == 0: + if self.indicator_x == -1 and self.indicator_y == -1: + #print "estoy capturando el valor de H y muevo el Vertical" + self.capturar_valor_hslider_cb() + gobject.timeout_add(DELAY, self.__vslider_move_cb) + elif self.indicator_y == -1: + #print "estoy capturando el valor de V y dibujo la pelota" self.capturar_valor_vslider_cb() else: - self.capturar_valor_hslider_cb() - + #if self.indicator_x == 0 and self.indicator_y == 0: + #print "reinicio el juego" + self.increment_x = 1 + self.increment_y = 1 + self.indicator_x = -1 + self.indicator_y = -1 + gobject.timeout_add(DELAY, self.__hslider_move_cb) + self.hadjustment.value = 0 + self.vadjustment.value = 0 + #funcion que hace el loop de los valores del slider horizontal def __hslider_move_cb(self): if self.indicator_x < 0: @@ -104,7 +117,7 @@ class MyApp(): self.hslide_value = self.hslide.get_value() #convierte el valor de changed_value a int - self.cv_x = (((int(self.hslide_value)) * 600) / 100) + self.cv_x = (((int(self.hslide_value)) * WIDTH) / 100) #detener el slider self.indicator_x = 0 @@ -119,39 +132,36 @@ class MyApp(): self.vslide_value = self.vslide.get_value() #convierte el valor de changed_value a int - self.cv_y = (((int(self.vslide_value)) * 600) / 100) + self.cv_y = (((int(self.vslide_value)) * HEIGHT) / 100) - #invoca a la funcion que dibuja la pelota de acuerdo a los valores del slider - self.draw_ball(self.cv_x,self.cv_y) - - #detener el slider - self.indicator_y = 0 + #self.dimensiones_arco() - #impresion temporal de prueba - #print self.cv_y + self.indicator_y = 0 - self.dimensiones_arco() + #invoca a la funcion que dibuja la pelota de acuerdo a los valores del slider + self.draw_ball(self.cv_x,self.cv_y) #funcion que dibuja la pelota def draw_ball(self, x, y): + + #variables de las dimensiones de la pelota c_x = x c_y = y - c_a = 70 - c_l = 70 + c_a = c_l = 70 + + #dibujando la pelota con draw_arc self.canvas.draw_arc(self.context, True, c_x, c_y, c_a, c_l, 0, 360*64) - pi = 3.14159265 - r = 35 - area_pelota = pi * (r ** 2) + + #pi = 3.14159265 + #r = 35 + #area_pelota = pi * (r ** 2) #msg = "area pelota" #print msg + "" + str(area_pelota) - self.calculo_gol(c_x, c_y) + #funcion que calcula el gol + self.calculo_gol(c_x, c_y, c_a) - def calculo_gol(self, c_x, c_y): - if c_x > 58 and c_y > 144 and c_x < 58+507 and c_y < 144+324: - print "gol" - - def dimensiones_arco(self): + def calculo_gol(self, c_x, c_y, c): #Coordenadas del rectangulo del travesanho t_x = 46 t_y = 133 @@ -162,13 +172,9 @@ class MyApp(): i_y = 144 i_a = 484 i_l = 324 - #Dibujo temporal de los rectangulos del travesanho y el interior - self.travesanho = self.canvas.draw_rectangle(self.context, False, t_x, t_y, t_a, t_l) - self.interior_arco = self.canvas.draw_rectangle(self.context, False, i_x, i_y, i_a, i_l) - self.area_travesanho = t_l * t_a - self.area_interior_arco = i_l * i_a - #print self.area_travesanho - #print self.area_interior_arco + + if c_x+c > i_x and c_y+c > i_y and c_x+c < i_x+i_a and c_y+c < i_y+i_l: + print "gol" def __configure_cb(self, drawing_area, data=None): x, y, width, height = drawing_area.get_allocation() |