Aqui esta mi codigo hasta el momento, esta un poco mas actualizado que el de Google Drive, sin embargo, sigo sin poder solucionar mi problema…
#! -*-coding: utf-8-*-
import pilasengine
import time
pilas = pilasengine.iniciar()
teclas = {
pilas.simbolos.a: 'izquierda',
pilas.simbolos.d: 'derecha',
pilas.simbolos.w: 'arriba',
pilas.simbolos.s: 'abajo',
pilas.simbolos.j: 'boton',
}
#mapa = pilas.actores.MapaTiled("/home/francesco/Colegio/Programacion/Python/Juego Pilas/Actores Personalizados/mapa_desde_archivo.tmx")
#fondo = pilas.fondos.Fondo()
#fondo.imagen = pilas.imagenes.cargar('mapa_desde_archivo2.png')
mi_control = pilas.control.Control(teclas)
camara = pilas.camara
camara.escala = 1
balas = pilas.actores.Grupo()
class Bala_K(pilasengine.actores.Actor):
""" Representa una bala que va en línea recta. """
global balas
def __init__(self, pilas, x=0, y=0, rotacion=0, velocidad_maxima=9,
angulo_de_movimiento=180):
"""
Construye la Bala.
:param x: Posición x del proyectil.
:param y: Posición y del proyectil.
:param velocidad_maxima: Velocidad máxima que alcanzará el proyectil.
:param angulo_de_movimiento: Angulo en que se moverá el Actor..
"""
super(Bala_K, self).__init__(pilas=pilas, x=x, y=y)
self.imagen = pilas.imagenes.cargar('disparos/bola_amarilla.png')
self.rotacion = rotacion
self.radio_de_colision = 5
self.hacer(pilas.comportamientos.Proyectil,
velocidad_maxima=velocidad_maxima,
aceleracion=1,
angulo_de_movimiento=angulo_de_movimiento,
gravedad=0)
self.aprender(self.pilas.habilidades.EliminarseSiSaleDePantalla)
self.cuando_se_elimina = None
balas.agregar(self)
def eliminar(self):
if self.cuando_se_elimina:
self.cuando_se_elimina(self)
super(Bala_K, self).eliminar()
class Bala_S(pilasengine.actores.Actor):
""" Representa una bala que va en línea recta. """
global balas
def __init__(self, pilas, x=0, y=0, rotacion=180, velocidad_maxima=9,
angulo_de_movimiento=0):
"""
Construye la Bala.
:param x: Posición x del proyectil.
:param y: Posición y del proyectil.
:param velocidad_maxima: Velocidad máxima que alcanzará el proyectil.
:param angulo_de_movimiento: Angulo en que se moverá el Actor..
"""
super(Bala_S, self).__init__(pilas=pilas, x=x, y=y)
self.imagen = pilas.imagenes.cargar('disparos/bola_amarilla.png')
self.rotacion = rotacion
self.radio_de_colision = 5
self.hacer(pilas.comportamientos.Proyectil,
velocidad_maxima=velocidad_maxima,
aceleracion=1,
angulo_de_movimiento=angulo_de_movimiento,
gravedad=0)
self.aprender(self.pilas.habilidades.EliminarseSiSaleDePantalla)
self.cuando_se_elimina = None
balas.agregar(self)
def eliminar(self):
if self.cuando_se_elimina:
self.cuando_se_elimina(self)
super(Bala_S, self).eliminar()
def actualizar(self):
pass
pilas.actores.vincular(Bala_K)
pilas.actores.vincular(Bala_S)
class KennyS(pilasengine.actores.Actor):
global camara
def iniciar(self):
global Bala_K
self.x = 200
self.imagen = pilas.imagenes.cargar("aceituna.png")
self.aprender('disparar', municion='Bala_K', angulo_salida_disparo=180, frecuencia_de_disparo = 1.5, control = mi_control)
self.aprender('moversecomocoche')
self.aprender(pilas.habilidades.LimitadoABordesDePantalla)
def actualizar(self):
pass
class ScreaMy(pilasengine.actores.Actor):
def iniciar(self):
global Bala_S
self.x = -200
self.imagen = pilas.imagenes.cargar("aceituna.png")
self.aprender('disparar', municion='Bala_S', angulo_salida_disparo=180, frecuencia_de_disparo = 1.5)
self.aprender("moversecomocoche",control=mi_control)
self.aprender(pilas.habilidades.LimitadoABordesDePantalla)
#self.aprender(pilas.habilidades.MoverseConElTeclado, control=mi_control)
def actualizar(self):
pass
puntaje_kenny = pilas.actores.Puntaje(x = 200, y = 150)
puntaje_scream = pilas.actores.Puntaje(x = -200, y = 150)
pilas.actores.vincular(ScreaMy)
pilas.actores.vincular(KennyS)
def crear_Kenny():
KennyS = pilas.actores.KennyS()
KennyS.etiquetas.agregar("kenny")
pilas.colisiones.agregar("Bala_S", "kenny", al_colisionar_K)
def crear_ScreaMy():
ScreaM = pilas.actores.ScreaMy()
ScreaM.etiquetas.agregar("scream")
pilas.colisiones.agregar("Bala_K", "scream", al_colisionar_S)
def limpiar(lista):
"""Elimina a todos los actores dentro del grupo."""
eliminar = list(lista)
for e in eliminar:
e.eliminar()
def al_colisionar_S(Bala_K, ScreaM):
limpiar(balas)
puntaje_kenny.aumentar(1)
print ("1")
ronda()
def al_colisionar_K(Bala_S, KennyS):
limpiar(balas)
puntaje_scream.aumentar(1)
print ("1")
ronda()
def ronda():
try:
KennyS.eliminar()
except:
pass
try:
ScreaMy.eliminar()
except:
pass
crear_ScreaMy()
crear_Kenny()
ronda()
pilas.ejecutar() # Necesario al ejecutar en scripts.