Sistema de habilidades Pilas C++

Aquí los desarrolladores anuncian las mejoras de pilas, nuevas versiones, tutoriales o eventos.

Sistema de habilidades Pilas C++

Notapor Juanxo » Jue Sep 02, 2010 3:02 pm

Después de dedicarle bastante esfuerzo, el equipo de C++ hemos conseguido terminar un sistema de habilidades, que si bien no es igual que el de hugo, hemos intentado que se parezca lo más posible dentro de lo posible.

Aquí está el código por si alguien quiere echarle un vistazo y tiene alguna sugerencia, o simplemente quiere alabar nuestras grandes virtudes de programador xD (Cartel de sarcasmo)

Habilidades.h
Habilidades.cpp

Básicamente lo que hemos buscado es la mayor facilidad de uso:
Ejemplo:

Código: Seleccionar todo
//Habilidades.txt
// Cada evento esta compuesto de dos indicadores de bloque (EVENTO y FINEVENTO, un nombre con el que registrarlo, y una lista de palabras reservadas de Pilas que representan los eventos posibles
EVENTO
Seguir_Raton
PILAS_RATONMOVIDO
PILAS_BOTONRATONPULSADO
FINEVENTO

//En el juego, el usuario tendria que hacer lo siguiente
class Seguir_raton
{
  // La funcion siempre debe tener este prototipo
  void funcion_a_usar(vector_entidades objetos, sf::Event* evento)
  {
     ....
  }
}

// Mismo nombre que en el fichero Habilidades.txt
Habilidades.registrar("Seguir_Raton", &Seguir_raton::funcion_a_usar);

// y si luego quiere enseñar una habilidad a un objeto, deberá:
Habilidades.enseniar("Seguir_Raton", mono)



Además, existe la posibilidad de registrar habilidades enteras desde código, y tengo un par más de cosas pensadas. El tema de usar clases para las funciones, no es estrictamente necesario, pero es como lo tenía hugo en su diseño, y nos ha parecido una manera elegante de montarlo

Aprovecho para hacer una pregunta de diseño: como veis el hecho de proporcionar una serie de funciones, que reciban callbacks o señales para inicializar el juego, crear el loop del juego, etc... al estilo de como funciona los programas de windows o la libreria GLUT ( OnInit(boost::signal<void (int ancho, int alto, std:.string& titulo)> ) y cosas por el estilo)

PD: Tengo que cambiar el nombre de EVENTO por HABILIDAD en los scripts, asi que no quiero comentarios ofensivos contra mi persona por esto xD. Comentarios de código son bienvenidos, pero la mayoria ya los he visto, solo que por pereza y por estar al comienzo del desarrollo, no he cambiado. Lo que más me interesa es ver si alguien tiene un enfoque diferente y que sea mejor, o este os parece bien.
Avatar de Usuario
Juanxo
 
Mensajes: 437
Registrado: Sab Ene 31, 2009 2:34 am
Ubicación: Madrid(España)

Re: Sistema de habilidades Pilas C++

Notapor Geo » Vie Sep 03, 2010 4:10 am

Me agrada la idea, aunque me gustaría ver un ejemplo para verlo en funcionamiento :).

Lo de las señales, ¿cuáles podrían ser? ¿OnInit, OnDraw, OnUpdate...?
La imaginación es el límite.
Visita mi blog en inglés o en español.
Geo
 
Mensajes: 244
Registrado: Jue Ago 10, 2006 3:51 am
Ubicación: México


Volver a Anuncios de los desarrolladores

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado