Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCarlosC <ccarvallo@tecnopy.org>2013-01-29 21:10:00 (GMT)
committer CarlosC <ccarvallo@tecnopy.org>2013-01-29 21:10:00 (GMT)
commit208f3277d4f8652747e6186d0327d9a3a5b119d9 (patch)
tree1f0d79c2d8771aba3d3799188be3c521ed768436
parent6db2d26c52841a37ebe2920715689af973be257d (diff)
Arquero y pelota con reincio de juego
-rwxr-xr-xexample.py70
1 files changed, 39 insertions, 31 deletions
diff --git a/example.py b/example.py
index 27e1e40..efb39de 100755
--- a/example.py
+++ b/example.py
@@ -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):