Reglas sin código
Cómo darle lógica a tu juego eligiendo opciones en el editor 0.4.0, con los ajustes de la Partida, los 10 disparadores, las 23 acciones, los personajes y las reglas en juegos hechos con código.
Corresponde aEditor 0.4.0 Para crear sin programar
En esta página
Una regla es una frase: Cuando pasa algo, entonces el juego hace algo. Las armas eligiendo de listas, en el panel Reglas (Alt+6). No escribes código: lo escribe el editor.
El panel tiene tres secciones: Partida, Reglas y Bot de prueba. La tercera está explicada en Bot de prueba.
La partida#
Arriba del panel está Partida, con lo que vale para todo el juego.
| Ajuste | Opciones |
|---|---|
| Reloj | Sin reloj, Cuenta regresiva: se pierde al llegar a cero o Cronómetro: mide cuánto tardas. |
| Segundos por dificultad | Solo con cuenta regresiva: un valor para Fácil, otro para Normal y otro para Difícil. |
| Puntaje final | Los puntos del jugador (gana el más alto), El tiempo que tardó (gana el más bajo) o Puntos más el tiempo que sobró. Es lo que entra a la tabla de mejores marcas. |
| Mostrar los puntos en pantalla | Muestra el contador de puntos durante la partida. |
| Mensaje al empezar | Un texto que aparece al comenzar, en español y en inglés. |
Anatomía de una regla#
- Pulsa Nueva regla.
- En Cuando, elige el disparador y llena sus datos.
- En Entonces, elige la acción y llena los suyos.
- Si quieres que pase más de una cosa, pulsa + Acción. Cada acción siguiente empieza con Y. La flecha sube una acción en el orden y la × la quita.
La regla queda escrita como una frase que puedes leer para comprobar que dice lo que querías. Un clic en la frase abre o cierra la regla.
| Parte | Qué es |
|---|---|
| La casilla a la izquierda de la frase | Activa o apaga la regla. Una regla apagada se queda en la lista, pero no hace nada: sirve para probar el juego sin ella sin tener que borrarla. |
| Cuando | El disparador: qué tiene que pasar. |
| Entonces | Las acciones, en orden. |
| Solo una vez por partida | La regla corre la primera vez que se cumple y no vuelve a correr hasta la partida siguiente. Úsala para avisos que no deben repetirse. |
| Borrar | Elimina la regla. |
Cuando el disparador o la acción piden una pieza o una zona, puedes elegir Todo lo que tenga la etiqueta, Una pieza (o Una zona) y, en las acciones, la pieza tocada. El botón Lo elegido toma lo que tengas seleccionado en la escena.
Los textos se escriben dos veces, en español y en inglés, porque cada jugador ve el juego en su idioma.
Disparadores#
Son diez.
| Disparador | Qué pide | Ejemplo |
|---|---|---|
| el jugador toca… | Una pieza o una etiqueta. | Cuando el jugador toca algo con la etiqueta «moneda»: quitar la pieza tocada, sumar 1 punto y reproducir el sonido moneda. |
| el jugador entra a la zona… | Una zona o una etiqueta. | Cuando el jugador entra a algo con la etiqueta «meta»: terminar la partida (victoria). |
| el jugador sale de la zona… | Una zona o una etiqueta. | Avisar con un mensaje cuando el jugador deja la zona de salida. |
| el jugador junta… | Cuántas (todas o una cantidad) y con qué etiqueta. | Al juntar tres piezas con la etiqueta «llave», abrir una puerta. |
| pasa el tiempo… | Los segundos y si se repite. | Cada 10 segundos, sumar un punto. |
| el jugador llega a… puntos | La cantidad de puntos. | Cuando el jugador llega a 5 puntos: mostrar «¡Tienes todas! Corre a la meta.» y reproducir el sonido victoria. |
| el jugador cae al vacío | Nada. | Cuando el jugador cae al vacío: reproducir el sonido caida. |
| el jugador aprieta un botón… | Qué botón: Saltar, Acción o Acción 2. | Al apretar Acción, impulsar al jugador hacia arriba. |
| un personaje toca al jugador… | Qué personaje, o cualquier personaje. | Cuando el guardia toca al jugador, reaparecer. |
| empieza la partida | Nada. | Cuando empieza la partida: hacer aparecer al personaje «Guardia» en «guardia» y que «guardia» patrulle entre 2 puntos. |
Los ejemplos de «toca», «entra», «llega a», «cae al vacío» y «empieza la partida» son frases reales del editor. Los demás son ideas de uso.
Acciones#
Son veintitrés.
| Acción | Qué hace y qué pide |
|---|---|
| sumar puntos | Suma la cantidad que digas. Un número negativo quita puntos. |
| mostrar mensaje | Muestra un texto. Pide el texto en español, en inglés y un estilo: Normal, Éxito (verde) o Peligro (rojo). |
| reproducir sonido | Toca un sonido de la lista. |
| terminar partida | Termina con Victoria, Derrota o Fin (sin ganar ni perder). |
| reaparecer | Devuelve al jugador al último punto de control. |
| mover pieza | Mueve una pieza en X, Y y Z durante los segundos que digas. Con Ida y vuelta, para siempre no se detiene. |
| abrir puerta | La pieza que elijas sube hasta dejar libre el paso. |
| quitar pieza | Quita una pieza de la escena. Puede ser la pieza tocada. |
| pintar pieza | Le cambia el color a una pieza. Puede ser la pieza tocada. |
| guardar punto de control | Desde ahora, el jugador reaparece en el punto de aparición que elijas. |
| llevar al jugador a… | Mueve al jugador a un punto de aparición. |
| impulsar hacia arriba | Lanza al jugador hacia arriba con la fuerza que digas. 20 es un salto alto. |
| quitar o dar tiempo | Los segundos que se pierden del reloj. Un número negativo los regala. |
| hacer aparecer un personaje | Crea un personaje en un punto de aparición. Pide un nombre corto, dónde aparece, un color y, si quieres, el rótulo con su nombre. |
| personaje: patrullar entre puntos | El personaje camina sin parar entre los puntos de aparición que marques, en orden. |
| personaje: seguir al jugador | El personaje sigue al jugador y se detiene a la distancia que digas. |
| personaje: quitarlo | Quita un personaje de la partida. |
| toma de cámara: mostrar una pieza | La cámara muestra una pieza durante unos segundos y después vuelve sola. Pide dónde se pone la cámara, contando desde la pieza. |
| poner rótulo o barra sobre una pieza | Un texto, una barra (de vida, de avance) o las dos cosas, sobre una pieza. El rótulo la sigue. |
| quitar rótulo de una pieza | Quita ese rótulo. |
| texto flotante sobre el jugador | Un texto corto que flota sobre el jugador, como «+1». |
| cambiar el cielo (día, noche) | Cambia el cielo a día, atardecer, noche o tinta, en los segundos que digas. |
| cambiar la vista (cámara y control) | Pasa a otra vista, con una transición. |
Las reglas que traen los prefabricados#
Varios prefabricados agregan su regla cuando los colocas, y el editor avisa: «Se agregó una regla para que funcione. Mírala en Reglas.» Son reglas como cualquier otra: puedes abrirlas, cambiarlas o borrarlas.
| Al colocar | Aparece la regla |
|---|---|
| Moneda | Cuando el jugador toca algo con la etiqueta «moneda»: quitar la pieza tocada, sumar 1 punto y reproducir el sonido moneda. |
| Zona de peligro | Cuando el jugador toca algo con la etiqueta «peligro»: reproducir el sonido golpe y reaparecer en el último punto de control. |
| Meta | Cuando el jugador entra a algo con la etiqueta «meta»: terminar la partida (victoria). |
| Punto de control | Al entrar a su zona, guardar el punto de control. |
| Trampolín | Al tocar algo con la etiqueta «trampolin», impulsar al jugador hacia arriba y reproducir el sonido salto. |
| Puerta con botón | Al tocar el botón, abrir la puerta y pintar el botón de verde. |
| Personaje, Personaje que patrulla, Personaje que te sigue | Una regla de «empieza la partida» por cada personaje colocado. |
| Cartel con rótulo | Una regla de «empieza la partida» que pone el rótulo sobre el cartel. |
Las reglas de moneda, peligro, meta y trampolín hablan de una etiqueta: se agregan una sola vez y valen para todas las piezas que la lleven. La segunda moneda no agrega otra regla. Si haces una caja y le pones la etiqueta peligro, también devuelve al jugador al último punto de control.
Las de los personajes y los carteles son una por copia, porque cada una nombra a su personaje o a su cartel.
Personajes#
Un personaje es alguien más en la escena, aparte del jugador: un vecino, un guardia, un amigo que te sigue. Siempre nace en un punto de aparición y se nombra por su nombre corto.
Lo más rápido es colocar uno de los tres prefabricados del grupo Personajes. Cada uno pone sus puntos de aparición en la escena y su regla en el panel:
| Prefabricado | Qué coloca | Qué hace su regla |
|---|---|---|
| Personaje | Un punto de aparición. | Lo hace aparecer ahí, parado. |
| Personaje que patrulla | Dos puntos de aparición, guardia y ronda. | Lo hace aparecer y patrullar entre los dos. |
| Personaje que te sigue | Un punto de aparición. | Lo hace aparecer y seguir al jugador. |
Para cambiar la ronda, mueve los puntos de aparición en el visor como cualquier pieza, o agrega más con el prefabricado Punto de aparición y márcalos en la acción personaje: patrullar entre puntos. Hacen falta al menos dos.
Cambiar la vista#
La acción cambiar la vista (cámara y control) pasa de una vista a otra en plena partida: tercera persona, primera persona, isométrica, cenital, lateral (2D) o plano (2D desde arriba). La opción la de la escena (volver) regresa a la vista original. Segundos de la transición dice cuánto tarda el cambio.
Cambia la cámara y también la forma de moverse. Si la regla la dispara un jugador, cambia solo la suya; si no, la de todos.
Para cambiar de vista al pasar por un lugar no hace falta una regla: una zona puede traer su propio cambio de vista. Está en Tipos de juego.
Cómo las reglas se vuelven código#
Las reglas no son un sistema aparte: el editor las traduce a código, el mismo que escribiría una persona. El enlace Ver el código que escriben estas reglas, al final de la lista, abre el script en el lugar exacto.
El código queda en scripts/principal.ts, entre dos marcas: // <reglas> y // </reglas>. Cada regla aparece con su frase como comentario. Este es el fragmento de las reglas 3 y 4 del juego del tutorial:
// Regla 3: Cuando el jugador toca algo con la etiqueta "moneda": quitar la pieza tocada, sumar 1 punto y reproducir el sonido moneda.
mundo.alTocar('#moneda', (pieza, jugador) => {
pieza.eliminar();
sumarPuntos(jugador, 1);
sonido.tocar('moneda', { para: jugador });
});
// Regla 4: Cuando el jugador toca algo con la etiqueta "peligro": reproducir el sonido golpe y reaparecer en el último punto de control.
mundo.alTocar('#peligro', (pieza, jugador) => {
sonido.tocar('golpe', { para: jugador });
jugador.reaparecer();
});Y la regla 5, «llega a 5 puntos», quedó dentro de la función que suma puntos:
/** Suma (o quita) puntos y actualiza lo que se ve. */
function sumarPuntos(jugador: Jugador, cantidad: number): void {
const antes = jugador.puntos;
jugador.puntos = Math.max(0, jugador.puntos + cantidad);
mostrarPuntos(jugador);
// Cuando el jugador llega a 5 puntos: mostrar "¡Tienes todas! Corre a la meta." y reproducir el sonido victoria.
if (antes < 5 && jugador.puntos >= 5) {
interfaz.mensaje(interfaz.t('r_regla_5_1'), { tipo: 'info', para: jugador });
sonido.tocar('victoria', { para: jugador });
}
}No necesitas entender este código para hacer juegos. Pero si quieres aprender a programar, leer lo que escriben tus propias reglas es un buen punto de partida.
Juegos hechos con código#
La plantilla Monedas contra reloj (con código) y los ejemplos de Primera persona, Plataformas 2D, Vista cenital, Isométrico, Híbrido, Mundo abierto y Multijugador local tienen su lógica escrita a mano. En ellos el panel Reglas empieza vacío y muestra este aviso:
«Este juego está hecho con código escrito a mano (pestaña Código). Si agregas reglas, el editor las escribe en un bloque aparte dentro del mismo archivo, sin borrar lo que ya hay. Las dos cosas funcionan a la vez.»
Dos cosas cambian en estos juegos:
- Los prefabricados no agregan su regla sin preguntar. Colocar una Moneda pone la pieza con su etiqueta
moneda, pero el editor no le suma lógica a un juego hecho con código por su cuenta. Lo que hace es mirar si tu código nombra lo que colocaste (su etiqueta, su pieza o su zona). Si no lo nombra, avisa: «Este juego está hecho con código y su código no usa «Moneda»: así no hace nada. Puedes agregarle su regla o programarlo a mano.» El botón Agregar su regla, dentro del aviso, crea la regla y abre el panel Reglas. Si tu código sí lo nombra, no hay aviso. - La primera regla enciende las Reglas. Desde ese momento el editor escribe su bloque en el script, los ajustes de la Partida (reloj, puntaje final) pasan a valer y los prefabricados vuelven a traer su regla, como en cualquier otro proyecto.
El editor busca el nombre en el código, nada más: no sabe para qué lo usas. En el ejemplo isométrico, por ejemplo, colocar una Moneda no muestra el aviso, porque su script ya nombra moneda (es el sonido que toca). Ahí la regla de la moneda se crea a mano, con Nueva regla.
Al encender las Reglas, el editor tiene en cuenta el código que ya estaba:
- Las tablas de puntajes de tu código se conservan. La Partida necesita su propia tabla de mejores marcas. El editor deja como están las que nombra tu código y agrega la suya al final. Hasta la 0.2.0 las reemplazaba, y el ejemplo isométrico quedaba con un error GB323: eso ya no pasa.
- El aviso «Ninguna regla termina la partida» no sale si tu código la termina. El editor cuenta también el final que pone el código escrito a mano (una llamada a
juego.terminar), además de las reglas con terminar partida y del reloj de cuenta regresiva.
Sigue con#
- Jugar dentro del editor: comprueba que tus reglas hacen lo que esperas.
- Bot de prueba: que un bot termine tu juego en todas las dificultades.
- Código: cuando las reglas no alcanzan.