diff options
author | CarlosC <ccarvallo@tecnopy.org> | 2013-01-29 21:10:00 (GMT) |
---|---|---|
committer | CarlosC <ccarvallo@tecnopy.org> | 2013-01-29 21:10:00 (GMT) |
commit | 208f3277d4f8652747e6186d0327d9a3a5b119d9 (patch) | |
tree | 1f0d79c2d8771aba3d3799188be3c521ed768436 /example.py | |
parent | 6db2d26c52841a37ebe2920715689af973be257d (diff) |
Arquero y pelota con reincio de juego
Diffstat (limited to 'example.py')
-rwxr-xr-x | example.py | 70 |
1 files changed, 39 insertions, 31 deletions
@@ -31,10 +31,8 @@ class MyApp(): self.hslide.set_draw_value(False) #variables globales que se utilizan en los slides - self.increment_x = 1 - self.increment_y = 1 - self.indicator_x = -1 - self.indicator_y = -1 + self.increment_x = self.increment_y = 1 + self.indicator_x = self.indicator_y = -1 #asignacion de variables de widgets self.drawing_area = gtk.DrawingArea() @@ -42,6 +40,11 @@ class MyApp(): #imagen de fondo self.pixbuf = gtk.gdk.pixbuf_new_from_file('images/arco.jpg') + self.pixbufkeeper = gtk.gdk.pixbuf_new_from_file('images/goalkeeper_downcenter.png') + + #self.image = gtk.Image() + #self.image.set_from_animation(self.pixbufball) + #vbox.add(self.image) window.connect("destroy", lambda w: gtk.main_quit()) self.drawing_area.connect('configure_event', self.__configure_cb) @@ -66,23 +69,28 @@ 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): 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() + self.capturar_valor_hslider() 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() + self.capturar_valor_vslider() + #invoca a la funcion que dibuja la pelota de acuerdo a los valores de los sliders + self.draw_ball(self.cv_x,self.cv_y) else: - - #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 + self.restart_game() gobject.timeout_add(DELAY, self.__hslider_move_cb) - self.hadjustment.value = 0 - self.vadjustment.value = 0 + + def restart_game(self): + #metodo que refresca el drawing_area + self.pixmap.draw_pixbuf(None, self.pixbuf, 0, 0, 0, 0, -1, -1, + gtk.gdk.RGB_DITHER_NONE, 0, 0) + self.pixmap.draw_pixbuf(None, self.pixbufkeeper, 0, 0, 0, 200, -1, -1, + gtk.gdk.RGB_DITHER_NONE, 0, 0) + self.drawing_area.queue_draw() + self.increment_x = self.increment_y = 1 + self.indicator_x = self.indicator_y = -1 + self.hadjustment.value = self.vadjustment.value = 0 + + #def #funcion que hace el loop de los valores del slider horizontal def __hslider_move_cb(self): @@ -109,9 +117,9 @@ class MyApp(): return True else: return False - + #funcion que captura el valor del slider horizontal despues de pulsar una tecla - def capturar_valor_hslider_cb(self): + def capturar_valor_hslider(self): #variable en donde se captura el valor al presionar un tecla self.hslide_value = self.hslide.get_value() @@ -121,12 +129,9 @@ class MyApp(): #detener el slider self.indicator_x = 0 - - #impresion temporal de prueba - #print self.cv_x #funcion que captura el valor del slider vertical despues de pulsar una tecla - def capturar_valor_vslider_cb(self): + def capturar_valor_vslider(self): #variable en donde se captura el valor al presionar un tecla self.vslide_value = self.vslide.get_value() @@ -138,19 +143,20 @@ class MyApp(): self.indicator_y = 0 - #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 = c_l = 70 + self.c_x = x + self.c_y = y + self.c_a = self.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) + pixbufball = gtk.gdk.pixbuf_new_from_file('images/soccerball.gif') + self.pixmap.draw_pixbuf(self.context, pixbufball, 0, 0, self.c_x, self.c_y, -1, -1, + gtk.gdk.RGB_DITHER_NONE, 0, 0) + self.drawing_area.queue_draw() + #self.canvas.draw_arc(self.context, True, self.c_x, self.c_y, self.c_a, self.c_l, 0, 360*64) #pi = 3.14159265 #r = 35 @@ -159,7 +165,7 @@ class MyApp(): #print msg + "" + str(area_pelota) #funcion que calcula el gol - self.calculo_gol(c_x, c_y, c_a) + self.calculo_gol(self.c_x, self.c_y, self.c_a) def calculo_gol(self, c_x, c_y, c): #Coordenadas del rectangulo del travesanho @@ -184,6 +190,8 @@ class MyApp(): self.pixmap.draw_pixbuf(None, self.pixbuf, 0, 0, 0, 0, -1, -1, gtk.gdk.RGB_DITHER_NONE, 0, 0) + self.pixmap.draw_pixbuf(None, self.pixbufkeeper, 0, 0, 0, 200, -1, -1, + gtk.gdk.RGB_DITHER_NONE, 0, 0) return True def __expose_cb(self, drawing_area, data=None): |