Ayuda tengo un error

Hola buen día, resulta que tengo un error y no puedo identificar muy bien que es.
Mi juego trata de una parodia de la introducción de Pokemon (la parte donde el profesor Oak te presenta el mundo de pokemon)

mono.decir(“Hola, soy el profesor Monkey”)
mono.decir(“Un mundo donde los animales tienen poderes…”)
mono.decir(“Y son entrenados por niños de 10 años…”)
mono.decir(" … “)
mono.decir(”:v que raro es el mundo ")
mono.decir(“Te deseo suerte en tus aventuras, atrapando animales y bla bla bla”)
mono.decir(“Estoy cansado elegí un animol, PLEASE 0_0”)

zanahoria = pilas.actores.Zanahoria()
zanahoria.x = 0
zanahoria.y = -100

penguin = pilas.actores.Pingu
penguin.x = 100
penguin.y = -100

nave = pilas.actores.NaveRoja()
nave.x = 200
nave.y = -100

Y cuando lo ejecuto el interprete me da esto:

× # UnicodeDecodeError:
× #
× # Traza del error (las llamadas mas recientes al final):
× # Archivo “C:\PILAS-~1\pilasengine\interprete\editor.py”,linea 646, en ejecutar
× # exec(contenido, self.interpreterLocals)
× # Archivo actual,linea 21, en
× # Archivo “C:\PILAS-~1\pilasengine\actores\mono.py”,linea 53, en decir
× # super(Mono, self).decir(mensaje)
× # Archivo “C:\PILAS-~1\pilasengine\actores\actor.py”,linea 950, en decir
× # objetivo=self)
× # Archivo “C:\PILAS-~1\pilasengine\actores_init_.py”,linea 498, en Globo
× # objetivo=objetivo)
× # Archivo “C:\PILAS-~1\pilasengine\actores_init_.py”,linea 583, en crear_actor
× # nuevo_actor = referencia_a_clase(self.pilas, *k, **kw)
× # Archivo “C:\PILAS-~1\pilasengine\actores\globo.py”,linea 50, en init
× # ancho, alto = pilas.utils.obtener_area_de_texto(texto)
× # Archivo "C:\PILAS-~1\pilasengine\utils_init
.py",linea 39, en obtener_area_de_texto
× # fuente, colores.blanco, ancho)
× # Archivo “C:\PILAS-~1\pilasengine\imagenes_init_.py”,linea 33, en crear_texto
× # fuente, color, ancho)
× # Archivo “C:\PILAS-~1\pilasengine\imagenes\texto.py”,linea 26, en init
× # self.ruta_original = texto.encode(‘ascii’, ‘xmlcharrefreplace’) + str(os.urandom(25))
× # UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0xc3 en position 23: ordinal not en range(128)

Buenas, @Ignacio_Yafe !

puedes probar a poner una u antes del texto entre comillas, por ejemplo:

mono.decir(u"Hola, soy el profesor Monkey")
mono.decir(u"Un mundo donde los animales tienen poderes…")
mono.decir(u"Y son entrenados por niños de 10 años…")

Espero que esto te ayude :wink:

Muchas gracias!!!
Me sirvió lo de poner una u.
Lo que todavía no tengo muy claro es como puedo hacer para poner un tiempo entre cada mensaje, al estilo poner un mensaje y que a los 2 segundos me ponga otro.
Ya que me pone todos al mismo tiempo.
Igual muchas gracias por el consejo de la u :slight_smile: .

Lo voy a probar, igual cambie el código, lo que me pasa ahora es que puse muchas veces dentro de actualizar el la condicional if para controlar el tiempo ya que cuando lo resolví me ponía todos los comentarios al mismo tiempo, ejemplo: el mono en un segundo: Hola, buenas tardes, bienvenido al mundo animol.
Entonces intenté con esto:

# coding: utf-8
import pilasengine
pilas = pilasengine.iniciar()
segundos=0
mensaje1="Hola..."
mensaje2="Soy el profesor Monkey..."
mensaje3="Bienvenido al mundo animol..."
mensaje4="Un mundo..."
mensaje5="Donde los animales..."
mensaje6="Tienen poderes..."
mensaje7="Y son entrenados..."
mensaje8="Por niños de 10 años!!!"
mensaje9= " ... "
mensaje10= ":v que raro es el mundo..."
mensaje11= "Te deseo suerte en tus aventuras..."
mensaje12 ="Atrapando animales y bla bla bla"
mensaje13="Estoy  cansado, elegí un animol..."
mensaje14="Please 0_0"
class mono(pilasengine.actores.Mono):
    def iniciar(self):
        pilasengine.actores.Mono.iniciar(self)
    actualizar(self):
    segundos+=1
        if segundos==2000:
            mono.decir(mensaje1)
        if segundos==4000:
            mono.decir(mensaje2)
    
        if segundos==6000:
            mono.decir(mensaje3)
    
        if segundos==8000:
            mono.decir(mensaje4)
    
        if segundos==10000:
            mono.decir(mensaje5)
   
        if segundos==12000:
            mono.decir(mensaje6)
    
        if segundos==14000:
            mono.decir(mensaje7)
    
        if segundos==16000:
            mono.decir(mensaje8)
    
        if segundos==18000:
            mono.decir(mensaje9)
        
        if segundos==20000:
            mono.decir(mensaje10)
    
        if segundos==22000:
            mono.decir(mensaje11)
    
        if segundos==24000:
            mono.decir(mensaje12)
    
        if segundos==26000:
            mono.decir(mensaje13)
    
        if segundos==28000:
            mono.decir(mensaje14)
actualizar()

Pero empeoró :frowning:

Buenas, @Ignacio_Yafe !

Veo varios errores en tu código… el primero y más evidente es la construcción del actor personalizado…
Realmente no te hace falta en este ejemplo el construir un actor.
Para la gestión del tiempo en los mensajes seria mejor usar las tareas.

por ejemplo:

# coding: utf-8
import pilasengine
pilas = pilasengine.iniciar()

mono=pilasengine.actores.Mono()

def decir1():
    mono.decir(u"Hola...")
def decir2():
    mono.decir(u"Soy el profesor Monkey...")

pilas.tareas.agregar(3, decir1)
pilas.tareas.agregar(6,decir2)

pilas.ejecutar()

Estudia un poco las tareas. El número son los segundos que tardará en realizar la acción. En este caso a los 3 segundos dirá la primera frase y a los 6 segundos dirá la segunda.

Espero que esto te ayude! :wink: