def jugar(pantalla, jugador): # Creamos al jugador con la imagen p1_walk.png jugador_principal = Player(jugador) letraparapuntos=pygame.font.SysFont("comicsans",24) #letraTiempo = pygame.font.Font("comicsans", 24) # Creamos todos los niveles del juego lista_niveles = [] lista_niveles.append(Level_01(jugador_principal)) lista_niveles.append(Level_02(jugador_principal)) # Seteamos cual es el primer nivel. numero_del_nivel_actual = 0 nivel_actual = lista_niveles[numero_del_nivel_actual] lista_sprites_activos = pygame.sprite.Group() jugador_principal.nivel = nivel_actual jugador_principal.rect.x = 340 jugador_principal.rect.y = constantes.LARGO_PISO - jugador_principal.rect.height lista_sprites_activos.add(jugador_principal) #musica nivel_actual.sonido.play(-1) #Variable booleano que nos avisa cuando el usuario aprieta el botOn salir. salir = False clock = pygame.time.Clock() starting_point = time.time() + 700 # -------- Loop Princiapl ----------- while not salir: for evento in pygame.event.get(): if evento.type == pygame.QUIT: salir = True if evento.type == pygame.KEYDOWN: if evento.key == pygame.K_LEFT: jugador_principal.retroceder() if evento.key == pygame.K_RIGHT: jugador_principal.avanzar() if evento.key == pygame.K_UP: jugador_principal.saltar() if evento.key == pygame.K_LSHIFT and pygame.K_RIGHT: jugador_principal.turbo = True if evento.type == pygame.KEYUP: if evento.key == pygame.K_LEFT and jugador_principal.mover_x < 0: jugador_principal.parar() if evento.key == pygame.K_RIGHT and jugador_principal.mover_x > 0: jugador_principal.parar() if evento.key == pygame.K_LSHIFT and pygame.K_LEFT: jugador_principal.turbo = False # Actualiza todo el jugador lista_sprites_activos.update() # Actualiza los elementos del nivel nivel_actual.update() # Si el jugador se acarca hacia el lado derecho mueve el mundo hacia la izquierda (-x) if jugador_principal.rect.x >= 500: diff = jugador_principal.rect.x - 500 jugador_principal.rect.x = 500 nivel_actual.avance_nivel(-diff) # Si el jugador se acarca hacia el lado izquierda mueve el mundo hacia la derecha (-x) if jugador_principal.rect.x <= 120: diff = 120 - jugador_principal.rect.x jugador_principal.rect.x = 120 nivel_actual.avance_nivel(diff) #Si el jugador se mueve hacia el fin del nivel cambia el jugador al siguiente nivel. current_position = jugador_principal.rect.x + nivel_actual.posicion_jugador_nivel #print "current pos: ", current_position #print "nivel_actual.limite_izquierdo: ", nivel_actual.limite_izquierdo #print "jugador_principal.rect.x: ", jugador_principal.rect.x #print "nivel_actual.posicion_jugador_nivel: ", nivel_actual.posicion_jugador_nivel #print "jugador_principal.direccion:: " , jugador_principal.direccion if jugador_principal.direccion == "L": if nivel_actual.posicion_jugador_nivel > 0: if current_position <= nivel_actual.limite_izquierdo: jugador_principal.rect.x = 200 if current_position < nivel_actual.limite_nivel: jugador_principal.rect.x = 120 if numero_del_nivel_actual < len(lista_niveles)-1: pygame.mixer.stop() numero_del_nivel_actual += 1 if (numero_del_nivel_actual<=1): nivel_actual = lista_niveles[numero_del_nivel_actual] jugador_principal.nivel = nivel_actual nivel_actual.sonido.play(-1) starting_point = time.time() + 700 else: pantalla.fill(constantes.NEGRO) game = pygame.image.load("imagenes/Fin.png").convert() pantalla.blit(game,(0,0)) pygame.display.flip() time.sleep(5) pygame.event.wait() main() if jugador_principal.vidas <= 0: pygame.mixer.stop() pantalla.fill(constantes.NEGRO) game = pygame.image.load("imagenes/Gameover.png").convert() pantalla.blit(game,(0,0)) pygame.display.flip() pygame.event.wait() main() elapsed_time = starting_point - time.time () elapsed_time_int = int(elapsed_time) if elapsed_time <= 0: pygame.mixer.stop() pantalla.fill(constantes.NEGRO) game = pygame.image.load("imagenes/Gameover.png").convert() pantalla.blit(game,(0,0)) pygame.display.flip() pygame.event.wait() main() #print "current pos: ", current_position # TODO EL CODIGO PARA DIBUJAR DEBE IR DEBAJO DE ESTE COMENTARIO. nivel_actual.draw(pantalla) lista_sprites_activos.draw(pantalla) textopuntos=letraparapuntos.render("Puntos: "+str(jugador_principal.puntos),0, constantes.BLANCO) pantalla.blit( textopuntos,(10,10)) textovidas=letraparapuntos.render("Vidas: "+str(jugador_principal.vidas),0, constantes.BLANCO) pantalla.blit( textovidas,(10,35)) textotiempo = letraparapuntos.render("Tiempo: "+ str(elapsed_time_int), 1, constantes.BLANCO) pantalla.blit(textotiempo, (10,60)) # TODO EL CODIGO PARA DIBUJAR DEBE IR POR ARRIBA DE ESTE COMENTARIO. clock.tick(60) pygame.display.flip() return salir