Herramientas de usuario

Herramientas del sitio


eventos

¡Esta es una revisión vieja del documento!


Eventos

Para simular un mundo realmente dinámico, es importante conseguir que las entidades del mundo puedan reaccionar automáticamente ante los sucesos que ocurren en su entorno. Por ejemplo, nos puede interesar que un hombre nos salude al entrar en su jardín, que un puente se derrumbe al pasar por él, que una capa vuelva invisible al personaje que se la pone, que un gnomo se enfade si le roban su sombrero, o que un personaje nos responda cuando le hablamos. Muchas de estas cosas se pueden conseguir con un manejo cuidadoso de las propiedades y el método update, sobre todo en conjunción con la gestión de los estados de las criaturas. Sin embargo, si bien esta forma de hacer las cosas es muy potente, puede resultar incómoda, sobre todo si necesitamos gestionar muchas posibles reacciones. Por ello, AGE proporciona un mecanismo específico, más sencillo, para que los distintos componentes del mundo puedan reaccionar a sucesos, o eventos, que ocurren en él. Para ello, el programador sólo tiene que definir en sus entidades los llamados métodos de captura de eventos, que son métodos que AGE ejecuta automáticamente cuando sucede un evento dado.

Conviene aclarar que, a lo largo de esta sección y el resto de la documentación, se utilizará la palabra “evento” con dos sentidos diferentes: por un lado, el evento propiamente dicho (un suceso que desencadena una reacción), y por otro, el método de captura del evento (el método que ejecuta AGE, permitiendo al programador definir dicha reacción).

Métodos de captura de eventos

Como acabamos de anticipar, el método de captura de un evento (que, para abreviar, también llamaremos evento a secas) es un método que AGE ejecuta automáticamente cuando ocurre en el mundo un suceso determinado. Normalmente, un evento se define en una entidad dada y se ejecuta como reacción a algo que sucede en el entorno de esa entidad.

Por ejemplo, en una habitación podemos definir un evento que se active cuando una criatura entre en dicha habitación. Para ello, podemos ir a la pestaña “Código y propiedades” de dicha habitación, agrandar el campo de código y, en el menú contextual (botón derecho), seleccionar “Insertar código - Definir eventos de habitación”. Al hacer esto, veremos en el menú desplegable los distintos eventos de habitación que están disponibles, y podremos seleccionar el que nos interesa, en este caso “Al entrar en la habitación”, que nos genera una plantilla como sigue:

/*
Método que captura el evento lanzado cuando una criatura entra en una habitación.
*/
void onEnterRoom ( Mobile aCreature )
{
 
    //aCreature: criatura que entra en la habitación.
    //self: habitación en la que entra (es decir, esta habitación).
 
}
eventos.1467395250.txt.gz · Última modificación: 2016/07/01 19:47 por al-khwarizmi