Las reglas

Un actor puede tener asociado un comportamiento definido a partir de una serie de reglas establecidas en el editor de reglas. Las reglas regulan las acciones que el actor ejecuta.

Cada vez que se selecciona un actor, aparecen a la derecha de su caja de selección etiquetas numeradas que representan las diferentes reglas que lleva asociadas.

nave_1

Si al actor aún no se le ha asociado ninguna regla, únicamente aparece el símbolo . Haciendo clic sobre este símbolo, se añaden etiquetas al actor, y haciendo doble clic sobre una etiqueta, se accede al editor de reglas.

Las etiquetas, además, facilitan la eliminación, copia y cambio de posición de las reglas. Para eliminar una regla hay que situarse sobre su etiqueta y dar a “Suprimir”. Una regla se puede copiar con la combinación de teclas “Ctrol+C y “Ctrol+V” sobre la etiqueta de la regla que se quiere duplicar. Para cambiar de posición una regla  sólo hay que arrastrarla a la posición deseada.

EL EDITOR DE REGLAS

El editor de reglas tiene  un aspecto como el que se muestra en la siguiente figura. En el lateral izquierdo, aparecen dos bloques de botones sombreados de diferente color, sepia para los botones que  permiten poner las condiciones y azul para los que establecen las acciones a realizar.

En la parte superior, al lado de la palabra “Rule, se puede introducir un nombre que identifique la regla. Una vez que la regla tiene nombre, pasando el ratón por encima de la etiqueta en el editor de Gamesonomy, este nombre se visualiza.

Las reglas, están representadas gráficamente mediante un diagrama de flujo o grafo creado a partir de la selección de condiciones y acciones.

En la parte superior del grafo aparece un círculo, si está de color rojo, la regla no está activa, si está verde, la regla sí estará activa. Para activar y desactivar una regla, solo hay que hacer clic sobre este círculo.

Para colocar una condición o una acción en el grafo, basta con arrastrar el botón correspondiente desde la barra de botones lateral, al lugar del grafo donde se quiera colocar. Una vez situado en el grafo, hay que hacer clic sobre él para configurarlo. Para salir de la regla, se puede hacer clic en la casilla “x” situada en la esquina superior derecha del editor de reglas o directamente hacer clic fuera del editor de reglas.

Al insertar una condición, se crean automáticamente dos salidas. La salida derecha se ejecutará si una vez evaluada la condición, el resultado es verdadero. Si el resultado de evaluar la condición fuese falso, se ejecutará la salida izquierda.

grafo_reglas

A menudo, cuando se está programando un botón de condición o de acción, aparece el botón funcion4 que despliega un menú que permite elegir un atributo o propiedad de algún elemento de nuestro juego:

funcion2

    • Me: accede a las propiedades del actor sobre el que se construye la regla
    • Cast: accede a las propiedades de cualquier otro actor de la escena
    • Scene: accede a las propiedades de la escena
    • Game: accede a las propiedades del juego

Para salir de la configuración de cualquier condición o acción, basta con hacer clic en la “x” de la esquina superior derecha de esta condición o acción, o directamente hacer clic fuera de ella, aceptándose así la condición o acción programada.

BOTONES DE CONDICIÓN DEL EDITOR DE REGLAS

Una vez colocada una condición en el editor de reglas, haciendo clic sobre el icono incrustado en el grafo, aparecen las opciones que permiten configurar esta condición.

Key:  evalúa el estado de una tecla del teclado.  Para configurar esta condición, en la casilla “key”  indica la tecla que se quiere evaluar. La casilla “KeyMode” ofrece la posibilidad de elegir entre las opciones “down” (tecla pulsada), “up(tecla no pulsada) y “pressed (tecla pulsada y mantenida).

Una vez establecida la condición que evalúa el estado de la tecla, habrá que incluir en la regla una acción a tomar o una nueva condición a evaluar. La siguiente figura muestra un ejemplo del grafo que representa que si se pulsa la tecla Enter, se realizará una animación.

 Touch: evalúa el estado del botón izquierdo ratón o del touch en la pantalla. Para configurar esta condición,  la casilla  “mode ofrece la posibilidad de elegir entre “down (botón del ratón pulsado), “up(botón del ratón no pulsado), “isover (ratón pasando por encima del objeto al que se le aplica la regla)  y “tap”  (se hace click o tap sobre él). La casilla “onActor” activa, significa que sólo se tendrá en cuenta el touch, cuando se hace sobre el actor. 

Timer: establece un periodo de tiempo determinado. Su funcionamiento consiste en realizar la acción establecida en la salida derecha de la condición cada espacio de tiempo especificado en la casilla “seconds” y la acción establecida en la salida izquierda de la condición el resto del tiempo.

Si al rellenar alguna casilla vemos a su izquierda los botones   y , podremos utilizarlos para incluir valores en esa casilla.

El botón  permite introducir valores correspondientes al actor al que se le está asignando la regla, “Me”, a cualquier otro actor de la escena, “Cast”, a la escena, “Scene” o al juego, “Game”.

El botón  muestra una lista de operadores que pueden incluirse en el cálculo del valor del atributo. Los operadores que se ofrecen son:

Collidescontrola si el actor colisiona con algún actor 0 actores de la escena, seleccionando la etiqueta del actor con el que se controlará su colisión en la casilla “tag“.  Hay que ser cuidadoso a la hora de asignar etiquetas, ya que a un mismo actor se le pueden asignar más de una etiqueta y varios actores pueden tener asignada una única etiqueta.

Check: evalúa una propiedad booleana (verdadero/falso) de un actor, del juego o de la escena, incluida en la casilla “property”.

regla_check

Compare: compara los dos operandos introducidos en las casillas en blanco. 

regla_compare2

Entre estas dos casillas, hay un botón que muestra un menú desplegable que contiene las diferentes opciones de comparación que pueden realizarse entre los operandos incluidos en estas casillas.

BOTONES DE ACCIÓN DEL EDITOR DE REGLAS

Las acciones pueden ejecutarse después de evaluar si una condición se cumple o no, o se realizan siempre sin necesidad de que se establezca  condición alguna.

Change: cambia el valor  de una propiedad de un actor introducida en la casilla property por el valor introducido en la casilla value.

Spawnmuestra en la escena un actor que está creado con anterioridad. Si el actor no está activo en la escena (sus reglas no se ejecutan, no se ve en el juego aunque sí está visible en ventana de edición)  spawn”  lo  activará. El boton  de la ventana Properties” en rojo identifica un actor inactivo en la escena

accion_spawn2

El actor que se va a mostrar se selecciona en el desplegable “actorID, donde aparecen todos los actores de la escena. Las casillas “x” e “y” indican la posición relativa al centro del actor propietario de regla en la que se colocará el actor. Este actor, además, aparecerá rotado respecto a su posición original un ángulo indicado en la casilla “angle.

Nota: en cualquier regla, si se introduce un valor positivo en “angle” , el giro se realiza en sentido contrario a las agujas del reloj, y por lo tanto, si el valor que se introduce es negativo, el giro se hará en el sentido de las agujas del reloj.

  Destroydestruye el actor, lo elimina de la ventana play”.  

Cuando se elimina un actor del juego,  hay que tener en cuenta si está asociado a otro actor en el juego, por ejemplo, si se quiere realizar un “spawn” de él posteriormente, no se podrá.

 Translate: traslada el actor los píxeles indicados en la casillaspeed y el ángulo indicado en la casillaangle.

Translate totraslada el actor hacia el punto de coordenadas (x,y) indicadas en las casillas “posX y “posY”, el desplazamiento en píxeles indicado en la casillaspeed”.

reglas6

Play sounden la casilla “sound” se selecciona el sonido que se activará en el juego.

sound

accion_scale

Scale: escala un actor respecto a las coordenadas (x, y) indicadas  en “pivotX” y en “pivotYEn “scaleX” / scaleY” se introduce el factor de escalado en “x” y en y”.  En estas casillas únicamente se podrán incluir valores numéricos. Si se introduce un valor negativo en “scaleX, el actor se invierte (refleja) respecto al eje y, y si se introduce un valor negativo en “scaleY, el actor se invierte (refleja) respecto al eje x.

Apply force: aplica una fuerza lineal indicada en la casilla “strength con un ángulo indicado en la casilla “angle.

Apply force toaplica la fuerza lineal especificada en la casilla “strength”, desde el actor, al punto indicado en las coordenadas (xy) introducidas  en las casillas “x e “y” respectivamente. Con estos valores y la posición del actor se calcula el ángulo con el que se aplica la fuerza.

Apply torqueaplica una fuerza con el ángulo indicado en la casilla “angle. Para que esta acción pueda realizarse, el actor tiene que tener activas sus propiedades físicas. Si se aplica la fuerza continuamente, es decir, si no se indica que se tenga que cumplir una condición para que se ejecute esta acción, lo que estamos programando es un impulso continuo, y por lo tanto el actor girará sobre sí mismo indefinidamente.

Animate: Crea la animación de un actor.  Cada imagen que forma la animación, se incluirá con el botón . Una vez incluidas las imágenes, en la casilla “fps” se indicará cuántos frames por segundo se quieren mostrar. Las imágenes se verán en el orden en que aparecen en esta ventana.

        Rotatepermite rotar un actor con una velocidad introducida en la casilla “speed. La rotación se hace respecto a las coordenadas (x, y) indicadas en “pivotX y “pivotY” respectivamente.

Rotate torota un actor hacia una posición de coordenadas (x, y) de la escena indicada en las casillas “x” e “y“, respecto al punto de coordenadas (x, y) indicado en “pivotXy “pivotY. En “speedse incluirá la velocidad con la que se quiere rotar. Si el valor introducido es 0, no se realizará ningún giro. En estas casillas únicamente se podrán incluir valores numéricos.

Naccion_new_layerew layer: si la casilla “stop” está seleccionada y se está ejecutando un juego, éste se para, y  sobre la escena activa se carga la escena (capa) especificada en “scene”.

new_layer2

accion_destroy_layerDestroy layer: después de haber hecho una pausa en la ejecución de un juego y habiendo cargado una capa por medio de la acción New layer, esta acción elimina la capa superpuesta para que aparezca la escena en la que estábamos situados antes del parar la ejecución del juego, dejando el juego situado en el momento en que se realizó la interrupción.

destroy_layer

reglas9Change scene: carga en el juego la escena que se especifique en la casilla  “scene”.

Todas las condiciones y acciones del editor se han explicado individualmente, pero en la confección de un juego lo normal es que las reglas no sean tan sencillas y requieran de condiciones y acciones anidadas para conseguir una determinada situación.

 

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s