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,
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")
Y así efectivamente se obtiene lo deseado.
RECOMENDACIÓN
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