Hola!!! estoy dando un curso de Python y como primera tarea nos encontramos con tener que actualizar el juego de disparar a monos. Nos quedó algo asi, lo que no pude resolver es eliminar la torreta. Y Llegué hasta el paso4.
Espero les sirva y me ayuden con la torreta.
Gracias,
#! /usr/bin/env python
# -*- coding: utf-8 -*-
#Cambió import pilas por pilasengine, luego lo asigna a una variable pilas
import pilasengine
pilas=pilasengine.iniciar()
from random import randrange, random
# Variables y Constantes balas simples no anda toma el valor por defecto en NOne
#balas_simples = pilas.actores.Bala
monos = []
tiempo = 6
fin_de_juego= False
# Funciones
def mono_destruido(bala, enemigo):
# Eliminar el mono alcanzado
enemigo.eliminar()
bala.eliminar()
# Actualizar el marcador
puntos.aumentar(1)
monos.remove(enemigo)
def crear_mono():
# Crear un enemigo nuevo
enemigo = pilas.actores.Mono()
# Dotarle de la habilidad de que explote al ser alcanzado por un disparo
enemigo.aprender(pilas.habilidades.PuedeExplotar)
# Situarlo en una posición al azar, no demasiado cerca del jugador
x = randrange(-320, 320)
y = randrange(-240, 240)
if x >= 0 and x <= 100:
x = 180
elif x <= 0 and x >= -100:
x = -180
if y >= 0 and y <= 100:
y = 180
elif y <= 0 and y >= -100:
y = -180
enemigo.x = x
enemigo.y = y
enemigo.escala = 0.5
enemigo.figura_de_colision.escala = 0.5
pilas.utils.interpolar(enemigo, 'x', 0, duracion=3)
pilas.utils.interpolar(enemigo, 'y', 0, duracion=3)
# Añadirlo a la lista de enemigos
monos.append(enemigo)
# Permitir la creación de enemigos mientras el juego esté en activo
if fin_de_juego:
return False
else:
return True
def perder(torreta,enemigo):
# Indicar fin de juego y eliminar lo que ya no se necesita
global fin_de_juego
# torreta.escala=2
enemigo.eliminar()
#torreta.eliminar()
#enemigo.sonreir()
pilas.escena_actual().pilas.tareas.eliminar_todas()
pilas.avisar("GAME OVER. Conseguiste %d puntos" % (puntos.obtener()))
fin_de_juego = True
# Usar un fondo estándar
pilas.fondos.Tarde()
# Añadir un marcador
puntos = pilas.actores.Puntaje(x=230, y=200, color=pilas.colores.blanco)
puntos.magnitud = 40
# Añadir el conmutador de Sonido
#pilas.actores.Sonido()
# Añadir la torreta del jugador
torreta = pilas.actores.Torreta(municion_bala_simple="bala", enemigos=monos, cuando_elimina_enemigo=mono_destruido,
x=0, y=0, frecuencia_de_disparo=10)
torreta.aprender(pilas.habilidades.PuedeExplotar)
#No se usa mas mundo
pilas.tareas.agregar(1, crear_mono)
# Añadir la colisión de enemigos con la torreta para finalizar el juego
pilas.escena_actual().colisiones.agregar(torreta, monos, perder)
#pilas.colisiones.agregar(torreta, monos, perder)
pilas.avisar(u"Mueve el ratón y haz click para destruirlos.")
# Arrancar el juego
pilas.ejecutar()