Acciones Métodos documentación sobre como manejar los actores

Buenos dias,
Soy nuevo en Pilas Engine, por favor necesito información sobre cómo usar las acciones o métodos o como se llamen

Luego de crear un actor, ejemplo mono o miNave, quiero asignar acciones como:

mono.sonreir()
mono.gritar()
mono.decir(“Hey, bienvenido a pilas!!!”)
mono.escala = 2
estas primeras cuatro son intuitivas pero otras como las que siguen no las son:
miNave.colisiona_con()
miNave.hacer()
miNave.hacer_explotar_al_enemigo()
miNave.imitar()
miNave.esta_eliminado()
miNave.etc etc

cuando asigno estas acciones, el programa me da un montón de errores y no se qué hacer ni donde recurrir, por favor si pueden darme algún link de manuales que me expliquen cómo usar estas acciones (o como se llamen) les voy a agradecer mucho.

En este Link
https://github.com/hugoruscitti/pilas/search?utf8=✓&q=colisiona_con
Hugo maneja colisiona_con como el nombre de una función, entonces… No es acción??

En este otro link
http://pilas-engine.com.ar/docs/api-0.83.0/pilas.actores.actor.Actor-class.html
solamente encuentro lo siguiente:
colisiona_con(self, otro_actor) Determina si este actor colisiona con otro_actor
pruebo de distintas formas y no encuentro cómo hacer y no puedo seguir trabajando a prueba y error porque estoy avanzando muy lento.

Nuevamente gracias por dedicarme vuestro tiempo.
Atentamente,
Raúl

Hola @raulpilas, los actores, o casi cualquier objeto en pilas, tienen dos cosas:

  • atributos (también llamados propiedades o variables)
  • métodos (también llamadas funciones o acciones)

a los atributos les podemos asignar valores, un ejemplo son los atributos x, escala, rotación etc… mientras que a los métodos los invocamos (porque encapsulan algún tipo de código que “hace algo”).

Al ver el código, podemos distinguirlos porque a los métodos hay que llamarlos siempre con paréntesis, por ejemplo, si escribo “nave.” el autocompletado de pilas me muestra tanto atributos como métodos, pero los métodos se puede ver que comienzan con “(”

Es decir, en este caso abajo es atributo y el resto son métodos.

Ahora bien, los errores que seguramente estás viendo es porque los métodos suelen aceptar argumentos, y si los omitís el lenguaje te lo va a informar…

Por ejemplo, el método “decir” necesita un argumento de texto, porque tenemos que indicarle al actor “qué” tiene que decir, aquí hay un ejemplo de invocación que da error y otra que funciona bien:

Observá que en esta imagen se muestra cuales son los arguementos que espera la función, el primero es obligatorio (el mensaje) y si no lo especificamos la llamada falla. Mientras que el segundo es opcional, si queremos que el dialogo quede para siempre podemos re-invocar a la función definiendo ese argumento, por ejempo nave.decir("hola!", False).

Vas a notar que los actores tienen montones de métodos, hay muchas cosas que se pueden hacer con los actores, pero todo requiere algo de tiempo para asimilarlo… por ejemplo, uno de los métodos que estabas investigando (imitar), es un método para hacer que un actor “persiga” a otro, pero para ello hay que especificárselo como parámetro.

Te dejo un video que muestra uno de los posibles usos del método “imitar” (hacer que un actor tenga sombra):

Mil gracias Hugo por tu pronta respuesta. Típico de una persona eficiente y eficaz.

Queda clara la diferencia entre atributo y método.

La segunda parte de mi pregunta anterior, es ¿Dónde puedo conseguir información sobre qué parámetros puedo pasar a determinado método?

En tus ejemplos:

  1. Dónde puedo ver que el método decir permite dos parámetros y que el segundo es opcional, y en caso que lo escriba puedo escribir False o quizás True…
  2. Lo mismo en el método imitar, dónde puedo leer que este método requiere el nombre de otro actor?

aclarando más mi pregunta…

Cuando quiero asignar un método a un actor, el programa me sugiere varios métodos, dónde puedo leer qué hacen esos métodos. Algunos por sus nombres uno se da cuenta pero otros son más difíciles.

En tu respuesta también mencionas que “al ver el código, podemos distinguir …etc”, dónde puedo ver el código de estos métodos.

Disculpa el abusar de tu tiempo y paciencia, pero estoy seguro que podrás ayudarme para poder continuar con el estudio de tu lindo programa.

Gracias nuevamente,
Atentamente,
Raúl

Me olvidaba comentar que con la versión de pilas-engine_0.90.40 que tengo instalada, no aparece en la parte inferior del intérprete el indicador de argumentos que mencionas.

Gracias

Hola @raulpilas es muy raro que no te muestre el indicador de parámetros… observá que el indicador aparece justo cuando abrís los paréntesis, luego de pulsar enter desaparece.

Probá abriendo el intérprete desde cero, y cuando veas al actor mono, escribí “mono.decir(” pero sin cerrar el paréntesis o pulsar enter. Ahí debería aparecer el indicador de argumentos.

Con respecto a la referencia, en el manual estás mencionadas las cosas mas importantes (http://manual.pilas-engine.com.ar/ ) aunque no están todas. Tal vez lo que podrías hacer para conocer mas detalles de los métodos es usar sentencias cómo: pilas.ver(mono) o pilas.ver(pilasengine.actores.Actor) para ver el código de cada actor en pantalla. Ah, también está el código en github de los actores.

Estimado Hugo,

Gracias por tu respuesta, pero no tengo todavía lo que busco.

  1. No me muestra el indicador de parámetros. Desinstalé el programa e instalé la última versión:

    pero sigue el área en blanco:

    Espero sugerencias para solucionar.

  2. Disculpa que siga insistiendo en mi pregunta, aclaro un poco más:
    Dónde puedo conseguir información sobre cada uno de los métodos que tiene cada actor, es decir, qué hace cada método y qué parámetros requiere.
    Por ejemplo estos métodos, para qué sirven y qué parámetros requieren:



    etc.

No quiero que me expliques cada uno de estos métodos, sólo dime por favor dónde encuentro información sobre cada método, para que en el momento que esté eligiendo acciones para un actor vea qué opciones tengo y tome decisiones rápidas.
Algo así:
mono.sonreir() o mono.gritar() el personaje cambia su expresión
mono.decir(“Hey, bienvenido a pilas!!!”) el personaje dice el texto que recibe por parámetro
mono.eliminar() elimina un actor de la escena

Gracias por tu atención.
Raúl

Ah, ok @raulpilas, algunos de esos métodos están documentados en la sección “actores” de la documentación, que se puede ver online o desde el mismo editor de pilas:

http://manual.pilas-engine.com.ar/actores/

por cierto, todos los métodos “get” y “definir” son los que se llaman cuando cambias un atributo, no los documentamos …

Lo de los indicadores me parece raro… lo voy a probar en windows que seguramente tengamos algún bug escondido por ahí…

Abrazo