Proyecto final básico con múltiples archivos ".rpy"
¡Hola, creadores de novelas visuales! Bienvenidos a la decimosexta entrada de esta guía de Ren'Py en español. En el [post anterior] aprendimos a usar `labels` para estructurar nuestras historias. Hoy vamos a hacer un **proyecto final básico** que combine todo lo que hemos aprendido hasta ahora: personajes, diálogos, transiciones, música, menús personalizados y más. Además, daremos un paso hacia temas intermedios al organizar nuestro proyecto en **múltiples archivos `.rpy`**, una técnica que usan los desarrolladores para proyectos más grandes. ¡Este será un gran cierre para los conceptos básicos antes de pasar a temas más avanzados! Empecemos.
1. ¿Qué vamos a crear?
Vamos a crear una novela visual corta con Perrito y Gatita, donde el jugador tomará una decisión que llevará a dos finales diferentes. El proyecto incluirá:
- Personajes y diálogos.
- Fondos y transiciones.
- Música y efectos de sonido.
- Un menú principal personalizado.
- Rutas simples con `labels`.
- Organización en dos archivos `.rpy`.
2. Organizar el proyecto en múltiples archivos `.rpy`
Hasta ahora, hemos trabajado todo en un solo archivo (`script.rpy`). Pero en proyectos más grandes, es mejor dividir el código en varios archivos para mantenerlo organizado. Hoy usaremos dos archivos:
- `definiciones.rpy`: Para definir personajes, música y otros elementos.
- `escenas.rpy`: Para las escenas y el flujo de la historia.
1. **Crear los archivos**:
- En la carpeta `game` de tu proyecto, crea dos nuevos archivos: `definiciones.rpy` y `escenas.rpy`.
- Asegúrate de que `script.rpy` (el archivo principal) llame a estos archivos para que Ren'Py los ejecute.
2. **Configurar `script.rpy`**:
- Abre `script.rpy` y asegúrate de que incluya los otros archivos. Escribe esto al inicio:
```
call definiciones
call escenas
```
- Esto asegura que Ren'Py cargue primero las definiciones y luego las escenas.
3. Definir personajes y música en `definiciones.rpy`
En este archivo, colocaremos todas las definiciones iniciales.
1. Abre `definiciones.rpy` y escribe:
```
label definiciones:
# Definir personajes
define perrito = Character("Perrito", color="#00B7EB")
define gatita = Character("Gatita", color="#FF69B4")
# Definir música y sonidos
define audio.playa_musica = "audio/playa_musica.ogg"
define audio.sorpresa = "audio/sorpresa.wav"
return
```
- Aquí definimos a Perrito y Gatita, y declaramos los archivos de audio (como hicimos en el post del 9 de abril).
4. Crear las escenas en `escenas.rpy`.
En este archivo, escribiremos la historia con `labels`, transiciones y diálogos.
1. Abre `escenas.rpy` y escribe:
```
label escenas:
jump inicio
label inicio:
scene bg playa with fade
show perrito at left
show gatita at right
play music audio.playa_musica loop
narrator "Perrito y Gatita están en la playa, disfrutando de un día soleado."
perrito "¡Hola, Gatita! ¿Qué quieres hacer hoy?"
menu:
"Jugar a lanzar un frisbee.":
jump jugar_frisbee
"Buscar conchas en la playa.":
jump buscar_conchas
label jugar_frisbee:
scene bg playa with dissolve
narrator "Perrito y Gatita deciden jugar con un frisbee."
perrito "¡Atrapa, Gatita!"
gatita "¡Lo tengo!"
play sound audio.sorpresa
narrator "Gatita salta para atrapar el frisbee, pero cae en la arena."
gatita "¡Jaja, eso fue divertido!"
jump final_bueno
label buscar_conchas:
scene bg playa with dissolve
narrator "Perrito y Gatita caminan por la playa buscando conchas."
perrito "Mira esta concha, es muy bonita."
gatita "¡Sí, pero me aburrí un poco..."
narrator "Gatita se distrae y no encuentra muchas conchas."
jump final_neutral
label final_bueno:
scene bg playa with fade
narrator "Perrito y Gatita terminan el día riendo y jugando juntos."
perrito "¡Fue un día increíble!"
gatita "¡Sí, me divertí mucho!"
return
label final_neutral:
scene bg playa with fade
narrator "Perrito y Gatita terminan el día, pero Gatita no se divirtió tanto."
perrito "Bueno, al menos encontramos algunas conchas."
gatita "Sí, pero prefiero jugar la próxima vez..."
return
```
- Este código usa `labels` (como aprendimos en el post del 14 de abril) para estructurar las escenas y rutas.
- Incluye transiciones (`with fade`, `with dissolve`), música y sonidos (del post del 9 de abril).
5. Personalizar el menú principal (repaso).
Ya personalizamos el menú principal en el post del 12 de abril. Asegúrate de que tu archivo `screens.rpy` tenga el fondo personalizado y los botones ajustados:
```
screen main_menu():
tag menu
add "gui/menu_fondo.png"
vbox:
xalign 0.8
yalign 0.5
textbutton "Iniciar" action Start()
textbutton "Cargar" action ShowMenu("load")
textbutton "Opciones" action ShowMenu("preferences")
textbutton "Salir" action Quit(confirm=not main_menu)
```
6. Probar el proyecto.
1. Asegúrate de que todos los archivos estén en su lugar:
- `script.rpy` (con las líneas `call definiciones` y `call escenas`).
- `definiciones.rpy` (con los personajes y música).
- `escenas.rpy` (con la historia).
- Archivos de audio en la carpeta `game/audio`.
- Fondos en la carpeta `game`.
2. Ejecuta tu proyecto en Ren'Py y prueba las dos rutas (jugar al frisbee o buscar conchas).
7. Consejos para trabajar con múltiples archivos `.rpy`.
- **Nombres claros**: Usa nombres descriptivos para tus archivos (como `definiciones.rpy`, `escenas.rpy`, `capitulo1.rpy`).
- **Organización**: Mantén cada archivo enfocado en una tarea (por ejemplo, un archivo para personajes, otro para escenas).
- **Prueba frecuentemente**: Asegúrate de que Ren'Py pueda encontrar todos los archivos. Si algo no funciona, revisa que los `call` y `jump` estén bien escritos.
8. Ejercicios para practicar.
Aquí tienes algunos ejercicios para que expandas este proyecto:
1. **Añade un nuevo final**:
- Crea un nuevo `label` (por ejemplo, `final_malo`) y una nueva opción en el menú inicial que lleve a ese final (por ejemplo, "Nadar en el mar").
2. **Crea un nuevo archivo `.rpy`**:
- Mueve los `label final_bueno` y `final_neutral` a un nuevo archivo llamado `finales.rpy`, y usa `jump` para conectar las escenas.
3. **Personaliza más**:
- Cambia el color del texto o el cuadro de diálogo (como aprendimos en el post del 13 de abril) para que el proyecto tenga tu estilo.
9. ¡Tu turno!
Copia este código en tu proyecto de Ren'Py y crea los archivos `.rpy` como te mostré. Prueba las dos rutas y asegúrate de que todo funcione correctamente. ¿Lograste crear tu primera novela visual completa? ¿Cómo te sentiste trabajando con múltiples archivos? Intenta los ejercicios y comparte tus resultados en los comentarios. En la próxima entrada, comenzaremos a explorar temas más intermedios para que lleves tus proyectos al siguiente nivel. ¡Nos leemos el 16 de abril!
Comentarios
Publicar un comentario