Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Triggers

Iniciado por NeLo, 08 de Junio de 2003, 01:09:51 PM

« anterior - próximo »

NeLo

                                Hi.

¿Cómo administrarías los triggers y la interactividad de un escenario?

Para los triggers, he pensado en crear un tipo de objeto (llamémoslo Trigger) el cual sería invisible para el jugador (en el editor podría ser cualquier tipo de shape), y cuando el jugaro tocara, ejecutase las acciones pertinentes descritas en un archivo asociado al Trigger.

Y para la interactividad con objetos, pues crear otro tipo de objeto (llamémoslo InteractiveObject ?¿), el cual tendría otro archivo asociado, que se leería cuando el jugador, tocase, atacase, accionara, etc. dicho objeto.

¿Qué os parece?

Saludos.

PD: Si os sirve de algo, estoy pensando en un RPG.                                
Drowning deep in my sea of loathing

MChiz

                                Yo en mi juego lo he hecho asi. Los defino desde el MAX, con gizmos. Y asi tambien mola porque le puedes asociar movimientos de camara y demas cosas, para hacer cinematicas con el motor.                                

Grugnorr

                                Échale un ojo al Crisol Engine ;)

http://usuarios.lycos.es/crisolengine/


La idea básica sería usar Observers(Listeners en Java)                                
hat the hells!

NeLo

                                ¿Podrías explicar el concepto de Observers Grugnorr?

Gracias.                                
Drowning deep in my sea of loathing

Grugnorr

                                http://calisto.sip.ucm.es/people/pedro/das...gn_patterns.zip

Ahí tienes el design patterns entero


Aquí cada patterns en un pdf:
http://calisto.sip.ucm.es/people/pedro/das/

Cuando tenga algo de tiempo te respondo mejor ;)

PD: Dale las gracias a Daventry por los links, es de una asignatura que sólo pueden pillar los de la superior  :(                                
hat the hells!

NeLo

                                Muchas gracias.                                
Drowning deep in my sea of loathing

TurMach

                                Al trabajar con triggers lo que he hecho yo es dividir el problema en dos partes:

1. La parte de la logica del trigger, el trigger en si. Es codigo puro que implementa la logica del trigger

2. Variables. Tengo tres tipos basicos, estas si se pueden manejar desde MAX pe.

tipos:
 - Regiones
 - Cronometros
 - Numerico
 
El trigger esta implementado mediante un lenguaje script y tiene acceso a las variables.

El esquema es muy simple, no creo que sea necesario usar un patron observador.                                

MChiz

                                Yo opino igual que TurMach ( Marc? :b )                                

Vicente

                                Hola,

  un listener es un objeto que se dedica a "escuchar" eventos del tipo que tiene registrado. Por ejemplo: tu tienes un boton, y le añades un listener de acción (actionListener en java). En java, eso significa que si se pulsa el botón, se ejecuta el código del listener (por ejemplo, cambias de color el botón). Algo como:

class x {
...
JButton miBoton;
/*hacemos el boton*/
miBoton.addActionListener(new MiListener);
...
}

  Tu tendrás otra clase que sea el MiListener, que definirá que hace el botón cuando se pulse. Podrías hacer que el botón escuchara otros eventos (que el ratón pase por encima, que lo arrastren,...).

  Vamos, resumiendo: tu le dices a cada componente a que tipo de acciones responde, y cuando se produce esa acción, otro trozo de código se encarga de determinar que pasa.

  Espero que te sirva de algo (madre que dormido estoy ya a estas horas...). Un saludo!

Vicente                                

NeLo

                                Lo que voy a hacer es crear el código de la función en C++, y usará las variables correspondientes en cada situación leyéndolas del escenario creado en MAX.

Ejemplo:

Cuando el personaje se acerque a menos 1 metro de una caja, esta explotará.

En MAX, en las "User defined properties", escribiré:
Trigger (Variables) Función_a_Ejecutar (Variables)
TriggerDistance (Player, 1) FunctionExploit (Box)

Esto básicamente, llamará a la función FunctionExploit con el parámetro Box (objeto a explotar) cuando el objeto Player esté a 1 metro o menos de distancia.

A grosso modo, esto es lo que haré.

Saludos.                                
Drowning deep in my sea of loathing






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.