Este post viene a ser más una curiosidad que me gustaría compartir que un artículo.

ImpactJS maneja las Fuentes (fonts) de una forma un tanto curiosa, utiliza un generador de fuentes y luego las manipula como si fueran una imagen, esto no me agrada del todo la verdad, y mas sabiendo que este motor me permite acceder a la API de canvas y por lo tanto usar las fuentes nativas.

La principal ventaja de usar imágenes es que no hay que estar instalando fuentes o cosas similares, es una imagen por lo tanto el estilo de la fuente siempre se vera igual en todos los dispositivos, pero yo prefiero usar las nativas. Así que me dispuse a desarrollar un plugin para ImpactJS en el que controlar y añadir efectos a las fuentes nativas de forma sencilla.

Uno de los efectos que creé es un cambio de tamaño paulatino de la fuente definiendo un tiempo, por ejemplo creamos nuestra fuente con un tamaño de 5px, y le pasamos como tiempo 10 y como tamaño nuevo 20px, veremos como la fuente se agranda de forma suave durante esos 10 segundos para conseguir el tamaño dado, si le pasamos menos tamaño hace lo propio pero encogiéndose.

Es algo sumamente sencillo pero que me gusta como efecto para algunos juegos, lo probé en Firefox y daba por hecho que funcionaria igual en todos los navegadores, !pero no¡. Para mi sorpresa es el navegador de google el que me dio problemas, al principio pensaba que era algo relacionado con un mal rendimiento dado que el efecto en Chrome no era para nada suave, mas bien a saltos, cambiaba de tamaño de forma torpe y “bruta”. Decidí añadir otros efectos a la vez y ver como se desempeñaba, y para mi sorpresa el único efecto que va mal es este, al final caí en el problema. Firefox me permite pasar como tamaño de fuente 10,2223243px, pero parece que el navegador de google si le paso el tamaño de la fuente con decimales, el los redondea.

¿Como lo solucioné? No lo he solucionado :(, pienso que se puede disimular creando el mismo texto en diferentes tamaños y jugar con la opacidad, pero que para mostrar un simple efecto en una fuente tenga que estar inventando más funciones que para la mecánica del personaje es algo que no entiendo. De momento no usaré este efecto, quizás me esté equivocando y exista una solución más simple.

Al menos espero que esta experiencia le sirva a alguien para no volverse loco como me volví yo tratando de averiguar que pasaba, y si por casualidad conoces la solución y quieres compartirla te estaré muy agradecido :D.