def jugar(surface, fps_clock): #------------------Fondo imagen_fondo = pygame.image.load("imagenes/imagen_fondo.jpg") #------------------Jugadores jugador1 = Jugador([500, ALTO_SCREEN-39]) jugador1.direccion = 'derecha' jugador2 = Jugador([600, ALTO_SCREEN-39]) jugador2.direccion = 'izquierda' #------------------Tiles y disparos # piedra = pygame.image.load("imagenes/tile_piedra.png") lista_disparos_j1 = pygame.sprite.Group() # Se almacenan los disparos del jugador 1 lista_disparos_j2 = pygame.sprite.Group() # Se almacenan los disparos del jugador 2 #========================BUCLE========================== while True: # main game loop for event in pygame.event.get(): if event.type == pygame.locals.QUIT: pygame.quit() sys.exit() elif event.type == KEYDOWN: #------------------Movimiento y ataque jugador 1 if event.key == K_a: jugador1.moverse = True jugador1.direccion = 'izquierda' elif event.key == K_d: jugador1.moverse = True jugador1.direccion = 'derecha' elif event.key == K_w: jugador1.salto = 25 # La fuerza irá bajando gracias a la gravedad que se aplicará en cada vuelta elif event.key == K_SPACE: jugador1.disparar = True elif event.key == K_1: jugador1.tipo_disparo = jugador1.tipos_disparos[0] # Cambiar el tipo de disparo a manzana elif event.key == K_2: jugador1.tipo_disparo = jugador1.tipos_disparos[1] # Cambiar el tipo de disparo a plátano elif event.key == K_3: jugador1.tipo_disparo = jugador1.tipos_disparos[2] # Cambiar el tipo de disparo a melón #------------------Movimiento y ataque jugador 2 if event.key == K_LEFT: jugador2.moverse = True jugador2.direccion = 'izquierda' elif event.key == K_RIGHT: jugador2.moverse = True jugador2.direccion = 'derecha' elif event.key == K_UP: jugador2.salto = 25 # La fuerza irá bajando gracias a la gravedad que se aplicará en cada vuelta elif event.key == K_KP_ENTER: jugador2.disparar = True elif event.key == K_KP1: jugador2.tipo_disparo = jugador2.tipos_disparos[0] # Cambiar el tipo de disparo a manzana elif event.key == K_KP2: jugador2.tipo_disparo = jugador2.tipos_disparos[1] # Cambiar el tipo de disparo a plátano elif event.key == K_KP3: jugador2.tipo_disparo = jugador2.tipos_disparos[2] # Cambiar el tipo de disparo a melón elif event.type == KEYUP: tecla_pulsada = pygame.key.get_pressed() # Para que siga moviéndose si mantienes dos teclas pulsadas al mismo tiempo y sueltas una #------------------Movimiento y ataque jugador 1 if event.key == K_a: jugador1.moverse = False if tecla_pulsada[K_d]: jugador1.moverse = True jugador1.direccion = 'derecha' elif event.key == K_d: jugador1.moverse = False if tecla_pulsada[K_a]: jugador1.moverse = True jugador1.direccion = 'izquierda' elif event.key == K_SPACE: jugador1.disparar = False #------------------Movimiento y ataque jugador 2 if event.key == K_LEFT: jugador2.moverse = False if tecla_pulsada[K_RIGHT]: jugador2.moverse = True jugador2.direccion = 'derecha' elif event.key == K_RIGHT: jugador2.moverse = False if tecla_pulsada[K_LEFT]: jugador2.moverse = True jugador2.direccion = 'izquierda' elif event.key == K_KP_ENTER: jugador2.disparar = False #------------------Actualizar disparos jugador 1 jugador1.actualizar_frecuencia_disparos() # Esperar un rato para poder lanzar el siguiente disparo if jugador1.disparar == True: jugador1.atacar(lista_disparos_j1) #------------------Actualizar disparos jugador 2 jugador2.actualizar_frecuencia_disparos() # Esperar un rato para poder lanzar el siguiente disparo if jugador2.disparar == True: jugador2.atacar(lista_disparos_j2) #========================UPDATE========================== #------------------Surface surface.blit(imagen_fondo, (0, 0)) #------------------Jugadores movimiento_jugador(jugador1, jugador1.images) # Cambiamos la imagen según su movimiento jugador1.ajustar_posicion() # Si se sale de la pantalla surface.blit(jugador1.image, (jugador1.rect.x, jugador1.rect.y)) movimiento_jugador(jugador2, jugador2.images) # Cambiamos la imagen según su movimiento jugador2.ajustar_posicion() # Si se sale de la pantalla surface.blit(jugador2.image, (jugador2.rect.x, jugador2.rect.y)) #------------------Frutas/disparos #--Jugador 1 for disparo in lista_disparos_j1: disparo.ajustar_posicion() colision = pygame.sprite.spritecollide(jugador2, lista_disparos_j1, True, pygame.sprite.collide_mask) if colision != []: # Si hay una colisión jugador2.life -= disparo.daño disparo.kill() # Eliminamos el disparo else: surface.blit(disparo.image, (disparo.rect.x, disparo.rect.y)) #--Jugador 2 for disparo in lista_disparos_j2: disparo.ajustar_posicion() colision = pygame.sprite.spritecollide(jugador1, lista_disparos_j2, True, pygame.sprite.collide_mask) if colision != []: # Si hay una colisión jugador1.life -= disparo.daño disparo.kill() # Eliminamos el disparo else: surface.blit(disparo.image, (disparo.rect.x, disparo.rect.y)) #------------------Dibujar, FPS pygame.display.update() fps_clock.tick(FPS)