diff options
Diffstat (limited to 'YoButia.py')
-rw-r--r-- | YoButia.py | 134 |
1 files changed, 134 insertions, 0 deletions
diff --git a/YoButia.py b/YoButia.py new file mode 100644 index 0000000..2b2b57b --- /dev/null +++ b/YoButia.py @@ -0,0 +1,134 @@ +import pygame +import gtk +import os +import imp +from gettext import gettext as _ +import time + +#constantes +EVENTORESPUESTA = pygame.USEREVENT+1 +EVENTODESPEGUE = EVENTORESPUESTA+1 +EVENTOREFRESCO = EVENTODESPEGUE+1 +TIEMPOREFRESCO = 250 +CAMINORECURSOS = "recursos" +CAMINOCOMUN = "comun" +CAMINOIMAGENES = "imagenes" +CAMINODATOS = "datos" + +class YoButia(): + def __init__(self): + pass + def principal(self): + print "Clase principal" + #Aca va el loop principal del juego. + global scale, shift_x, shift_y + pygame.time.set_timer(EVENTOREFRESCO,TIEMPOREFRESCO) + + self.loadAll() + + self.loadCommons() + + self.presentacion() + + time.sleep(2) + + def presentacion(self): + self.pantalla.fill((0,0,0)) + self.pantalla.blit(self.fondo1, + (int(75*scale+shift_x),int(75*scale+shift_y))) + self.mostrarTexto(_("Press any key to skip"), + self.fuente32, + (int(600*scale+shift_x),int(800*scale+shift_y)), + (255,155,155)) + pygame.display.flip() + + def mostrarTexto(self,texto,fuente,posicion,color): + """Muestra texto en una determinada posicion""" + text = fuente.render(texto, 1, color) + textrect = text.get_rect() + textrect.center = posicion + self.pantalla.blit(text, textrect) + + def loadAll(self): + #Metodo que carga las imagenes y sonidos + + global scale, shift_x, shift_y, xo_resolution + pygame.init() + pygame.display.init() + # crear pantalla + self.anchoPantalla = gtk.gdk.screen_width() + self.altoPantalla = gtk.gdk.screen_height() + self.pantalla = pygame.display.get_surface() + if not(self.pantalla): + # prevent hide zones + self.anchoPantalla = self.anchoPantalla - 50 + self.altoPantalla = self.altoPantalla - 100 + self.pantalla = pygame.display.set_mode((self.anchoPantalla, + self.altoPantalla)) + pygame.display.flip() + if self.anchoPantalla==1200 and self.altoPantalla==900: + xo_resolution = True + scale = 1 + shift_x = 0 + shift_y = 0 + else: + xo_resolution = False + if self.anchoPantalla/1200.0<self.altoPantalla/900.0: + scale = self.anchoPantalla/1200.0 + shift_x = 0 + shift_y = int((self.altoPantalla-scale*900)/2) + else: + scale = self.altoPantalla/900.0 + shift_x = int((self.anchoPantalla-scale*1200)/2) + shift_y = 0 + # cargar imagenes generales + self.camino_imagenes = os.path.join(CAMINORECURSOS, + CAMINOCOMUN, + CAMINOIMAGENES) + # fondo presentacion + self.fondo1 = self.cargarImagen("fondo1.png") + + #Cargar fuentes + self.fuente32 = pygame.font.Font(None, int(30*scale)) + + def loadCommons(self): + + self.listaPrefijos = list() + + r_path = os.path.join(CAMINORECURSOS, CAMINOCOMUN, CAMINODATOS, 'commons.py') + a_path = os.path.abspath(r_path) + f = None + try: + f = imp.load_source('commons', a_path) + except: + print _('Cannot open %s') % 'commons' + + if f: + if hasattr(f, 'PREFIX'): + for e in f.PREFIX: + e1 = unicode(e, 'UTF-8') + self.listaPrefijos.append(e1) + + self.numeroPrefijos = len(self.listaPrefijos) + + def cargarImagen(self,nombre): + """Carga una imagen y la escala de acuerdo a la resolucion""" + global scale, xo_resolution + if xo_resolution: + imagen = pygame.image.load( \ + os.path.join(self.camino_imagenes,nombre)) + else: + imagen0 = pygame.image.load( \ + os.path.join(self.camino_imagenes,nombre)) + imagen = pygame.transform.scale(imagen0, + (int(imagen0.get_width()*scale), + int(imagen0.get_height()*scale))) + del imagen0 + return imagen + +def main(): + juego = YoButia() + juego.principal() + +if __name__ == "__main__": + main()
\ No newline at end of file |