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 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(): """ Programa principal """ pygame.init() # Set the height and width of the screen size = [constantes.ANCHO_PANTALLA, constantes.LARGO_PANTALLA] screen = pygame.display.set_mode(size) letraParaMarcador = pygame.font.Font(None, 36) pygame.display.set_caption("Meggap") sonido = pygame.mixer.Sound("sonido/sonifofondoprovicional.ogg") sonido.play() # Create the player player = Player() # Create all the levels level_list = [] level_list.append(Level_01(player)) level_list.append(Level_02(player)) # Set the current level current_level_no = 0 current_level = level_list[current_level_no] active_sprite_list = pygame.sprite.Group() player.nivel = current_level player.rect.x = 340 player.rect.y = constantes.LARGO_PANTALLA - player.rect.height active_sprite_list.add(player) #Loop until the user clicks the close button. done = False # Used to manage how fast the screen updates clock = pygame.time.Clock() # -------- Main Program Loop ----------- while not done: for event in pygame.event.get(): # User did something if event.type == pygame.QUIT: # If user clicked close done = True # Flag that we are done so we exit this loop if event.type == pygame.KEYDOWN: if event.key == pygame.K_LEFT: player.go_left() if event.key == pygame.K_RIGHT: player.go_right() if event.key == pygame.K_UP: player.jump() if event.type == pygame.KEYUP: if event.key == pygame.K_LEFT and player.mover_x < 0: player.stop() if event.key == pygame.K_RIGHT and player.mover_x > 0: player.stop() # Update the jugador. active_sprite_list.update() # Update items in the level current_level.update() # If the jugador gets near the right side, shift the world left (-x) if player.rect.x >= 500: diff = player.rect.x - 500 player.rect.x = 500 current_level.shift_world(-diff) # If the jugador gets near the left side, shift the world right (+x) if player.rect.x <= 120: diff = 120 - player.rect.x player.rect.x = 120 current_level.shift_world(diff) # If the jugador gets to the end of the level, go to the next level current_position = player.rect.x + current_level.world_shift #print current_position if current_position < current_level.level_limit: player.rect.x = 120 """INSERTAR SONIDO DE FINAL DE LVL AQUI""" if current_level_no < len(level_list) - 1: current_level_no += 1 current_level = level_list[current_level_no] player.nivel = current_level # ALL CODE TO DRAW SHOULD GO BELOW THIS COMMENT current_level.draw(screen) active_sprite_list.draw(screen) text = letraParaMarcador.render("Notas: " + str(player.puntaje), 1, constantes.NEGRO) screen.blit(text, (650, 0)) #sol = pygame.image.load("imagenes/sol.png").convert_alpha() #sol.set_colorkey(constantes.NEGRO) #screen.blit(sol, (10, 20)) # ALL CODE TO DRAW SHOULD GO ABOVE THIS COMMENT # Limit to 60 frames per second clock.tick(60) # Go ahead and update the screen with what we've drawn. pygame.display.flip() # Be IDLE friendly. If you forget this line, the program will 'hang' # on exit. pygame.quit()
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