Hola saludos,el problemas es que tanto pilas.tareas y pilas .colisiones no funcionan en dentro de las clases,fuera de las clases si funciona y no hay problemas,pero me gustaria saber si se puede hacer de alguna forma dentro de las clases para hacer que una clase colisione con otra.
No estoy muy seguro @hokuto, pero tal vez puedas resolver el problema usando colisiones con etiquetas en lugar de tener referencias a grupos (si ese es tu caso). En las clases, puede dar algunos problemas enviar parámetros de un lado a otro, las etiquetas previenen un poco esos problemas:
Por ejemplo, acá hay un pequeño código de ejemplo usando etiquetas:
# coding: utf-8
import pilasengine
pilas = pilasengine.iniciar()
class Protagonista(pilasengine.actores.Actor):
def iniciar(self):
self.imagen = "aceituna.png"
self.aprender('moverseConElTeclado')
def capturar_estrella(p, e):
e.eliminar()
p.decir("muy bien!")
self.pilas.colisiones.agregar('protagonista', 'estrella', capturar_estrella)
pilas.actores.Estrella() * 10
pilas.actores.vincular(Protagonista)
pilas.actores.Protagonista()
pilas.ejecutar()
Avisanos si se adapta a tu código, sino probamos otra cosa.
Gracia Hugo,voy a probarlo a ver si me funciona y te comento.
Tan bien estoy creando un enemigo para colocarlo en la pantalla y e utilizado un for in range para colocarlo en la pantalla,porque si lo hago uno a uno se me va a ser muy pesado , en sus posiciones estoy utilizando pilas.azar(),pero como sabras algunos aparecen pegados.
Entonces se me ha ocurrido que cuando esten pegados se eliminen y de esta forma no aparescan pegados,pero como hago para que un objeto se elimine asimismo,le e puesto self.eliminar pero me da error
Buenas!
Es esto un error de indexación?
class Protagonista(pilasengine.actores.Actor):
def iniciar(self):
self.imagen = "aceituna.png"
self.aprender('moverseConElTeclado')
def capturar_estrella(p, e):
e.eliminar()
p.decir("muy bien!")
self.pilas.colisiones.agregar('protagonista', 'estrella', capturar_estrella)
O realmente querias anidar expresamente la def capturar y la colisión en la def iniciar de la class???
un saludo!
Hola Hugo ya lo probe y funciona perfectamente.
En cuanto a lo que comenta Jordinur,pues no es un error de indexacion,porque lo probe sin identar y no funcionaba
Saludos @jordinur un gusto estar de nuevo con la gente Pilas jejeje
No creo que sea un error de identacion, porque el metodo capturar_estrella es un metodo que esta dentro del metodo iniciar, porque si el metodo capturar fuese de la clase, tendria que acceder a el con un self. algo asi como self.capturar_estrella . Bueno eso creo, jejeje tengo ya un año sin tocar pyhon ni pilas, me tengo que poner las pilas, jejejeje