Cración de una peli. Depuramos código 3

Seguimos añadiendo elementos a nuestro programa asi como depurándolo, y es que lo siguiente con lo que me encuentro es que al meter los diferentes "assets" (cualquier elemento que forma parte de un videojuego, película postprocesada, aplicación, etc...) del proyecto anterior en mi mochila y transportarlos a mi nuevo proyecto para explicaros la siguiente lección (esta en este caso), se me aplica un fondo que no quiero que aparezca al principio.
Vamos a generar lo que en el mundo de los videojuegos, app´s, etc... Se llama "Un elemento controlador". Este es aquel, que no necesáriamente es visible, pero que "en la sombra" hace que la aplicación funcione correctamente.
En este caso, va a ser el encargado de hacer que al principio, cuando pulsamos la bandera y todo empieza a funcionar, se vea en pantalla siempre el mismo fondo.
En este caso construiremos un fondo (el 4º que ya deberíamos tener creado contando los otros fondos a los que nos lleva si pulsamos botones mas el principal, donde se desarrolla el diálogo) que hará las veces de fondo introductorio a nuestra escena de diálogo y posterior desarrollo de los acontecimientos. Yo he creado algo así:


Como veis, he ido poniendo nombres a los diferentes fondos. Es importante tenerlo todo ordenado.
Bien... Este va a ser pues, el fondo que SIEMPRE aparecerá cuando el programa arranca.
Vamos a generar un elemento de control que así lo haga.
Como veis, totalmente vacío, que no se va a ver, pero controlará ciertas cosas. Damos al pincel para generar uno desde 0 y no le editaremos en absoluto, a excepción de su código.


Le configuramos de la siguiente manera:


Sabéis lo que esto significa ¿verdad?.
Pero... Ops... El resto de la aplicación sigue funcionando sobre la pantalla de inicio y no es lo que quiero. Os lo explico:
Quiero que mientras la pantalla "Intro" dure lo que tenga que durar (4 segundos en mi caso), no aparezca nada más (Aunque puede que se ejecuten otras cosas aunque no se vean (ahora veremos eso )). Dado que mi pantalla intro, se ejecutará en primer lugar y antes que cualquier cosa (aunque puede que varias cosas simultáneas se estén ejecutando en primer lugar, ahora lo vemos tranquil@s), llevará una bandera verde.
Es lógico pensar que el resto de cosas que llevaban bandera verde y que hacían que determinados objetos se mostrasen, deben ser modificados. Vamos a ver qué cosas lo llevaban. Eh aquí una recopilación ¿Os coincide?:




Imagen 1: Relativa al botón que me lleva a la luna.
Imagen 2: Relativa al botón que me lleva al aula.
Imagen 3: Manuel.
Imagen 4: Eusebio.

¿Quiénes son los que en teoría me están dando problemas? En mi caso tanto Manuel como Eusebio, dado que los botones tienen el bloque esconder, para que precisamente no se vean mientras dura la pantalla intro. Por lo que en verdad, sólo haría falta modificar esos 2 y no los 4 de momento.

Nota: ¿Véis? ya nos venía pasando aquello de "simultáneamente se están ejecutando varias cosas a la vez", porque teníamos un grupo de bloques de bandera aplicados en diversos sitios. Ahora, cuando quitemos los dos bloques que nos sobran, estará ejecutándose al mismo tiempo, código de los botones y de la pantalla intro.

Aun así, si sólo pusiésemos un bloque esconder a sus respectivos códigos (Manuel y Eusebio), no se vería... Pero eso no quiere decir que no se esté ejecutando el diálogo "en la sombra", asi que eso no vamos a hacer.
¿Cuál es verdadéramente el momento en el que el diálogo se debe ejecutar? Efectívamente... Cuando hayan pasado 4 segundos de fondo "intro" y pase a fondo "principal". ¿No os suena a mensaje que tiene que recibir el programa? ;).


Sustituyo un evento por otro como podéis ver.
Aun así, quedan muchas cosas que depurar que vosotros mismos vais a hacer.
Con lo que sabéis hasta ahora, depuradme lo siguiente:

- Existen varias cosas que pueden estar siendo ejecutadas con la bandera en el caso de los personajes, como puede ser su posición, hacia donde mira, el disfraz con el que empezará por defecto, etc... Pero en ningún caso, debe ejecutarse el diálogo con la bandera.
- En cualquier caso, a excepción del fondo "Intro"... Cualquier cosa que lleve el evento bandera, deberá llevar también el bloque "esconder", para que no se llege a ver nada, mientras dure el fondo "intro".
- Así mismo, una vez reciban en mensaje correspondiente, los objetos de nuestra aplicación deberán mostrarse.

Así me va quedando a mí, pero os aconsejo intentar depurar el código por vuestra cuenta, a ver si os sale y recurrir a mi práctica hecha solo cuando no sepáis como continuar:

ESCENA DE PELÍCULA 3

Comentarios

Entradas populares de este blog

Arrancamos con scratch. Estructura secuencial.

Arrancamos con scratch 2. Estructura tipo decisión

Montaje en serie y paralelo