Giter VIP home page Giter VIP logo

Comments (2)

irvingprog avatar irvingprog commented on June 3, 2024

Hola @jjconti

Respuesta corta: Es el comportamiento esperado.

Respuesta larga:

Es el comportamiento esperado, debido a que Pilas, internamente, sigue manteniendo referencia al actor previamente creado.

Cuando creas una nueva instancia de la clase Actor, Pilas hace algunos "trucos" de forma interna, por ejemplo, enlazar nuestro actor a la Escena Actual.

https://github.com/hugoruscitti/pilas/blob/develop/pilasengine/actores/actor.py#L142

https://github.com/hugoruscitti/pilas/blob/develop/pilasengine/actores/__init__.py#L161

En la Escena Actual mantenemos una lista de los actores existentes en dicha escena, eso permite que el actor creado siga referenciado, apesar de que la variable, a la cual cómo usuario lo referenciamos, apunte a otro objeto.

La forma correcta para eliminar un Actor en Pilas es:

mono = pilas.actores.Mono()
mono.eliminar()

Además, existe una funcionalidad para tener acceso a un actor, para el cual se perdió su referencia por el caso que mencionas. @hugoruscitti nos puede ayudar.

Saludos..

from pilas.

hugoruscitti avatar hugoruscitti commented on June 3, 2024

Efectivamente, como menciona @irvingprog, es algo esperado. Notamos que esto incluso está bueno, porque les permite a los chicos caer en la necesidad de "darle nombre" a los actores para poder modificarlos después (y por ende surge la necesidad de aprender acerca de referencias o variables).

Por otro lado, llegado el caso que se genere un actor en pantalla y se quiera recuperar la referencia, hay dos formas:

Desde el intérprete se puede abrir el panel de actores, ahí aparecen todos los actores en la escena, si haces click sobre alguno de ellos se va a mostrar en la pantalla de pilas que ese actor "parpadea" y en el intérprete se va a crear una referencia llamada "actor" para acceder a ese actor seleccionado:

windows 10 guest additions y chrome running 2017-11-22 09-50-43

Otra opción es usar la api de pilas directamente, por ejemplo, para obtener todos los actores
de la escena se puede escribir algo así:

pilas.escena_actual()._actores

Esa función te va a retornar un grupo, que se usa de manera similar a una lista en realidad.

PD: me gustaría que sea un poco más sencillo acceder a la lista de actores, y que no se acceda a "_actores" directamente de la escena (que es semi-privado digamos). Voy a armar un issue para mejorarlo.

from pilas.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.