miércoles, 19 de noviembre de 2008

Eh! que me bloquean...

Tengo tan olvidada esta página, que google cree que soy "spam". Bueno, señores de google, no se preocupen. Respondí a la solicitud y al "captcha" de sonido (por que la imagen era imposible de descifrar).
Este proyecto esta en parada técnica. Ahora mismo estoy buscando trabajo y no puedo estar con esto. Pero volveré.

domingo, 18 de mayo de 2008

Ping?

Parece que el proyecto esta parado, pero no olvidado.
De momento, publicaré lo que tengo hecho hasta ahora, ya que el servidor donde alojaba antes ya no está disponible. ¿Alguien me ofrece unos cuantos megabytes en línea? Con 250 me conformo :)

martes, 15 de abril de 2008

ping?

Estoy vivo, pero últimamente hay mucho trabajo: una nueva PS3 al que instalar linux, creación de un media server (media tomb) para la PS3, un guerrero undead de nivel 21 y subiendo, fiestas de cumpleaños con gente perdiendo el conocimiento... En fin, muchas cosas sucediendo.

lunes, 31 de marzo de 2008

¿Textos al pinchar en sprites? Hecho.

Estoy pensando ahora en más tipos de eventos y en disparar más de una acción por evento. También estaría bien hacer un par de escenas de ejemplos y publicar unos binarios.

martes, 25 de marzo de 2008

Temas pendientes

Que no se me olvide que tengo pendiente:
  • Crear método "void claseTexto::SetParrafoVisible(unsigned short int parrafo)". Cambia el estado del parrafo indicado a visible.
  • Crear método "void claseTexto::print()". Hacer tick() al parrafo visible. Si devuelve true, imprime el párrafo marcado como visible. si no, es que ya no es visible. Ajustar propiedades privadas para el nuevo estado.
  • Crear contador "tick" y bool Visible en claseParrafoTexto.
  • Crear metodo "bool claseParrafoTexto::tick()". tick++. Cuando tick supere un valor, cambiar visible a false y devolver false. Si no, devolver true.
  • Crear nueva accion-evento "muestra texto" y llamadas correspondientes en claseJuego.
  • Hacer prueba de pinchar en sprite y mostrar texto.
  • Ir pensando en eventos para gestionar objetivos del juego.
  • Ir pensando en condicionar la construcción de escenas dependiendo de los objetivos conseguidos.
  • Ir pensando en nuevos tipos de escena: diálogo, lucha...

miércoles, 19 de marzo de 2008

Limpieza y textos

Voy lento pero seguro. Ya hemos hecho limpieza en las librerías y arrays del juego. El código en esa parte ha quedado mucho más limpio y comprensible.
Ahora hay que seguir con las clases para los textos. Es más complicado de lo que parece, ya que hay un montón de propiedades a tener en cuenta para presentar los textos adecuadamente. Y la cosa se complica mucho más si quiero hacer animaciones chulas con el texto. Más sobre este tema pronto.

miércoles, 12 de marzo de 2008

Array como argumento de función.

Un array pasado a una función como argumento, se convierte en puntero para la función.

Lo explican muy bien aqui: http://www.eskimo.com/~scs/cclass/notes/sx10f.html

Qué cosas tiene el C... hay que quererlo tal y como es :)

lunes, 10 de marzo de 2008

¿Arrays de enteros o array de struct?

Me he dado cuenta de que la forma de almacenar los datos del juego, como los eventos por escena, los nombres de los ficheros y demás, que estoy utilizando es, sinceramente, una chapuza.
Casi todos los datos son listas de enteros y enums. Los meto en arrays de esta forma:

int datosTextos[]= {
12, 0, 0, NORMAL_PEQ, 128, 128, 128, 50, 50,
12, 0, 1, NORMAL_PEQ, 128, 128, 128, 50, 50,
12, 1, 2, ABERRED_GRA,255, 0, 0, 200,300
};

Luego, en los constructores de los objetos, por ejemplo claseEscena, utilizo funciones que me sacan los datos y construyo las propiedades privadas que necesito en ese momento.
El problema que tiene esta forma de trabajar es que sólo puedo meter enteros en los arrays. Los literales de texto van a parte en funciones específicas. He ahí la chapuza.
Estoy pensando en utilizar structs. Así, podría meter un literal char * junto con los int para cada elemento del array. Podría mantener las llamadas a las funciones y la librería de datos quedaría mucho más clara.
Ya veremos qué hago. Lo dejamos en la lista de "estaría bien si...".

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.

lunes, 28 de enero de 2008

ping?

Es cierto, he dejado descuidado el blog y por lo tanto, el desarrollo. Pero tengo buenas escusas. Mudanza, falta de conexión, estudio para certificarme como administrador de sistemas...

Pero hay planes de desarrollo muy interesantes. Si hay suerte, voy a ayudar a un amigo a realizar su proyecto de fin de carrera. Más noticias pronto.