lunes, 25 de febrero de 2008

Textos Multilínea

Me he encontrado con un pequeño problema. La librería SDL_ttf, que voy a utilizar para generar los textos, sólo es capaz de crear superficies SDL con textos en una sola línea. Un sprite, una línea. Podría utilizar la generación de "glifos", pero sinceramente, no me apetece. Así que me toca añadir una capa más de abstracción a la clase que se encarga de los textos, creando otra clase capaz de albergar más de un sprite cada línea del texto.
Es un poco pesado de programar, pero qué le vamos a hacer. La clase será "claseParrafoTexto".
También estoy pensando en añadir soporte para varios tipos de letra, tamaño, color, fondo... Si lo hago bien, utilizaré estas mismas clases para la generación de los menús. Si es que algún día los hago :)

viernes, 22 de febrero de 2008

Niños, recordad siempre que...

Hay que inicializar todas las propiedades privadas de una clase en C++. Siempre. Siempre. Siempre. Siempre.
Siempre.


Siempre.

Por que si no, recolectas basura de la memoria. Y empiezas a llamar a métodos y funciones con basura en sus argumentos. Y de repente tu programa casca. Sin errores aparentes. De forma aparentemente aleatoria. Y encontrar lo que falla se vuelve un infierno.

Y eso no puede ser. Por que la salud mental sufre. Y nosotros queremos mantener la salud mental. ¿Verdad? Sí... Sí...

domingo, 17 de febrero de 2008

Representación de textos en escena interactiva

Una parte importante de juego son los textos. Por eso, voy a crear una clase sólo para gestionarlos. La clase se llamará claseTextos. Los textos en realidad serán sprites generados al principio de la escena. Los constructores de la escena llamarán a los métodos de la nueva clase para generar todos los textos. Cada texto será un sprite de una lista como propiedad privada de la clase.
En la ejecución de la escena interactiva se mostrará sólo un texto a la vez. Aprovecharé esto para que la clase haga aparecer y desaparecer los textos de forma suave.
Para las escenas en las que se hable con un personaje del juego, crearé otro tipo de escena, ya que la representación de los textos será distinta.