def jugar(pantalla, jugador): # Creamos al jugador con la imagen p1_walk.png jugador_principal = Player("imagenes/MOVIMIENTOSAJUSTADOS.png") letraparapuntos = pygame.font.Font(None, 40) letragameover = pygame.font.Font(None, 60) # 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_PANTALLA - jugador_principal.rect.height lista_sprites_activos.add(jugador_principal) #Variable booleano que nos avisa cuando el usuario aprieta el botOn salir. salir = False clock = pygame.time.Clock() # -------- 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.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() # 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 if current_position < nivel_actual.limite_nivel: jugador_principal.rect.x = 120 if numero_del_nivel_actual < len(lista_niveles) - 1: numero_del_nivel_actual += 1 nivel_actual = lista_niveles[numero_del_nivel_actual] jugador_principal.nivel = nivel_actual print "current_position: ", current_position #print "posicion del personaje: ", 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( "Score: " + str(jugador_principal.puntos), 1, constantes.BLANCO) pantalla.blit(textopuntos, (10, 10)) textovidas = letraparapuntos.render( "life: " + str(jugador_principal.vidas), 1, constantes.BLANCO) pantalla.blit(textovidas, (10, 35)) # TODO EL CODIGO PARA DIBUJAR DEBE IR POR ARRIBA DE ESTE COMENTARIO. clock.tick(60) pygame.display.flip() if jugador_principal.vidas <= 0: pantalla.fill(constantes.NEGRO) texto_gameover = letragameover.render("GAME OVER, good night...", 1, constantes.ROJO) pantalla.blit(texto_gameover, [100, 250]) pygame.display.flip() pygame.event.wait() main() return salir
#Variable booleano que nos avisa cuando el usuario aprieta el botOn salir. salir = False clock = pygame.time.Clock() # -------- 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.type == pygame.KEYUP: if evento.key == pygame.K_LEFT: jugador_principal.parar() if evento.key == pygame.K_RIGHT: jugador_principal.parar() # Actualiza todo el jugador screen.fill(constantes.AZUL) lista_sprites_activos.update() # TODO EL CODIGO PARA DIBUJAR DEBE IR DEBAJO DE ESTE COMENTARIO. lista_sprites_activos.draw(screen) # TODO EL CODIGO PARA DIBUJAR DEBE IR POR ARRIBA DE ESTE COMENTARIO.
def jugar(pantalla, jugador): # Creamos al jugador con la imagen p1_walk.png jugador_principal = Player("imagenes/MOVIMIENTOSAJUSTADOS.png") letraparapuntos=pygame.font.Font(None,40) letragameover=pygame.font.Font(None,60) # 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_PANTALLA - jugador_principal.rect.height lista_sprites_activos.add(jugador_principal) #Variable booleano que nos avisa cuando el usuario aprieta el botOn salir. salir = False clock = pygame.time.Clock() # -------- 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.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() # 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 if current_position < nivel_actual.limite_nivel: jugador_principal.rect.x = 120 if numero_del_nivel_actual < len(lista_niveles)-1: numero_del_nivel_actual += 1 nivel_actual = lista_niveles[numero_del_nivel_actual] jugador_principal.nivel = nivel_actual print "current_position: ", current_position #print "posicion del personaje: ", 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("Score: "+str(jugador_principal.puntos),1,constantes.BLANCO) pantalla.blit(textopuntos,(10,10)) textovidas=letraparapuntos.render("life: "+str(jugador_principal.vidas),1,constantes.BLANCO) pantalla.blit(textovidas,(10,35)) # TODO EL CODIGO PARA DIBUJAR DEBE IR POR ARRIBA DE ESTE COMENTARIO. clock.tick(60) pygame.display.flip() if jugador_principal.vidas<=0: pantalla.fill(constantes.NEGRO) texto_gameover= letragameover.render("GAME OVER, good night...",1, constantes.ROJO) pantalla.blit(texto_gameover, [100, 250]) pygame.display.flip() pygame.event.wait() main() return salir
def Play(pantalla, time2, jugador): tiempo_comienzo = time() + time2 # Creamos al jugador con la imagen p1_walk.png jugador_principal = Player(jugador) letraParaPuntos = pygame.font.Font(None, 24) letraParaVidas = pygame.font.Font(None, 24) letraTiempo = pygame.font.Font(None, 24) Jefe_final = BOSS("imagenes/cheff.png") # 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 = 200 jugador_principal.rect.y = constantes.LARGO_PANTALLA - jugador_principal.rect.height - 120 lista_sprites_activos.add(jugador_principal) letraParaMarcador1 = pygame.font.Font(None, 56) letraParaMarcador2 = pygame.font.Font(None, 36) no_aparece_boss = True # Variable booleano que nos avisa cuando el usuario aprieta el botOn salir. salir = False clock = pygame.time.Clock() # -------- Loop Principal ----------- 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_SPACE: jugador_principal.avanzarr() 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_ESCAPE: salir = 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() Jefe_final.avanzar() # 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 if current_position < nivel_actual.limite_nivel: jugador_principal.rect.x = 120 if numero_del_nivel_actual < len(lista_niveles) - 1: current_position = 0 pygame.event.wait() Jefe_final.kill() numero_del_nivel_actual += 1 nivel_actual = lista_niveles[numero_del_nivel_actual] jugador_principal.nivel = nivel_actual tiempo_comienzo = time() + time2 no_aparece_boss = True jugador_principal.vidas = jugador_principal.vidas + 5 else: pantalla.fill(constantes.NEGRO) texto_gameover3 = letraParaMarcador1.render( u"¡Has Ganado!", 1, constantes.ROJO) texto_gameover4 = letraParaMarcador2.render( "Presiona cualquier tecla para volver a jugar", 1, constantes.ROJO) pantalla.blit(texto_gameover3, [300, 250]) pantalla.blit(texto_gameover4, [200, 310]) pygame.display.flip() pygame.event.wait() main() #Lo que modifique fue esto, el menu y la funcion play # 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), 1, constantes.NEGRO) pantalla.blit(textoPuntos, (10, 10)) textoVidas = letraParaVidas.render( "Vidas: " + str(jugador_principal.vidas), 1, constantes.NEGRO) pantalla.blit(textoVidas, (900, 10)) tiempo_transcurrido = int(tiempo_comienzo - time()) textoTiempo = letraTiempo.render("Tiempo: " + str(tiempo_transcurrido), 1, constantes.NEGRO) pantalla.blit(textoTiempo, (300, 10)) LetraMensaje = pygame.font.Font(None, 38) El_Mensaje = LetraMensaje.render("El chef se acerca, apurate", 1, constantes.ROJO) if tiempo_transcurrido < 30 and no_aparece_boss: pantalla.blit(El_Mensaje, (330, 80)) if tiempo_transcurrido < 20 and no_aparece_boss: Jefe_final.nivel = nivel_actual Jefe_final.rect.x = jugador_principal.rect.x - 950 Jefe_final.rect.y = constantes.LARGO_PANTALLA - Jefe_final.rect.height Jefe_final.jugador = jugador_principal lista_sprites_activos.add(Jefe_final) no_aparece_boss = False if current_position < nivel_actual.posicion_bigboss and no_aparece_boss: Jefe_final.nivel = nivel_actual Jefe_final.rect.x = jugador_principal.rect.x - 950 Jefe_final.rect.y = constantes.LARGO_PANTALLA - Jefe_final.rect.height Jefe_final.jugador = jugador_principal lista_sprites_activos.add(Jefe_final) no_aparece_boss = False print current_position # TODO EL CODIGO PARA DIBUJAR DEBE IR POR ARRIBA DE ESTE COMENTARIO. clock.tick(60) pygame.display.flip() if jugador_principal.vidas == 0 or tiempo_transcurrido == 0: pantalla.fill(constantes.NEGRO) print current_position texto_gameover1 = letraParaMarcador1.render( "GAME OVER", 1, constantes.ROJO) texto_gameover2 = letraParaMarcador2.render( "Presiona cualquier tecla para volver a jugar", 1, constantes.ROJO) pantalla.blit(texto_gameover1, [300, 250]) pantalla.blit(texto_gameover2, [200, 310]) pygame.display.flip() pygame.event.wait() main() pygame.display.flip() if jugador_principal.vidas == -1: pantalla.fill(constantes.NEGRO) print current_position texto_gg = letraParaMarcador1.render( "HAS GANADO con " + str(tiempo_transcurrido) + "segundos sobrantes", 1, constantes.ROJO) texto_gameover2 = letraParaMarcador2.render( "Presiona cualquier tecla para volver a jugar", 1, constantes.ROJO) pantalla.blit(texto_gg, [300, 250]) pantalla.blit(texto_gameover2) pygame.display.flip() pygame.event.wait() main() # Salgo del juego return True
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
def main(): """ Clase principal en el que se debe ejecutar el juego. """ pygame.init() # Configuramos el alto y largo de la pantalla tamanio = [constantes.ANCHO_PANTALLA, constantes.LARGO_PANTALLA] pantalla = pygame.display.set_mode(tamanio) pygame.display.set_caption("The Chornicles of Jim Jones") # Creamos al jugador con la imagen p1_walk.png jugador_principal = Player("imagenes/spritesdimensiones.png") # 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_PANTALLA - jugador_principal.rect.height lista_sprites_activos.add(jugador_principal) #Variable booleano que nos avisa cuando el usuario aprieta el botOn salir. salir = False clock = pygame.time.Clock() # -------- 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.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() # 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 if current_position < nivel_actual.limite_nivel: jugador_principal.rect.x = 120 if numero_del_nivel_actual < len(lista_niveles)-1: numero_del_nivel_actual += 1 nivel_actual = lista_niveles[numero_del_nivel_actual] jugador_principal.nivel = nivel_actual # TODO EL CODIGO PARA DIBUJAR DEBE IR DEBAJO DE ESTE COMENTARIO. nivel_actual.draw(pantalla) lista_sprites_activos.draw(pantalla) # TODO EL CODIGO PARA DIBUJAR DEBE IR POR ARRIBA DE ESTE COMENTARIO. clock.tick(60) pygame.display.flip() pygame.quit()
def Play(pantalla,time2, jugador): tiempo_comienzo = time() + time2 # Creamos al jugador con la imagen p1_walk.png jugador_principal = Player(jugador) letraParaPuntos = pygame.font.Font(None, 24) letraParaVidas = pygame.font.Font(None, 24) letraTiempo = pygame.font.Font(None, 24) Jefe_final = BOSS("imagenes/cheff.png") # 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 = 200 jugador_principal.rect.y = constantes.LARGO_PANTALLA - jugador_principal.rect.height - 120 lista_sprites_activos.add(jugador_principal) letraParaMarcador1 = pygame.font.Font(None, 56) letraParaMarcador2 = pygame.font.Font(None, 36) no_aparece_boss = True # Variable booleano que nos avisa cuando el usuario aprieta el botOn salir. salir = False clock = pygame.time.Clock() # -------- Loop Principal ----------- 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_SPACE: jugador_principal.avanzarr() 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_ESCAPE: salir = 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() Jefe_final.avanzar() # 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 if current_position < nivel_actual.limite_nivel: jugador_principal.rect.x = 120 if numero_del_nivel_actual < len(lista_niveles) - 1: current_position=0 pygame.event.wait() Jefe_final.kill() numero_del_nivel_actual += 1 nivel_actual = lista_niveles[numero_del_nivel_actual] jugador_principal.nivel = nivel_actual tiempo_comienzo = time() + time2 no_aparece_boss = True jugador_principal.vidas = jugador_principal.vidas + 5 else: pantalla.fill(constantes.NEGRO) texto_gameover3 = letraParaMarcador1.render(u"¡Has Ganado!", 1, constantes.ROJO) texto_gameover4 = letraParaMarcador2.render("Presiona cualquier tecla para volver a jugar", 1, constantes.ROJO) pantalla.blit(texto_gameover3, [300, 250]) pantalla.blit(texto_gameover4, [200, 310]) pygame.display.flip() pygame.event.wait() main() #Lo que modifique fue esto, el menu y la funcion play # 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), 1, constantes.NEGRO) pantalla.blit(textoPuntos, (10, 10)) textoVidas = letraParaVidas.render("Vidas: " + str(jugador_principal.vidas), 1, constantes.NEGRO) pantalla.blit(textoVidas, (900, 10)) tiempo_transcurrido = int(tiempo_comienzo - time()) textoTiempo = letraTiempo.render("Tiempo: " + str(tiempo_transcurrido), 1, constantes.NEGRO) pantalla.blit(textoTiempo, (300, 10)) LetraMensaje = pygame.font.Font(None, 38) El_Mensaje = LetraMensaje.render("El chef se acerca, apurate", 1, constantes.ROJO) if tiempo_transcurrido < 30 and no_aparece_boss: pantalla.blit(El_Mensaje,(330,80)) if tiempo_transcurrido < 20 and no_aparece_boss: Jefe_final.nivel = nivel_actual Jefe_final.rect.x = jugador_principal.rect.x - 950 Jefe_final.rect.y = constantes.LARGO_PANTALLA - Jefe_final.rect.height Jefe_final.jugador = jugador_principal lista_sprites_activos.add(Jefe_final) no_aparece_boss = False if current_position < nivel_actual.posicion_bigboss and no_aparece_boss: Jefe_final.nivel = nivel_actual Jefe_final.rect.x = jugador_principal.rect.x - 950 Jefe_final.rect.y = constantes.LARGO_PANTALLA - Jefe_final.rect.height Jefe_final.jugador = jugador_principal lista_sprites_activos.add(Jefe_final) no_aparece_boss = False print current_position # TODO EL CODIGO PARA DIBUJAR DEBE IR POR ARRIBA DE ESTE COMENTARIO. clock.tick(60) pygame.display.flip() if jugador_principal.vidas == 0 or tiempo_transcurrido == 0: pantalla.fill(constantes.NEGRO) print current_position texto_gameover1 = letraParaMarcador1.render("GAME OVER", 1, constantes.ROJO) texto_gameover2 = letraParaMarcador2.render("Presiona cualquier tecla para volver a jugar", 1, constantes.ROJO) pantalla.blit(texto_gameover1, [300, 250]) pantalla.blit(texto_gameover2, [200, 310]) pygame.display.flip() pygame.event.wait() main() pygame.display.flip() if jugador_principal.vidas == -1: pantalla.fill(constantes.NEGRO) print current_position texto_gg = letraParaMarcador1.render("HAS GANADO con "+ str(tiempo_transcurrido) + "segundos sobrantes" , 1, constantes.ROJO) texto_gameover2 = letraParaMarcador2.render("Presiona cualquier tecla para volver a jugar", 1, constantes.ROJO) pantalla.blit(texto_gg, [300, 250]) pantalla.blit(texto_gameover2) pygame.display.flip() pygame.event.wait() main() # Salgo del juego return True