Mi shooter 3D (tutorial)
Capítulo 1Base Infernal
En este tutorial vas a hacer un shooter en primera persona al estilo de los clásicos de los 90, como Doom: pasillos de una base, demonios que te persiguen, una pistola, botiquines, munición, una llave roja y una puerta que solo se abre con ella. Sin escribir ni una línea de código.

Por el camino aprenderás:
- Formas: construir el nivel dentro del propio editor, con suelos, paredes, escaleras y texturas, y abrir puertas en las paredes.
- Luces: dar ambiente con luces de colores.
- Objetos de juego 3D: el jugador en primera persona, los enemigos y los objetos para recoger, listos para usar.
- BreynFlow en 3D: moverse con el ratón y WASD, disparar, perseguir, morder, recoger y abrir puertas.
Cuando quieras, pulsa Siguiente.
Capítulo 2El proyecto
El editor se abre en la pestaña 3D con la escena main: un cielo, una luz (el sol), una cámara y un plano.

Vamos a hacer el nivel con formas, y el jugador traerá su propia cámara, así que borra lo que sobra: en la Jerarquía, haz clic en Main Camera, luego Ctrl+clic en Plane, y pulsa Supr.
Los dibujos y los sonidos
Para no tener que dibujarlo todo, este tutorial trae los dibujos y los sonidos del juego: copia los dibujos y sonidos al proyecto (descargar el ZIP).
En el panel Proyecto aparecen dos carpetas: sprites (el demonio, el arma, el fogonazo, el botiquín, la munición y la llave) y sonidos (el disparo, el dolor, la muerte, el golpe, recoger y la puerta).

Capítulo 3El suelo
El nivel tendrá tres salas en fila: la de inicio, la de los demonios y la sala final, con la salida. Mide 12 metros de ancho y 30 de largo.
Arriba del visor 3D está el botón Formas. Ábrelo:


Las texturas se miden en metros: por mucho que estires una forma, nunca se deforman, y siguen de una forma a la de al lado. La primera vez que usas una, se copia a la carpeta textures del proyecto.
Capítulo 4Las paredes
- Pared norte: z = -24.
- Pared centro: z = -6 (separa la primera sala de la segunda).
- Pared de la puerta: z = -18 (separa la segunda sala de la final).

Capítulo 5Puertas en las paredes
Ahora no se puede pasar de una sala a otra. Vamos a abrir un hueco en las dos paredes del centro, con la herramienta Hacer un hueco: una forma «muerde» a otra.

Haz lo mismo con la Pared de la puerta: otro cubo, Hueco puerta, igual pero en z = -18.
Capítulo 6Techo, escaleras y una plataforma
El techo: Formas > Suelo, llamado Techo, con Size 12, 0.2, 30, Position 0, 3.1, -9 y la textura Techo. Ya no se ve el interior desde arriba: haz clic en el ojo del Techo en la Jerarquía para esconderlo mientras construyes (y vuelve a mostrarlo al terminar).
Las escaleras: en la segunda sala, unas escaleras suben a una plataforma donde estará la llave.

Capítulo 7Las luces
Con el techo puesto, dentro está oscuro: el sol no entra. Mejor: así damos ambiente con luces.

Capítulo 8El jugador

Trae su cuerpo, su colisión con forma de cápsula y una Cámara a la altura de los ojos: lo que ve el jugador. Ya está en el grupo player.
- CUANDO: Cada fotograma.
- HAZ: Mover con los controles. Haz clic en plataformas y, en la ficha, elige el estilo primera persona y Velocidad 5 (en 3D se mide en metros por segundo).

¡A probarlo!
Guarda (Ctrl+S) y pulsa ▶. Haz clic en el juego: el ratón mira y WASD (o las flechas) camina. Pasa por las puertas y sube a la plataforma. Con Esc sueltas el ratón; con un clic lo vuelves a atrapar.

Capítulo 9La pantalla del jugador
Ahora, lo que se ve encima del juego: el arma, la mira, la salud y las balas. Antes, dos ajustes para que se vea bien en cualquier ventana. Abre Proyecto > Configuración del proyecto:
- Escribe stretch en el buscador, haz clic en Ventana y pon Estirar > Modo en canvas_items: la pantalla del jugador crece con la ventana.
- Escribe filtro de textura, haz clic en Texturas (en Renderizado) y pon Filtro de Textura Predeterminado en Nearest: los píxeles se ven nítidos.

Vuelve a la pestaña 2D: ahí se coloca la pantalla del jugador. El rectángulo azul es la pantalla, de 1152 × 648.

Capítulo 10Disparar
Las balas y la salud son variables globales: las usan el jugador, los enemigos y los objetos. Añade BreynFlow al texto Salud con estas reglas:
- Empezar. CUANDO: Empieza la escena. HAZ: Cambiar variable salud (global): poner a 100; balas (global): poner a 20; llave (global): poner a 0.
- Mostrar la salud. CUANDO: Cambia una variable: salud (global). HAZ: Cambiar texto de este objeto a SALUD: {salud}.
- Mostrar las balas. CUANDO: Cambia una variable: balas (global). HAZ: Cambiar texto del texto Balas a BALAS: {balas}.

Ahora, en el Jugador, una regla nueva, Disparar:
- CUANDO: Tecla o botón. Haz clic en ui_accept y elige mouse_left: el clic izquierdo del ratón.
- SI: Comparar variable balas (global) mayor que 0.
- HAZ: Disparar. En la ficha, cambia health por vida: el disparo quitará 25 a la variable «vida» de lo que alcance.
- HAZ: Cambiar variable balas (global): restar 1.
- HAZ: Reproducir sonido sonidos/disparo.wav.
- HAZ: Mostrar u ocultar: mostrar el Fogonazo; Esperar 0.05 s; ocultar el Fogonazo.

Pruébalo: cada clic suena, sale el fogonazo y baja el contador de balas. Con 0 balas, ya no dispara.
Capítulo 11El demonio

- Empezar. CUANDO: Empieza la escena. HAZ: Cambiar variable vida (del objeto: cada demonio tiene la suya): poner a 50. Dos disparos y cae.
- Perseguir. CUANDO: Cada fotograma. SI: Distancia de este objeto al Jugador menor que 12. HAZ: Mover hacia (seguir) el Jugador, velocidad 2.5, distancia de parada 1.2. En 3D camina por el suelo y no atraviesa las paredes.
- Morder. CUANDO: Pasa el tiempo: cada 1 s. SI: Distancia al Jugador menor que 1.8. HAZ: salud (global): restar 10; Reproducir sonido herido.wav; mostrar el panel Daño, esperar 0.15 s y ocultarlo.
Capítulo 12Herido y derrotado
Cuando un disparo alcanza al demonio, le quita 25 de su «vida» y le manda el mensaje hit. Dos reglas más para el Demonio:
- Herido. CUANDO: Llega un mensaje: hit. HAZ: Reproducir sonido dolor.wav; Cambiar propiedad modulate del Dibujo a #ff5050 (rojo); esperar 0.12 s; modulate a white.
- Derrotado. CUANDO: Cambia una variable: vida (del objeto). SI: vida (del objeto) menor o igual que 0. HAZ: Reproducir sonido muerte.wav; Destruir este objeto.

Ahora, una horda: selecciona el Demonio y pulsa Ctrl+D dos veces. Pon una copia en 3, 0, -15 y otra en la sala final, en 2.5, 0, -20.5. Las copias comparten las reglas, pero cada una tiene su propia vida.

Capítulo 13Botiquines y munición

Capítulo 14La llave roja y la puerta
La llave: otro objeto para recoger, Llave, sobre la plataforma: 4.25, 1.5, -13, con sprites/llave.png. Su regla: CUANDO: Choque con player. HAZ: llave (global): poner a 1; Mostrar mensaje «¡Tienes la llave roja!» durante 2 s; sonido recoger.wav; Destruir.
La puerta: Formas > Cubo, llamado Puerta, con Size 2.4, 2.8, 0.3 y Position 0, 1.3, -18: tapa el hueco de la Pared de la puerta. En Aspecto, la textura Puerta metálica (sale una vez por cara). Añádele BreynFlow:
- Empezar. CUANDO: Empieza la escena. HAZ: abierta (del objeto): poner a 0.
- Abrir. CUANDO: Cada fotograma. SI: Distancia de este objeto al Jugador menor que 3; llave (global) igual a 1; abierta (del objeto) igual a 0. HAZ: abierta: poner a 1; sonido puerta.wav; Mover a: este objeto, desplazando (0, 2.8, 0) en 1 s. Sube y deja pasar.
- Cerrada. CUANDO: Pasa el tiempo: cada 2 s. SI: Distancia al Jugador menor que 3; llave (global) igual a 0. HAZ: Mostrar mensaje «Necesitas la llave roja» durante 1.5 s.

Capítulo 15La salida y la derrota
La salida: Formas > Cilindro, llamado Salida, en la sala final: Radius 1, Height 0.1 y Position 0, 0.05, -22.5, con un color verde en Aspecto. Añádele BreynFlow:
- Ganar. CUANDO: Cada fotograma. SI: Distancia de este objeto al Jugador menor que 1.2; ganado (del objeto) distinto de 1. HAZ: ganado: poner a 1; Mostrar mensaje «¡NIVEL COMPLETADO!» durante 3 s; Esperar 3 s; Reiniciar la escena.
La derrota: en el texto Salud, una última regla:
- Morir. CUANDO: Cambia una variable: salud (global). SI: salud (global) menor o igual que 0. HAZ: Activar o desactivar: desactivar al Jugador; Mostrar mensaje «¡HAS MUERTO!» durante 2 s; Esperar 2 s; Reiniciar la escena.

Capítulo 16¡A jugar!
Muestra el Techo (el ojo de la Jerarquía), guarda (Ctrl+S) y pulsa ▶.

Mientras juegas, mira la pestaña BreynFlow: cada regla parpadea cuando se ejecuta. Si algo no funciona, ahí se ve qué condición no se cumple.
Capítulo 17Y ahora, ¿qué?
¡Tienes tu propio shooter! Algunas ideas para seguir:
- Más niveles: crea otra escena con otras formas y, al ganar, usa Cambiar de escena en vez de reiniciar.
- Lava: un suelo con la textura Lava y una regla «Cada fotograma, si la distancia al Jugador es menor que 2: salud restar 1».
- Más armas: con «Tecla o botón» mouse_right, un disparo más fuerte que gasta más balas.
- Música: una regla «Empieza la escena» con Reproducir música.
- Tus dibujos: abre los sprites en la pestaña Sprites y hazlos tuyos, o dibuja otros enemigos.
- Convertir en malla: cuando el nivel esté terminado, Formas > Convertir en malla lo hace más ligero para el móvil.
