Buenas estoy realizando un juego con fondo en movimiento horizontal… el hecho es que tengo listo mi actor principal con sus caracteristicas (el disparar me falla porque solo dispara para la derecha) y quiero agregar enemigos y obstaculos que al momento de colisionar con mi personaje el juego termine y al momento de eliminarlos el puntaje suba…hasta ahora me fije en un ejm del foro y pude hacer que caigan enemigos del cielo pero desearia que se generen tb de manera horizontal y random a lo largo del fondo horizontal y el nro de enemigos y rapidez ascienda segun la puntuacion aumente… Adjunto mi codigo y espero su pronta respuesta
Saludos desde Ecuador.
import pilasengine
pilas = pilasengine.iniciar()
#FONDO EN MOVIMIENTO....
fondo = pilas.fondos.DesplazamientoHorizontal()
fondo.agregar("imagenes/fondo.png",y = -50, velocidad=0)
fondo.agregar("imagenes/nubes.png", y = -40, velocidad = 0.1)
fondo.agregar("imagenes/city2.png", y=-30, velocidad=0.5)
fondo.agregar("imagenes/arbol.png", y= -25, velocidad=0.5)
fondo.agregar("imagenes/postes.png",y = -30, velocidad = 0.5)
fondo.agregar("imagenes/floor2.png", y=40, velocidad=2)
#Puntaje
puntos = pilas.actores.Puntaje(x=230, y=200, color=pilas.colores.blanco)
puntos.magnitud = 40
puntos.aumentar(cantidad = 1)
# Mi Primer personaje
class MiActor(pilasengine.actores.Actor):
def iniciar(self):
self.imagen = pilas.imagenes.cargar_animacion("imagenes/caminando.png",5)
self.y = -150
self.escala = 1
self.figura = pilas.fisica.Circulo(self.x,self.y,30,friccion = 5, restitucion= 5)
self.cuadro = 0
self.centro_x = 110
self.centro_y = 35
self.radio_de_colision = 40
self.aprender(pilas.habilidades.MoverseConElTeclado)
def actualizar(self):
if pilas.control.abajo:
self.y -=3
self.cuadro = 4
if self.y < -150:
self.y = -150
if pilas.control.izquierda:
if not self.espejado:
self.espejado = True
self.cuadro +=1
elif pilas.control.derecha:
if self.espejado:
self.espejado = False
self.cuadro += 1
else:
self.cuadro = 0
if self.cuadro > 4:
self.cuadro = 1
if pilas.control.arriba:
self.cuadro = 4
self.y +=1
if self.y > -80:
self.y -=13
self.imagen.definir_cuadro(self.cuadro)
pilas.actores.vincular(MiActor)
mi_actor = pilas.actores.MiActor()
# No puedo hacer que el actor dispare desde el otro angulo de 180 por lo que solo dispara para 0
mi_actor.aprender(pilas.habilidades.Disparar,offset_origen_actor=(mi_actor.x, 0))
class Enemigos(pilasengine.actores.Bomba):
def iniciar(self):
self.imagen = "imagenes/dinamita.png"
self.aprender( pilas.habilidades.PuedeExplotarConHumo )
self.x = pilas.azar(-200, 200)
self.y = 290
self.velocidad = pilas.azar(10, 40) / 10.0
self.escala = 0.43
def actualizar(self):
self.rotacion += 10
self.y -= self.velocidad
# Elimina el objeto cuando sale de la pantalla.
if self.y < -300:
self.eliminar()
enemigos = pilas.actores.Grupo()
# Funcion para crear enemigos
def crear_enemigo():
actor = Enemigos(pilas)
enemigos.agregar(actor)
# tiempo que demora en crear enemigos
pilas.tareas.siempre(3, crear_enemigo)
def eliminar_enemigo(disparo, enemigo):
enemigo.eliminar()
disparo.eliminar()
pilas.colisiones.agregar('bala', 'Enemigos', eliminar_enemigo)
pilas.colisiones.agregar(mi_actor, enemigos, mi_actor.eliminar)
def cambiar_posicion_camara():
pilas.camara.x += (mi_actor.x - pilas.camara.x) / 20.0
return True
pilas.tareas.agregar(1/30.0, cambiar_posicion_camara)
pilas.ejecutar()