Actor Texto: saltos de línea, ñ, tildes e hipervínculos [SOLUCIONADO]

Buenas, estoy teniendo algunos problemas con los textos…

[1] En el juego que estoy desarrollando intento escribir párrafos de texto, y según dice el manual con \n debería hacersalto de línea, pero me tira el siguiente error:

texto_personalizado3 = pilas.actores.Texto("Este juego es SOFTWARE LIBRE.\n           ^
SyntaxError: EOL while scanning string literal

[2] Luego, tampoco puedo incluir ñ y tildes en los textos. Probé incluyendo esto en el código:

# -*- coding: utf-8 -*-

pero no funcionó.

[3] finalmente, tengo la necesidad de incluir LINK’s en los textos, leí el manual pero no encontré referencias a hipervínculos, habrá una forma de crear hipervínculos dentro de PILAS ?

desde ya muchas gracias por la ayuda,
saludos, Diego.

Hola Diego.

Referente al salto de Linea no tuve ningún problema al realizar la prueba, lo hice de esta forma:

texto = pilas.actores.Texto("Primer linea \n segunda liena  \n tercer linea", 10,20)

con la instrucciones pilas.ver() puedes ver los parámetros que recibe el actor texto para ajustarlo a lo que necesites.

Te comento que hay algunas inconvenientes a la hora de imprimir caracteres “especiales” cómo acentos, tildes, la “ñ”, etc. No sé bien a que se debe este inconveniente, ahorita le daré un vistazo.

Te hago una pregunta, los hipervinculos los quieres a páginas web o a una sección de tu videojuego?.

Dentro del texto no es posible, lo que se me ocurre que puedes hacer, es crear un actor invisible con el tamaño del texto al cual cuando hagan click sobre el se realice cierta instrucción.

Si deseas abrir hipervinculos a páginas web te recomiendo leer: http://docs.python.org/2/library/webbrowser.html

Si es dentro del videojuego:

def hipervinculo():
    pilas.cambiar_escena(EscenaMenu())

mono = pilas.actores.Mono()
mono.cuando_hace_click = hipervinculo

La función “hipervinculo” la puedes modificar a tu gusto, en el ejemplo realizo un cambio de escena pero prácticamente podrías hacer lo que quisieras, al igual que cualquier actor tiene el metodo “cuando_hace_click”.

Espero haberte ayudado Diego.

Saludos.

Gracias por la respuesta!!!

comprobé el tema de los saltos de línea, efectivamente el ejemplo que propones funciona perfecto. Lo único que me queda pensar es que tiene que ver que le cambio la fuente, ya que en mi caso utilizo una tipografía cargada desde un archivo, quizás eso afecte la interpretación del \n .

Luego, los links deben ser a sitios web… funcionó perfecto!!! la librería que me pasaste.
La incluí con un:

import webbrowser

y luego donde necesitaba el link:

webbrowser.open_new('http://www.pilas-engine.com.ar')

te agradezco muchísimo la ayuda!

abrazo
Diego.

¡Hola Diego!, con respecto a los tildes y la ñ, puede ser causa de que el string no sea unicode, probá poniendo u como prefijo de la cadena, algo así:

Abrazo!

Perfecto! ahora si. Funcionó lo del prefijo u antes del string, combinando lo que había encontrado yo, que era:

# -*- coding: utf-8 -*-

al inicio del script.

SOLUCIONADO!

Muchas gracias.
Diego.