Error al crear Actor (Al iniciar el manual de pilasengine)

Saludos,

Este error aparece recién empezamos con lo básico en el manual de pilas, recuerdo hace un tiempo que desistí de usar pilasengine porque me fue imposible avanzar con el primer paso.
Ahora si domino un poquitin más, esto de montar los actores y personalizarlos. Revisando el manual me encontré con esta piedrita.

De echo hay otro post con el mismo problema http://foro.pilas-engine.com.ar/t/error-al-realizar-un-actor-creado/404?u=alejandro_villalobos

Allí aparece que la manera de iniciar un actor es de la forma:
protagonista = Actor("planeta_azul.png")

Eso tal cual aparece no funciona en pilas. De echo lanza un error:

» protagonista = Actor("planeta_azul.png")
  × # Existe un error: 
  × #    
  × # NameError: el nombre 'Actor' no existe 
» 
»

Ahora si referenciamos correctamente el Actor:

» import pilasengine
» pilas = pilasengine.iniciar()
» protagonista = pilas.actores.Actor()

Y obtenemos el actor en pantalla, con la imagen del signo de interrogación que es la por defecto si no asignamos una explícitamente.

Ahora el problema, es que el manual sugiere que podemos definir o referenciar el archivo imagen en el argumento de creación del actor. Esto es:

» **protagonista = pilas.actores.Actor("planeta_azul.png")**

Pero esta forma lanza un error como el siguiente:

× # Existe un error: 
  × #    
  × #   en el archivo "/usr/local/lib/python2.7/dist-packages/pilas-1.4.9-py2.7.egg/pilasengine/actores/__init__.py", linea 264 
  × #   en el archivo "/usr/local/lib/python2.7/dist-packages/pilas-1.4.9-py2.7.egg/pilasengine/actores/__init__.py", linea 583 
  × #   en el archivo "/usr/local/lib/python2.7/dist-packages/pilas-1.4.9-py2.7.egg/pilasengine/actores/actor.py", linea 128 
  × #   en el archivo "/usr/local/lib/python2.7/dist-packages/pilas-1.4.9-py2.7.egg/pilasengine/actores/actor.py", linea 182 
  × #   en el archivo "/usr/local/lib/python2.7/dist-packages/pilas-1.4.9-py2.7.egg/pilasengine/actores/actor.py", linea 405 
  × #   en el archivo "/usr/local/lib/python2.7/dist-packages/pilas-1.4.9-py2.7.egg/pilasengine/utils/__init__.py", linea 108 

  × # UnicodeEncodeError: 
  × # 
  × # Traza del error (las llamadas mas recientes al final): 
  × #   Archivo "/usr/local/lib/python2.7/dist-packages/pilas-1.4.9-py2.7.egg/pilasengine/interprete/lanas.py",linea 463, en keyPressEvent 
  × #     self.interpreter.runsource(self.command) 
  × #   Archivo "/usr/lib/python2.7/code.py",linea 87, en runsource 
  × #     self.runcode(code) 
  × #   Archivo "/usr/local/lib/python2.7/dist-packages/pilas-1.4.9-py2.7.egg/pilasengine/interprete/lanas.py",linea 38, en runcode 
  × #     code.InteractiveInterpreter.runcode(self, cd) 
  × #   Archivo "/usr/lib/python2.7/code.py",linea 107, en runcode 
  × #     self.showtraceback() 
  × #   Archivo "/usr/lib/python2.7/code.py",linea 162, en showtraceback 
  × #     map(self.write, list) 
  × #   Archivo "/usr/local/lib/python2.7/dist-packages/pilas-1.4.9-py2.7.egg/pilasengine/interprete/lanas.py",linea 59, en write 
  × #     self.error_io.write(data) 
  × #   Archivo "/usr/local/lib/python2.7/dist-packages/pilas-1.4.9-py2.7.egg/pilasengine/interprete/io_lanas.py",linea 34, en write 
  × #     self.destino.insertar_error(linea.decode('utf-8')) 
  × #   Archivo "/usr/local/lib/python2.7/dist-packages/pilas-1.4.9-py2.7.egg/pilasengine/interprete/lanas.py",linea 195, en insertar_error 
  × #     self.insertHtml(u"   × # %s 
" %(m.decode('utf-8'))) 
  × #   Archivo "/usr/lib/python2.7/encodings/utf_8.py",linea 16, en decode 
  × #     return codecs.utf_8_decode(input, errors, True) 
  × # UnicodeEncodeError: 'ascii' codec can't encode character u'\xfa' en position 35: ordinal not en range(128) 
  × # 
» 

Por lo que es evidente que no se puede hacer de esa manera, :astonished:

Pero si hacemos la otra opción que el manual presenta, también se produce el error:

» imagen = pilas.imagenes.cargar("planeta_azul.png")
» protagonista = pilas.actores.Actor(imagen)
  × # Existe un error: 
  × #    
  × #   en el archivo "/usr/local/lib/python2.7/dist-packages/pilas-1.4.9-py2.7.egg/pilasengine/actores/__init__.py", linea 264 
  × #   en el archivo "/usr/local/lib/python2.7/dist-packages/pilas-1.4.9-py2.7.egg/pilasengine/actores/__init__.py", linea 583 
.
.
.

Recorté el error, ya que es exactamente el mismo.

De esto se puede concluir que el primer paso que nos encontramos en el manual nos entorpece avanzar ya que cuando uno se inicia no comprende el porque de tanto errores si se esta haciendo los pasos tal cual lo dice el manual.

En el post que cité, el chico tenia el mismo problema. La respuesta de @alexsc fue la de pasarle el parámetro de la siguiente manera:

**

Manera Correcta:

**
» protagonista = pilas.actores.Actor(imagen="planeta_azul.png")

:smiley: :smiley: :smiley:
Y así efectivamente se obtiene lo deseado.

RECOMENDACIÓN
:relaxed: Es importante revisar el manual y componer esos primeros pasos.

Anexo también la fotico del manual al punto que me refiero

Consulta

¿Es Correcto mi apreciación?

Muchas gracias a @jordinur por ofrecer apoyo y ejemplos que han servido para ir comprendiendo el pilasengine

1 Like

Buenas, @Alejandro_Villalobos !

sin duda ese error en el manual ya deberia haber sido corregido en su dia… :sweat:

Desgraciadamente hace dias que me encuentro sin PC, (ya que me cortocicuitó la placa base y estoy intentando ahorrar para la PC que me gustaria comprar)… A ver si en breve consigo la PC nueva y puedo dedicarme un par de fines de semana a revisar a fondo el manual, que sin duda necesita una actualización.

Muchas gracias por tus comentarios y por tus aclaraciones :wink:

Un saludo.

1 Like

Saludos @jordinur
Ese es el manual que esta en la pagina web, el que esta en pilas esta idéntico.

ups, si, efectivamente no subí los arreglos al manual. En breve lo subo actualizado y me voy a asegurar de que pilas emita un mensaje más claro si le enviamos una imagen como primer argumento al actor.

1 Like

Ahí pude actualizar correctamente el manual:

(puede que tengan que pulsar ctrl+f5 para ver la última versión en el navegador)

También agregué un mensaje más descriptivo dentro del intérprete cuando se produce este error:

¡Abrazo!

2 Likes

Saludos @hugoruscitti, que alegria se siente colaborar en un proyecto como este. Ya tengo algunos proyectos en lo mas proximo los estare publicando