Transcripciones
1. 01 Introducción: Bienvenidos a este curso. Es el curso
para
principiantes definitivo para todos los que
quieran sumergirse en el mundo de los juegos de codificación y
programación. Hola ahí. Soy tu instructor y
estoy emocionado de guiarte a través de este divertido e interactivo viaje
hacia la programación. Ya sea que nunca
antes hayas
escrito una línea de código o estés buscando
repasar lo básico, este curso es perfecto para ti. En este curso,
aprendes a crear cuatro emocionantes juegos desde
cero a cero, un juego de Malon, un juego de exploración espacial, una aventura de apuntar y hacer clic,
y un juego aventura de apuntar y hacer clic, básico de saltar y correr En el camino, te
presentaremos conceptos
esenciales de programación como variables, mensajes,
estructuras de control, como if then y repeat,
listas y clonación. Ya ves como estos conceptos
cobran vida en tus juegos. Con las instrucciones paso a paso
y los proyectos prácticos, ganarás la
confianza y las habilidades para crear tus propios juegos
y proyectos en cero. ¿Estás listo para comenzar
tu aventura de codificación? Únete a mí en la programación
con Scratch, hagamos que la codificación sea divertida y
accesible para todos. Y rueda ahora y comienza
tu viaje hacia el apasionante mundo de la
programación con scratch.
2. Abre e instala Scratch: Aquí está la página web scratch, y este es el lugar
donde necesitas
ir en tu navegador favorito, qué navegador estoy
usando Chrome aquí. Realmente no importa
cuál uses, pero tal vez para una característica, me gustaría mostrarte
al final de este video, posible
que quieras usar
Chrome o edge. No sé exactamente si esto también es posible
en otros navegadores. A lo mejor Safari también. Pero comencemos aquí
en esta página y
necesitas ir a esta
URL scratch it dot U. Así que pon eso en tu barra de direcciones en
tu navegador favorito. Como dije,
aquí estoy usando Chrome . Pero no debería importar. Entonces tenemos esta bonita página de
scratch aquí, has destacado proyectos
que puedes investigar, y también tienes
tutoriales aquí. Pero por el momento, lo que
es realmente importante es este botón de aquí,
empieza a crear. No necesitas
crear una cuenta, no
necesitas registrarte. Sin embargo, puedes hacer esto. Pero vamos a hacer esto sin registrarnos,
sin unirnos a scratch. Esto es aquí este botón. Puedes hacer una cuenta y
luego guardar tus proyectos en esta cuenta y luego puedes editar los
proyectos como quieras. Pero por el momento
solo estamos usando este año
Empieza a crear, solo haz clic en esto. Y luego te meterás en el estudio, el estudio scratch, y aquí tienes tu UI,
tu Canvas, y este será tu lugar de trabajo,
por así decirlo. Explicaré para qué sirven
las diferentes regiones aquí y cómo
funcionan en el siguiente video. Pero por ahora, hay una cosa
más que quiero
mostrarte cómo puedes
instalar en e esta app, o ¿cómo puedes hacer una app,
una aplicación web a partir de ella? Esto está aquí en Chrome, por lo que debes presionar sobre
este botón de menú aquí. Entonces abres este menú y luego Safe and share es el elemento de menú
correcto aquí, Safe and share, y luego
Install page as app. Así que da click sobre esto. Y entonces también puedes
nombrarlo aquí, renombrarlo. Ya se llama Scratch
Imagine Program Share. Así que haz clic en Instalar. La página web se abrirá en
una nueva ventana como una aplicación web. Y aquí puedes, por ejemplo, maximizar la ventana, no
tienes la barra de direcciones aquí. Tienes mucho espacio
para tus proyectos, y además puedes fijarlo
a la barra de tareas o
al dock en Mac y simplemente
usarlo como un programa normal. No tienes que hacer
eso. También puedes usarlo en tu navegador. Pero prefiero
usarlo así. En edge, es un
poco diferente, así que esto estará
en algún lugar aquí debajo las aplicaciones instalar el sitio como una
aplicación, algo así. En Safari y
Firefox. Soy honesto. Simplemente no sé cómo
hacer eso ahí, pero creo que
puedes entenderlo. Bien, aquí lo tenemos. Este es nuestro lugar de trabajo aquí, y comenzamos a crear proyectos. Pero antes de eso, te mostraré por aquí y
te mostraré cómo puedes darle
sentido a todas estas regiones y todas estas pestañas y
los elementos del menú aquí. Entonces nos vemos siguiente vide.
3. Descripción general de la interfaz de usuario: Entonces aquí estamos en cero, y esta es la versión de la app, la versión de la aplicación web, pero también puedes hacerlo, claro, en el navegador. Eso no es problema.
Acabo de instalar la app tal como te
dije antes para tener más espacio y tener una ventana extra en la
barra de tareas o en el dock en la ma. De todas formas, puedes
hacerlo en el navegador, puedes hacerlo en la app. Se trata de la interfaz de usuario de scratch, y lo primero que
quiero
mostrarte es cómo establecer el idioma
correcto aquí. Esto se establece
en inglés, por supuesto, porque este es un curso de
inglés, pero puedes configurarlo de manera diferente. Para hacer eso, solo tienes que
pasar por la configuración. Aquí, este menú, menú desplegable, haz clic en él, y luego tienes
este globo con idioma. Y aquí tienes muchos muchos
idiomas, por ejemplo, español o el alemán,
porque soy alemán, solo
lo
cambiaré ahora al alemán. Entonces tienes todas
las cuerdas aquí, todos los textos aquí en alemán. También los bloques. Verás, hay un engranaje, S ahora
Schritt. Esto es alemán. Yo se lo dije al inglés, De nuevo, entonces he movido diez
pasos, giro 15 grados, y todo aquí
en estos bloques, que serán los bloques de
construcción para nuestros guiones, claro, todo está en el idioma
que elegiste aquí. Aquí es donde eliges
tu idioma favorito en el que quieres programar porque todo
estará entonces en inglés, incluyendo todos los bloques aquí. Entonces la primera sección y el primer concepto que quiero mostrarles aquí en scratch en el Scratch I es el concepto de Sprites Para eso, solo cierro
este video tutorial aquí. Así que simplemente haz clic en esta X aquí, cierra y luego
desaparecerá. También puedes
verlo, claro, y obtener la primera impresión de los mecanismos aquí
en el Scratch. Pero, vamos a llegar a los Sprites. Los sprites están
aquí y Estos son los personajes o como las
cosas que tienes en tu juego Por ejemplo, este gato aquí
es el sprite predeterminado aquí. Puedes seleccionar los sprites aquí. Si tienes múltiples, entonces
puedes seleccionar cada uno. Puedo hacer uno nuevo, pero vamos a comprobar el primero, el sprite por defecto
aquí, el gato Puedes ver al gato por aquí, y este es el lienzo del juego, así puedes ver un avance
de tu juego aquí. Este será el aspecto de
tu juego cuando empezaste, y aquí también podrás
mover al gato aquí, mover el sprite a
donde quieras Entonces aquí tendrás
todos tus sprites, y estos son, por así decirlo, los personajes principales
de tu juego Entonces todo lo que se mueve, todo lo que se controla, todo lo que sea dinámico en
tu juego será un sprite Entonces aquí tienes la
lista de sprites, y luego puedes
nombrar a los sprites Entonces aquí puedes cambiar
el nombre del sprite. Puedo llamarlo el
gato, por ejemplo. Entonces aquí en la lista también
estará el gato. Aquí es un clavo para el pulgar. También puedes borrar
el sprite aquí, pero no hagamos
esto en este momento Aquí puedes establecer la
posición como números. La posición por
el momento es -46, y puedo mover al gato
por aquí en este lienzo, y verán que
esto también cambia Entonces esto es -149 ahora. Pero llegaremos a eso más adelante solo para mencionar aquí que
puedes establecer las coordenadas la posición del gato
en el Lienzo aquí. Arrastrando al gato aquí
arrastrando el sprite, o también puedes cambiar estos
números aquí, x e y
Así que esto es posible aquí,
y luego puedes mostrarle
al gato o esconderlo. Así que esto es posible aquí, y luego puedes mostrarle
al gato o esconderlo Si quieres que sea invisible, entonces tienes que elegir
esta i que es tachada, o si quieres que sea
visible, entonces elige la i. Entonces aquí, tienes una talla, esta es 100%. Si quieres que
sea la mitad del tamaño, debes ingresar aquí el 50%, entonces es solo
la mitad del tamaño o
también puedes elegir que
sea el doble del tamaño. Entonces tienes 200%. Entonces seremos el doble del tamaño
del sprite predeterminado normal aquí Entonces este es el tamaño predeterminado, 100, y luego 200
será el doble del tamaño. Un cuarto será 25 aquí, así que solo una cuarta parte
del tamaño predeterminado. Y también, claro, 400%
será cuatro veces más grande, y entonces tienes aquí a
este gato gigante Bien, pero vamos a
ponerlo de nuevo a 100, y aquí también puedes rotarlo. Entonces este es el ángulo
predeterminado aquí. Y mientras arrastro esto aquí, esta flecha, la arrastro
aquí en este círculo. Ves que el gato
está rotando aquí. Entonces este será el
ángulo cero aquí, así que apuntando hacia arriba
y luego apuntando a la derecha con 90
grados, 180 serán Apuntando hacia abajo
y luego hacia la izquierda. Es un número negativo, por lo que -90 será en
sentido antihorario, 90 grados Entonces el gato está boca abajo
y apuntando a la izquierda. Vamos a ponerlo a los
90 grados otra vez. También puedes cambiarlo aquí con
tu teclado, claro, 90 será exactamente
este 90 grados, y también puedes voltearlo
Así puede tipo de espejarlo. Entonces entonces se
reflejará aquí a la
izquierda o a la derecha Entonces esto cambia el
modo aquí, por así decirlo, de la rotación al espejado, a la izquierda o a la derecha Y aquí lo
vuelvo a cambiar a rotación. Y aquí puedo
apagar la rotación por completo. Entonces no hay más cambios aquí
si cambio la dirección. Bien, pero vamos
a llegar a eso más adelante, también, sólo para decir que aquí, se
puede cambiar la dirección. Pongámoslo a 90
grados y la rotación, nuevamente, los valores predeterminados aquí. Y aquí
lo tienes. Tus sprites, y yo puedo hacer uno nuevo aquí Entonces solo presiona este botón. Y luego tienes algunos
presets para elegir. También puedes buscar aquí
o elegir una categoría. Por ejemplo, todos los
animales, un oso, gato volador, pollito,
dinosaurio, pato, lo que quieras, o
tal vez quieras gente, una persona, o fantasía
como dragones y elfos Y así sucesivamente. También puedes
tener cartas aquí. Si quieres escribir
algo en tu pantalla, puedes elegir
estas letras aquí. Pero tal vez tomemos un globo, y ahora tenemos aquí un sprite de
globo Tenemos el gato y el globo. Ahora también podemos
eliminar el gato aquí. Ya no lo necesitamos.
Porque nuestro primer juego será sobre globos,
eliminemos al gato. Ahora sólo tenemos el globo. Si accidentalmente borraste
algo o cambiaste algo y quieres que
se revierta para que se deshaga, entonces puedes presionar el
control Z o el comando Z, o también puedes
elegir aquí este menú agregado y luego restaurar
sprite en este caso, y luego tenemos el Aquí tenemos nuestros sprites, y volveré a borrar al gato porque ya
no lo necesitamos Aquí, también podemos
mover el globo, claro, aquí
arrastrándolo sobre el Lienzo, y ya ves que también, todos estos números aquí, así que x e y también cambiarán
igual que con el gato Bien, eso es todo para
la sección Sprite. Pasamos a la siguiente sección. Pasemos a
la siguiente sección y esta
será la sección de código aquí. Está relacionado con Sprites. Si tienes un sprite
aquí y seleccionaste, entonces realmente
lo agregarás aquí el código
para este sprite Eso significa que este código aquí, el script que estás creando aquí se adjuntará
al sprite También puede adjuntar un
guión a un fondo. Entonces aquí tienes escenario de
telón de fondo. Entonces aquí está el escenario. Esta es otra
sección, y esta es una especie de
fondo de tu juego, y aquí puedes tener
múltiples fondos y luego intercambiarlos dinámicamente
con código también. Y también puedes tener
múltiples antecedentes, como dije, y luego
dependiendo de lo que selecciones aquí. Entonces, si seleccionas etapa, entonces agregarás el
código para esta etapa aquí, o si seleccionas Sprite aquí,
y agregarás el
código para este sprite aquí y agregarás el
código para este He seleccionado globo, como
puedes ver aquí, esa es
la diferencia. Aquí he seleccionado telón de fondo, y aquí he
seleccionado el sprite, y ahora puedo dit el código, el script, por así
decirlo, para este sprite Para eso, tienes todos
estos bloques aquí. Así que desplázate por él completamente
aquí con la barra de desplazamiento. Entonces todo estará aquí, pero también puedes
cambiar a categorías, así puedes saltar a la
categoría de eventos, por ejemplo, o a la categoría M bloques
eligiendo una categoría aquí. Entonces primer movimiento de categorías. Aquí encontraremos
todo lo que está relacionado con el movimiento
del sprite, moverlo
para girarlo
también Así que también puedes
establecer la rotación aquí dinámicamente durante el tiempo de
ejecución de tu juego. Tenemos miradas,
todo lo que se relaciona con el look de
tu sprite aquí Por ejemplo, puedes dejar que
el globo diga algo, así tienes este llamado entonces, o puedes cambiar el disfraz
para hacer animaciones aquí. Puedes establecer también el
tamaño aquí dinámicamente, para que puedas hacerlo
más pequeño, hacerlo más grande, puedes mostrar y ocultar y así sucesivamente. Aquí tienes sonido, para que puedas reproducir un sonido. Por ejemplo, si
se hace clic en el sprite con un botón del mouse, podrías reproducir un sonido aquí Aquí tienes eventos. Cuando ocurren
ciertos eventos. Por ejemplo, cuando se inicia
el juego, este es este evento aquí. Se puede utilizar para activar
diferentes bloques entonces. Pero lo voy a mostrar más tarde. Aquí tienes controles, así que todo lo que esté
relacionado con loops o condicionales. Si este es el caso, entonces haz esto,
esas cosas que puedas hacer encima Entonces tenemos detección. Si el sprite toca
algo o toca un color, por
ejemplo, o toca
otro sprite, entonces esto se puede encontrar aquí Operadores, muy importantes, operadores
matemáticos,
por ejemplo, iguales o menores que
mayores que todo o
escogiendo número aleatorio, muy importante para los juegos, para hacerlo más interesante, para que no sea determinista, esto lo puedes encontrar aquí Entonces también variables muy
importantes, y por supuesto, voy a
explicar variables más adelante. Pero aquí, variables muy
importantes. Puedes almacenar valores en variables y almacenar un
estado en una variable, por ejemplo, y eso es
esencial para un juego. Sin variables, no se
puede hacer gran parte de un juego
ni siquiera con scratch. Aquí bajo mis bloques, puedes definir tus
propios bloques que contienen diferentes
subbloques, por así decirlo. Pero eso cubrirá, por
supuesto, más adelante. Y aquí,
también puedes agregar plugins. Aquí tienes estas extensiones, así que algo así como
texto a voz, puedas dejar que el
motor del juego hable algo, así que un texto que ingreses puede ser hablado luego por una voz
artificial, o puedes tocar
instrumentos y tambores, puedes dibujar y así
sucesivamente, también traducir, y también puedes usar
todo este código scratch para controlar
realmente un robot o algo así así
con pierna o minetormas Si agregas una extensión aquí, esta será una nueva categoría aquí, y luego puedes elegir. Entonces por ejemplo, si
elijo música aquí, Habrá una nueva
categoría de música, el final, y luego se puede utilizar, por ejemplo,
para
tocar un sonido de batería. Bien, entonces ese es el código de aquí. Pasaremos mucho tiempo
aquí en esta sección de código. Esto es muy
importante, claro, pero también hay
otras secciones, y a continuación serán los disfraces. Disfraces por aquí,
justo al lado del código. Podemos seleccionarlo, y
luego podrá ver el caso. Esta es la apariencia
de tu sprite, los gráficos para tu sprite Y en este caso,
es un globo. Aquí es un gráfico vectorial, así que no es píxel a píxel,
sino que está compuesto fuera de forma, por sino que está compuesto fuera de forma, lo que también puedes
agregar una forma aquí, por ejemplo, un círculo. Simplemente haz clic en este ícono aquí, y luego puedes hacer un círculo arrastrando este rectángulo aquí Ni siquiera es un círculo. No, es un círculo. Bien. Entonces puedes hacer círculos o elipses
o algo así, o también puedes por supuesto, escribir algo aquí, un texto Entonces globo, por ejemplo,
en diferentes colores. Cubriremos todo
eso en capítulos posteriores. No te
preocupes si no obtienes todo esto. Esto es solo una visión general. Aquí puedes elegir qué
aspecto tiene tu Sprite, y también lo que puedes
hacer es hacer animaciones Aquí tienes todos los
fotogramas para animaciones, y puedes en el código luego cambiar al siguiente
fotograma, por ejemplo. Puedes hacer cosas
como en un bucle, luego recorrer todas
estas animaciones aquí. Entonces esto también es muy importante
para las animaciones aquí. Puedes agregar muchos, muchos, muchos marcos aquí. Todos pueden verse diferentes, entonces puedes cambiando, recorriendo todos
estos marcos aquí, luego
puedes dejar que
parezca una especie de movimiento, un movimiento, algo así. Entonces esto es animación
aquí, pero por el momento, solo
tenemos aquí este
primer fotograma, también
podemos eliminar
los otros fotogramas para que no nos confundamos. Entonces ahora solo tenemos un fotograma, así que no hay animación por el momento. Aquí tenemos este globo, también
puedo eliminar. Así puedes seleccionar las formas aquí con este cursor de selección. Entonces selecciona herramienta, seleccionada
aquí con este rectángulo, y luego puedo
eliminarla, por ejemplo, con este botón aquí o
presionando la tecla de borrar. Ahora ya se ha ido y
también este texto, también
puedo borrar
aquí. Entonces se ha ido. Bien. Y también, puedes hacer
algo como voltear esta vertical horizontalmente y también copiarla y luego pegarla nuevamente, y todos lo
cubriremos más adelante. Este es el vestuario
muy importante, también para la aparición
de tu sprite, el look de tu sprite Entonces en este caso, aquí se trata de
un globo hecho de
diferentes formas. También puedes simplemente
pintar algo aquí. Por ejemplo, por lo que también es posible
pintar de forma libre. Eso no es problema. Para revertir algo,
también puedes usar estas flechas aquí para que yo pueda revertir todo lo
que he hecho hasta ahora Entonces rehazlo de nuevo. Vamos a deshacernos de
estos puntos aquí. Ahora tenemos de nuevo nuestro globo, sólo un globo, y eso es todo. Eso es todo por ahora para los disfraces y
más sobre esto más adelante. La siguiente sección serán los sonidos. Entonces los sonidos están por aquí
justo al lado de disfraces, y aquí puedes agregar más
sonidos a los sprites Un sprites puede tener sonidos. Aquí tenemos este sonido pop. Puedes tocarlo con
este botón de reproducción aquí, y escuchas este pop. También muy importante para
los juegos son los sonidos para que
tengas una retroalimentación, también retroalimentación acústica de
tus acciones como jugador. Aquí también puedes agregar
tantos sonidos como te guste. Entonces, por ejemplo, aquí
puedes agregar un nuevo sonido. Aquí hay algunos sonidos
predefinidos. También puedes reproducirlos aquí
pasando el cursor sobre este botón de
aquí, este botón de reproducción También, la música estará ahí o simplemente diferentes
sonidos, clang, acorde Y el chasquido suena, o estos también piano o
saxofón, batería, trompeta Tantos, muchos sonidos
aquí para elegir, pero también puedes subir
tus propios sonidos. Así que también puedes grabar
tus propios sonidos aquí. Entonces, si tienes un micrófono
conectado a tu computadora, y puedes grabar
algo aquí o puedes elegir
un sonido aleatorio, o puedes subir un sonido
arbitrario que
hayas grabado en otro lugar o que hayas descargado en algún lugar, y luego puedes subirlo aquí y usarlo en tu
juego como sonido aquí. Y luego puedes activar los sonidos del código
de esta sección aquí. También está esta
categoría de sonido, y ahí se puede reproducir el sonido. Pop, por ejemplo, aquí
sólo hay este sonido. Pero si agregas uno, agreguemos
uno Por ejemplo, este. Ahora tenemos dos sonidos, y luego se puede escuchar tocar
sonido, también guitarra eléctrica. Yo solo puedo mover esto aquí, y luego puedes
elegir no solo pop, sino también el segundo
sonido, una guitarra eléctrica. Entonces si presionas en este bloque que
acabo de colocar aquí, acabo de arrastrar esto aquí
a esto también una especie
de lienzo aquí, donde viven todos tus bloques, donde vive tu código Y luego cuando haga clic en
él, se ejecuta de inmediato, y ya va a reproducir
el sonido aquí. Eso es todo para sonidos como
disfraces, pero acústicos, para que puedas activar ambos, o puedes cambiar de
vestuario por código. También puedes activar
sonidos por código. Ahora lo que queda es lo que ya
he mencionado también es esta etapa
aquí telones de fondo, y aquí puedes tener
múltiples telones de fondo Podemos hacer uno nuevo aquí, por
ejemplo, un dormitorio, tal vez, y luego podemos elegir
otro, tal vez una playa. Entonces aquí, si
seleccionamos esta etapa, podemos echar un vistazo a los telones de fondo, y esto es algo
así como para los disfraces, pero solo con los fondos Entonces puedes elegir qué
fondo aquí quieres, y luego cambiará aquí, y también puedes, por supuesto, cambiar de código aquí, el fondo para que
cambie dinámicamente. Entonces primero, tenemos un fondo
vacío, luego tenemos esta recámara,
y luego esta playa. Así que solo elige escenario aquí, y luego tienes bajo telones de fondo todos estos
diferentes telones de fondo, igual que con los sprites Entonces selecciono globo
nuevamente, nuestro sprite, y luego puedes tener
diferentes disfraces aquí Entonces el primero
será el globo. También puedes cambiar el
orden aquí arrastrándolo. Podemos cambiarlo
a esta chica de aquí. Es casi lo mismo
aquí con telones de fondo. Solo selecciona escenario, y luego tienes todos estos
fondos aquí También eliminar. Ahora el último, no
podemos eliminar. Solo tomemos otro, tal vez cielo azul que
se ajuste a nuestro globo. Entonces tenemos un globo
sobre un cielo azul. Eso es un poco agradable. Así
que solo lo dejé así. Y aquí en los telones de fondo, tienes casi las
mismas posibilidades que para los disfraces de
tu globo, por ejemplo Casi lo mismo o
es lo mismo. También puedes nombrar el disfraz
o nombrar el telón de fondo aquí. Eso es todo para escenario
y telones de fondo. Casi como un sprite. Tienes los sprites, y luego tienes el escenario,
y el escenario puede tener
diferentes telones de fondo, que puedes cambiar luego
durante el final del juego Bien, entonces estas son las
secciones, y claro, esta sección muy importante, puedes correr el juego
aquí con esta bandera. Entonces, si presionas la bandera,
se ejecutará el juego, por el momento no hay código, así que aquí no hay nada que ejecutar. Así que simplemente se queda así. Pero si agregamos código, notarás entonces
que tendrás también el botón de parada aquí
donde podrás detener el juego, detener la ejecución del código, con por el momento,
no tenemos ningún código. Entonces esto no está haciendo nada, y también puedes
hacerlo un
poco más pequeño aquí con esto o hacerlo un poco más grande o
incluso hacerlo a pantalla completa. Entonces tienes juego de pantalla completa
aquí, casi a pantalla completa. Todavía tienes estos
botones aquí, claro, para iniciar y detener el juego, y luego un botón para salir de
la pantalla completa aquí. Bien, ese es tu Canvas, tu lienzo de juego aquí, donde se renderizan todos tus
gráficos de juego. Esto es básicamente para la interfaz
de usuario de scratch del editor de
scratch aquí. Y también tienes
estos menús aquí. Esto es muy
importante tu archivo, por lo que puedes hacer un nuevo juego, y también puedes cargar
algo desde tu computadora, desde tu disco duro, o puedes guardarlo. Y
esto es muy importante. Siempre debes
guardar el juego aquí. Entonces entonces se descargará
a tu carpeta de descargas, y
luego podrás volver a subirlo con este menú aquí,
cargarlo desde computadora. Entonces puedes volver a subir
este archivo
y luego volver a tener tu proyecto de juego
completo. Y aquí puedes
restaurar el disfraz. Entonces, por ejemplo, he
eliminado el telón de fondo del discurso, y luego puedo restaurarlo aquí. Así que deshaga la eliminación
aquí de este telón de fondo. Y también de tus sprites, lo mejor si borro el sprite, puedo borrar el sprite, y luego puedo restaurar
el Entonces eso es todo para el breve resumen
del scratch que aquí, y vamos a entrar en cada
sección con más detalle, por
supuesto, en
la sección de código. Esta será la sección principal
que tienes que tratar, pero también disfraces, por supuesto, para animaciones y otras cosas. Y los sonidos también serán
importantes y también el
telón de fondo, claro. Pero lo más importante será
el código porque este es el lugar donde
realmente programas tu juego y realmente lo
haces dinámico, lo
haces interactivo, y lo
haces divertido, por supuesto.
4. 04 Primer juego, primer código: Entonces estamos comenzando con nuestro primer juego y este juego
será un juego de globos, así que se trata de globos
levantándose y moviéndose
de abajo hacia arriba para que pueda mostrarlo aquí con
el ratón arrastrando Deberían moverse o este globo
debería moverse de aquí. A
lo más alto, y luego debería desaparecer, y el jugador tiene que hacer click sobre él para hacerla estallar,
algo así. Y entonces él debería obtener puntos, o ella debería obtener puntos por ello. Entonces también debería haber varios globos
luego al final, y cuantos más globos
puedas hacer estallar, más puntos obtendrás. Entonces este es nuestro reto aquí. Entonces tenemos que mover este
globo desde el fondo. Colócala tal vez por aquí hasta la cima en un
movimiento constante, diría yo. Este es nuestro primer reto
y lo podemos hacer. Podemos lograr esto usando
un fragmento de código o script,
por así decirlo, un programa Tenemos que programar aquí. Este es nuestro primer programa que nosotros w. Y esta es la posición inicial
de nuestro globo aquí. Entonces, si quieres seguirlo, entonces solo coloca el
globo en algún lugar de aquí, tal vez, entonces esto debería estar bien. Entonces, ¿cómo podemos iniciar nuestro código? ¿Cómo podemos iniciar nuestro guión? La mayoría de las veces,
quieres iniciarlo con un evento. Entonces en este caso,
es el evento de inicio. Así que cada vez que el jugador haga clic en start on
Go here on the flag, obtendremos este evento. ¿Y eso qué significa? Entonces, cada vez que se hace clic en
la bandera, se ejecuta el código que está debajo de
esto aquí Así que he arrastrado esto cuando
ir clicked de eventos. Ir a la categoría de eventos, y luego el primer bloque aquí es este cuando ir
clicked bandera verde, y esto es como
correr, ejecutar el juego Esto quiere decir que cada vez
que se inicia el juego, se hace clic en
ese ir, que se ejecutará el código que
hay debajo de aquí Esto es lo que hacemos ahora. Agregamos aquí otro bloque. Así es como se codifica en scratch. Entonces agregas estos bloques aquí, así que tal vez podamos ir al
movimiento aquí, por ejemplo, y luego podemos decir, ir a posición aleatoria, por ejemplo, solo
para mostrarlo. Entonces, cada vez que se haga clic en este
botón de
ir, vaya a la posición aleatoria.
¿Qué significa eso? El globo irá
a una posición aleatoria. Veamos cómo se ve eso. Entonces hacemos click en go y vemos que este globo va
se coloca en una
posición aleatoria aquí. Podemos hacerlo de nuevo,
y cada vez, es una
posición diferente, una posición aleatoria. Esto no es lo
que queremos, claro, porque queremos un movimiento
de abajo hacia arriba. Y no es así como lo haces, sino solo para mostrarte cómo se hace la
codificación aquí. Tenemos que apilar
estos bloques aquí. Después de eso,
tal vez podamos hacer lo mismo. Por ejemplo,
podemos hacer esto dos veces. Esto no hará ninguna diferencia porque esto irá
a una posición aleatoria, pero no la verás porque
directamente después de
eso, irá a una posición
aleatoria diferente. Eso no es muy bueno o
no tiene ningún sentido. ¿Qué hacemos? Podemos hacer
un retraso aquí en el medio. Vamonos al control. Y luego vemos que el primer bloque aquí bajo control es el
peso. Eso es lo que queremos. Controle el peso, y luego
arrastre esto aquí por aquí. Ves este chasquido aquí. Esto se romperá aquí
y queda un
poco gris para que veas que, si lo sueltas, terminará en esta posición aquí, debajo de la posición de ir a
aleatoria. Entonces esto se colocará
por debajo del peso un segundo. Si quieres desmontar esto, puedes simplemente arrastrarlo lejos. Y entonces todos los bloques
que están debajo de eso aquí, el primero en el que hiciste
clic se moverán, y luego podrás arrastrarlo aquí Y entonces ya no
se ejecutará porque aquí no hay conexión
con este evento. Entonces, si acabo de comenzar un juego, no
hay código ejecutado
porque aquí no hay nada por debajo. Entonces necesito conectar esto
a esto cuando vaya haga clic. Otra vez. Y ahora
podemos ver que primero, el globo va a una posición
aleatoria y luego espera 1 segundo y luego va a otra, una posición
diferente Entonces esto tampoco es lo que
queremos. Queremos un movimiento continuo. Entonces, vamos a deshacernos de eso aquí. Cómo deshacerse de
él, cómo eliminar, puede hacer clic derecho sobre él, y luego puede eliminar bloque. Entonces eso borraría
solo el bloque en el que hiciste clic, y luego puedes eliminar
todos los bloques aquí Pero lo más conveniente es simplemente arrastrar esto
aquí a un lado, y luego soltarlo aquí, y luego se ha ido también. Y te mueves por
este lienzo aquí, tu área de código arrastrando aquí, para que puedas ver, También puedes usar la rueda del mouse, claro, o puedes arrastrar,
y luego puedes llegar a diferentes posiciones aquí, y también puedes
acercar y
alejar con estos botones aquí con las
lupas Y esto restablecerá la
posición y el zoom aquí. Este botón. Así es como navegas aquí
en el área de código. Así que pongamos eso por aquí. Y qué hacemos para
mover esta cosa aquí. Lo que podemos hacer es
colocarlo aquí otra vez, quizá aquí, lo que tenemos que hacer. Primero, necesitamos
posicionar el globo nuevamente en esta posición porque esta es la posición
inicial, pero cuando el programa
mueve el globo, tal vez termine aquí, y luego
simplemente se quedará ahí. Entonces necesitamos restablecerlo cada
vez que se haga clic en ir. Entonces tenemos que establecer la posición
inicial. ¿Y cómo se hace eso? ¿Tan solo
arrastrarlo a donde quieras? Entonces tal vez, por ejemplo, aquí, y luego tenemos la
x y aquí, y eso es lo que podemos usar ahora. Entonces vayamos a la moción. Entonces tienes esto ir a X, ir a y, y esto es
lo que usamos aquí, vamos a x, vamos a Y y usamos
estas dos coordenadas aquí. Convenientemente, estos
ya están aquí llenos, así que no necesitamos
cambiar nada. Simplemente arrastre este bloque
aquí para cuando vaya haga clic y todo
se configurará en esta ubicación aquí Puedo cambiarlo
ahora a tal vez aquí. Entonces cuando haga clic en ir, se restablecerá a esta
posición inicial. Eso es bueno. Eso es lo que necesitamos también. Ahora tenemos que mover el
globo a la parte superior, y eso es lo que hacemos
en el siguiente video. Pero para aquí en el movimiento, estos bloques son todos para mover tu sprite o
rotar tu sprite Por ejemplo, aquí
has establecido el estilo de rotación, así puedes cambiar de
izquierda a derecha a, tal vez no rotar
o por todas partes. En un ángulo, esto será más como espejar, así aquí, esto será espejar
o voltear, esto será una rotación, y esta no será Y lo mismo aquí, puedes establecer este
estilo también aquí. Eso es lo mismo que aquí. Esto es solo un ejemplo, y también puedes usar
algo como establecer y en una posición o
establecer x en una posición, o puedes establecer
ambos en un bloque. También puedes deslizarte a
una posición aleatoria. Podemos probar esto tal vez, ponerla en una posición inicial,
y luego después, simplemente
nos deslizamos tal vez como 4 segundos a una posición aleatoria o
al puntero del mouse También podemos hacer eso.
Probemos esto. Esto en realidad
no es lo que queremos, pero de todas formas, probémoslo y
veamos cómo se ve esto. 4 segundos, este globo
irá a una posición aleatoria. Entonces, cada vez que empiezo
por aquí, irá a una posición
diferente, pero siempre toma 4
segundos ir ahí. Eso es bastante agradable. Tal vez
podríamos usarlo y luego el usuario tiene que hacer clic en
él para obtener los puntos. Pero no lo sé.
A lo mejor no es tan interesante hacer
el juego así. Pero esto nos vendría bien. Pero esto va a ser bastante fácil. En fin, tenemos que ocultar el globo cuando llegue a
la posición aleatoria aquí. De lo contrario, sería demasiado
fácil para la obra hacer clic en ella. Podemos simplemente tal vez
ocultarlo después de 4 segundos, o tal vez hagamos 2 segundos
y luego será más rápido. Aquí, y esto será más rápido. Pero también depende de la
posición misma, claro. Si la posición no está muy lejos de la posición
inicial, será lenta si está muy lejos de la posición
inicial, entonces es rápida. Esto será fácil de hacer clic y es un poco más difícil
así o tal vez así. También podemos
reducirlo a 1 segundo, o también podemos usar números
decimales como 1.5, por ejemplo, Eso es un poco más rápido porque era un largo camino por
recorrer para el globo, otro largo camino y
este es un camino corto. Ocultemos el globo cuando
llegue a la
posición aleatoria aquí. ¿Cómo lo hacemos? Esto está
bajo la categoría looks. Vamos a Ls y
aquí al final, casi al final,
tienes espectáculo y te escondes. Esto es lo que necesitamos. Simplemente arrastra el pellejo a esta posición
aquí después del planeo, y luego cuando
llegue a esto aquí, esta posición aleatoria,
debería esconderse Vamos a probar eso.
Ahora desaparece. Hagámoslo otra vez. Bien. Entonces
ves que no ves nada. Se ha ido. Está
oculto. ¿Y por qué es eso? Sea que lo hayamos ocultado. Entonces con este
escondite, lo ocultarás, y no se restablecerá para mostrarlo. Pero podemos hacer eso, simplemente mover show o drag show
aquí al principio. Entonces cuando se hace clic en go, luego mostrar el globo, luego ir a la posición
inicial, y luego deslizarse a estas posiciones aleatorias aquí
y luego ocultar el Entonces probemos esto.
Entonces se muestra. Va a la posición
inicial y luego se desliza a la posición
aleatoria Y luego se oculta. Y luego cada
vez que haga clic en G, se volverá a mostrar, y esto se ejecutará aquí. Por supuesto, el código
siempre se ejecuta
de arriba a abajo. Entonces este es el
evento de inicio cuando se hace clic en go, luego hay show, ir a x e y, posición
inicial, luego deslizarse en esta cantidad de tiempo a una
posición aleatoria, y luego Entonces eso está bien. Podríamos usar esto como punto de
partida para nuestro juego. Probablemente no lo
mantendremos así, pero es una especie de comienzo. Entonces entonces tenemos que, por supuesto, hacer que suceda que el
jugador pueda hacer clic en el globo, y luego se detenga, y luego el jugador
obtenga puntos por ello.
5. 05 Mejora del movimiento del globo: Seguimos con nuestro
juego y en el último video, teníamos nuestro globo aquí pasando de esta primera posición
a una posición aleatoria, y aquí hemos hecho este
pequeño guion, y este es nuestro primer
programa o primer guión. Siempre que se haga clic en el
botón de inicio, mostramos este globo, luego vamos a esta
posición inicial del globo Este -207 y f x y -200 534,
y, y luego de ahí nos
deslizamos a una Esta siempre será una posición diferente cada
vez que corremos el juego y el tiempo que lleva deslizarse a esta posición es de
1.5 segundos aquí. Entonces cuando llega a
la posición, entonces escondemos el globo. Ahora quiero
intercambiar esto aquí, el planeo a posición aleatoria con un bloque similar,
y este es este Ya he preparado
esto Así que esto es planeo en cantidad de
segundos dos x e y
Hay una posición predefinida
aquí a la que podemos deslizarnos,
y no será la posición
aleatoria. Hay una posición predefinida
aquí a la que podemos deslizarnos, y no será la posición
aleatoria Debido a que el problema con
la posición aleatoria es que a veces es más difícil y
a veces más fácil golpear el globo o
hacer clic en el globo, porque de eso se trata
el juego, hacer clic en el globo o hacer clic en todos los globos que
puedas hasta que se hayan ido todos. Este es el problema
con la posición aleatoria. No van hacia arriba, sino en tal vez en esta dirección
o dirección o lo que sea. No está claro a dónde van
los globos con
la posición aleatoria, así que lo cambiamos por
una posición fija. Este es el bloque para
la posición fija, y estoy arrastrando este escondite
aquí lejos y el planeo también, y podemos deshacernos
de este bloque de planeo simplemente arrastrándolo
por
aquí y Este bloque se elimina. Ahora podemos tomar este
bloque, ponerlo aquí, para que encaje ahí
y luego volver a poner el bloque hide nuevamente para
que lo tengamos así Empecemos el juego y
veamos cómo se ve. Verás, siempre es el mismo movimiento aquí cada
vez que empiezo el juego. El globo siempre subirá en
2 segundos hasta esta
posición de aquí, y siempre es lo mismo. Esto es mucho mejor
porque el globo irá solo hacia arriba, pero también es más fácil
porque ya
sabes de dónde
va el globo y hacia dónde
va. Esto es bastante fácil de jugar
a este juego, pero vamos a estar teniendo
más globos, no sólo un globo, esto va a ser un poco más difícil de golpear a
todos los globos. A lo mejor esto ya está bien
y ya es un juego divertido. Pero necesitamos algo
que sea más aleatorio aquí. Digamos que no es la
posición objetivo del globo, pero también puede ser la inicial
La posición inicial,
la posición x aquí
podría ser aleatoria, y el globo
comenzaría entonces tal vez una vez de aquí, una vez de aquí. Eso dependería la posición que se elija
al azar entonces. ¿Cómo lo hacemos? un número aleatorio para
la coordenada x. Comprobemos cómo se hace esto. Vamos a operadores aquí y allá lo tenemos
ya escoge al azar un número aleatorio entre
y luego puedes establecer entre qué dos números se
debe escoger
el número aleatorio. Arrastremos esto aquí
a nuestro lienzo, nuestro guión Canvas,
y luego podemos colocarlo en algún
lugar de este bloque. Podemos colocarlo aquí para ir a
x y luego este campo aquí. Vamos a probarlo.
Lo arrastramos por aquí y luego lo soltamos y ahora
lo tenemos en nuestra coordenada x. La coordenada x será 1-10. Esto no es muy bueno, Digamos
tal vez -200 102 más 210, ese será el rango Probemos esto. Empecemos, y luego tenemos una
posición inicial aleatoria. Esto es lindo. A veces empieza
desde aquí desde la x por aquí o tal vez por allá. Por lo que el jugador nunca sabe de donde
empieza el globo. Eso es mejor. Pero también la posición objetivo
es siempre la misma, y eso es un problema
aquí porque siempre
sabemos que el globo
va a ir por aquí. Esta es la posición objetivo para que podamos colocar nuestro cursor del
mouse aquí, y luego podríamos hacer clic justo aquí cuando se
trata de esta posición aquí. Eso no es tan agradable, así que necesitamos establecer el objetivo x esto aquí al mismo
valor que este año. Podríamos usar una variable
para eso y primero asignar esta variable aleatoria número
dos A y luego usar esta variable
en estos dos lugares. Primero aquí en este bloque, ir a x y luego variable, y luego deslizarse en 2 segundos
dos x, y luego la variable Pero no vamos a hacer esto porque
esto es un poco avanzado y lo haré en
variables en un capítulo posterior. Aquí hacemos otra cosa. Hay un bloque otro
bloque aquí bajo movimiento, y este es este bloque aquí, posición
x, y puedes
arrastrar esta posición x aquí a cualquier lugar que quieras
en estos campos redondeados. Por ejemplo, aquí
en este campo x, así que desliza en 2 segundos dos x, y luego x posición.
¿Qué es la posición? posición X es la ex
posición del sprite en este punto en el tiempo cuando
llega a este bloque aquí Esto siempre se actualizará
si el globo se mueve. O cambia su posición x, entonces esta siempre será
la posición x actual. Y también puedes mostrarlo solo hacer clic aquí
en esta casilla de verificación Entonces solo verificando esto aquí lo
mostraremos aquí, y entonces siempre podremos ver el valor actual de los
globos x posición. Bien, entonces, ¿qué tenemos ahora? Vamos a una posición x aleatoria
aquí y una posición y fija. Entonces la posición y será -253, y la posición x
será aleatoria Entonces eso significa que el globo comienza en algún lugar
entre aquí y aquí. Y luego irá
a esta posición y -253 y luego manteniendo
la posición x Entonces establecemos la posición x aquí
con este número aleatorio, y luego esta posición x
será la misma. Se queda igual, así
que no se cambia después. Siempre será esto aquí. Por esto, estamos estableciendo la posición x en
un número aleatorio, y entonces esto estará en este bloque aquí en
este bloque de posición. Entonces el globo
siempre subirá. Y aquí también podemos ver. También puedes arrastrar esto a
donde quieras aquí. También podemos ver que esta
x siempre será la misma, pero se establecerá aleatoriamente
al inicio del juego. Entonces esta vez fue -166, y la próxima vez es -107, y la próxima vez es Pero aquí estamos deslizándonos a la misma posición x que
fuimos aquí aleatoriamente Bien, creo que esto está
claro, debería ser claro. Entonces esta x es solo mantener
la posición x y la y y la
posición objetivo de 200 aquí. Y de esta manera, este es una
especie de juego que tenía
en mente al principio. Entonces tenemos un
globo comenzando desde una posición aleatoria
yendo hacia arriba, y luego el usuario o el
jugador tiene que hacer clic en él. Entonces también podemos entrar a pantalla
completa y ver
cómo se ve eso,
así que iniciando el juego, y luego el usuario
necesita hacer clic en él, y luego debería desaparecer, y el usuario obtiene puntos por ello. Entonces nosotros en este momento, tenemos sólo un globo, no muy interesante,
pero si tenemos, digamos, cinco globos. Será bastante
difícil hacer clic en todos los globos antes de
que lleguen aquí al objetivo. Bien, así que eso es
todo para mejorar
el movimiento del globo, y creo que podemos
mantenerlo así, y solo podemos
hacer más globos. Y entonces la lógica del movimiento aquí será,
por supuesto, la misma. Pero antes de hacer eso, necesitamos implementar la lógica de clic para que cuando el jugador haga
clic en el globo, desaparezca, y luego el usuario obtenga
puntos, por ejemplo. Bien, así que hagamos esto
en el siguiente video.
6. 06 El evento en el que se hace clic: Ahora que tenemos el movimiento de los
globos en su lugar, puedo mostrarlo nuevamente aquí. El globo va desde una
posición horizontal aleatoria recta hacia arriba, y luego desaparece Desaparece aquí fuera de límites. Ahora que tenemos esto, lo único importante
que falta es, de co, que el jugador necesite hacer
clic en el globo y el globo
desaparecerá luego y el
jugador obtenga puntos. Eso es bastante fácil. Solo necesitamos dos bloques para el click y luego el
ocultamiento del globo, y podemos encontrar el primer
bloque aquí en eventos, porque el click
del globo
de este Sprite aquí es un evento Tenemos esto cuando flag,
cuando se hace clic en go ya aquí, pero ahí debajo es
cuando este Sprite hizo clic, y aquí también tenemos
cuando pulsamos la tecla de espacio Esto es para eventos de teclado, pero esto aquí es para
el evento click. Arrastramos esto a
nuestro Canvas aquí, y luego tenemos este evento. Cuando se hace clic en este sprite, entonces haz lo siguiente y
lo que hay que hacer aquí, necesitamos ocultar el sprite Esto es muy fácil.
Ya teníamos esto. Tenemos espectáculo aquí y
luego una piel al final, vamos a miradas otra vez, y después tenemos esconderse aquí. Simplemente arrastra la piel a
esta posición aquí, y ya podemos probarla. Así que vamos. Y
luego le damos click. Oh, me lo he perdido aquí. Pero ahora he logrado
darle click y ya
ves que el globo
desaparece aquí, está oculto. Bien. Hagámoslo otra vez. Entonces esta vez estaba
mejor preparada. Por lo que no es muy
difícil golpear el globo. Pero si tienes,
digamos cinco globos aquí, todos en posiciones aleatorias, entonces tal vez sea un
poco más difícil. Entonces esto es bastante fácil. También podemos usar la pantalla completa, y luego Podemos probarla bajo condiciones de juego
reales. Eso es bastante fácil
con un globo. También podemos usar, por supuesto, una mayor velocidad, una mayor
velocidad. ¿Cómo lo hacemos? Simplemente cambiamos el tiempo aquí, el lapso de tiempo se desliza
2 segundos a x, así podemos hacerlo un
poco menos de 2 segundos,
1.5 segundos, y luego la
velocidad debería ser más rápida, y también podemos usar Intentemos 1 segundo, y luego será bastante rápido, y luego también será
muy difícil golpearlo. A ver. Ya lo he
logrado. Ahora bien, esta me perdí, otra
vez. Hagámoslo otra vez. Sí. Eso es bastante difícil. A lo mejor es demasiado difícil, pero
dejémoslo así. Y ahora tenemos la mecánica básica del
juego en su lugar. El globo empieza a elevarse, y luego podremos darle click
y luego desaparecerá. Es posible que queramos agregar más tarde una animación para
que el globo aparezca. Por el momento, simplemente se
esconde aquí con este bloque. Así que cada vez que se hace clic en el
sprite, entonces se oculta el globo Ahora lo que tenemos
que hacer es, claro, el jugador necesita obtener puntos por esto para
que al final, cuando se hayan ido todos los globos, el jugador pueda ver
cuántos puntos obtuvo. Esto servirá en el siguiente video porque no es
tan fácil. Necesitamos usar
variables para eso. Ya he
mencionado variables, pero este es un concepto bastante
importante, así que esto será en
un video extra, y luego también podremos contar los puntos y luego
mostrar la puntuación.
7. 07 Reproduce el sonido y cuenta la partitura: Ahora que hemos
ocultado nuestro globo, cuando el jugador hace clic en él, necesitamos contar la puntuación. Pero primero, voy a presentar
otra característica aquí, así que tenemos que tocar un poco de sonido aquí
cuando el globo estalla, luego necesitamos
tocar un sonido pop. Los sonidos que tienes aquí
bajo la categoría sonidos, solo arrastra este bloque
aquí debajo de la altura. Después de la altura, necesitamos
tocar un sonido aquí. Esta es la guitarra eléctrica. Este no es el sonido correcto, así que tenemos que cambiarlo a pop, y luego puedes escuchar esto
tocará un bonito sonido pop. Cuando el jugador haga clic
en el globo, se reproducirán
este sonido, así que intentemos trabajar bien. Bien, eso es todo por
el sonido por ahora, entremos en variables y
contando la partitura aquí. ¿Qué son las variables y
por qué las necesitamos aquí? Al menos necesitamos
una variable aquí, y necesitábamos
contar la puntuación. Cada vez que el jugador golpea el
globo explota el globo, entonces debería
haber un digamos, deben agregar
diez puntos a la puntuación y el puntaje debe
mostrarse en alguna parte. Ya tenemos una variable aquí y ya
se muestra aquí. Esta es la exposición
del globo, tenla aquí. ¿Y cómo lo conseguimos? Está aquí bajo movimiento,
entonces movimiento de categoría, y luego tenemos esta
casilla de verificación que lo mostrará. También podemos mostrar
la posición y y también la dirección. Vamos a sumar todos estos y volvemos
a nuestras variables. Estas también son variables, pero no podemos establecer las variables. No podemos cambiar el valor de estas variables
aquí directamente. Esto es interno
al sistema de juego aquí. Pero es similar a una
variable porque esto aquí representa un valor y
un valor que puede cambiar. Podemos usar esto en todas partes donde estén estos campos redondeados. Podemos simplemente dejarlo ahí, y este es un
marcador de posición para un valor Este -210, por
ejemplo, es un valor. Este es un valor fijo. Sabemos cuál es el valor, -210. Pero aquí, esto no es obvio
qué posición
será esta solo está clara en tiempo de
ejecución o solo se
define en tiempo de ejecución. Por el momento, la posición se determinará
en este momento. También podemos mostrarlo aquí, pero si ejecutamos el juego, entonces esto va a cambiar. Variable. También, por supuesto, el nombre
significa valor variable, por lo que puede cambiar y
tiene que cambiar para que
sea realmente útil. Una variable es un marcador de posición para un valor que cambiará, es
decir, variable Hagamos nuestra propia variable, y necesitamos nombrarla de alguna manera. Entonces hacemos una nueva
variable llamada score. Hacer una variable es
el botón aquí. Vaya a las variables aquí,
las variables de categoría. Ya tenemos uno aquí. Está predefinido. También podemos eliminar esta variable porque
no la necesitamos. Así que haga clic derecho sobre esta variable predefinida y elimine la variable my variable. Hagamos
uno nuevo make variable. Y entonces podemos elegir un nombre. Entonces elegimos la puntuación del nombre. También podemos escribirlo así. Entonces también puedes decidir si esta variable es para
todos los sprides, o solo para este spride Yo diría que como tenemos
más de un spride, deberíamos definir
aquí
la variable score para todos los Sprides.
¿Qué significa eso? El valor de la partitura estará
disponible para todos los Sprits, no solo para este spride Eso es lo que queremos,
no sólo para este srt, porque queremos demostrarlo. mejor queremos usarlo en un spr diferente tal vez en un
guión para un spride diferente, así que vamos a definirlo
para todos los En K, y ahora tenemos esta
variable aquí bajo variables, y se ve similar a este movimiento x posición
aquí, y posición. También redondeé aquí, rectángulo
redondeado,
las esquinas redondeadas, esto es azul, pero
esto es naranja, entonces esta es nuestra propia variable. Podemos usar esta variable cualquier lugar que queramos en
estos campos redondeados, por ejemplo, aquí, aquí, podemos ver que podemos
dejarla caer por todas partes aquí. Bien, entonces esta casilla de verificación también
está aquí, para que puedas mostrar el valor, el valor actual de esta
variable también haciendo clic aquí, y luego
aparecerá en el juego Vamos a deshacernos de esta posición de
globo. Así que solo quita la
casilla de verificación aquí. Ya no necesitamos eso. Pero la partitura,
debemos mostrar, así que mantén
marcada aquí la casilla de verificación Ahora tenemos el puntaje
mostrado aquí, pero es cero. Este es el
valor predeterminado, el valor inicial. Y si hacemos clic en el
globo, escuchamos el sonido. Pero claro, el
puntaje sigue siendo el mismo. Ahora que tenemos nuestra variable, podemos usarla. Podemos cambiar el
valor en tiempo de ejecución. Para esto están estos
bloques. Este es uno de los bloques
establecidos score, en este caso, 20 o cambiar puntaje por uno
con estos dos bloques, se
puede cambiar el
valor de la variable. ¿Qué necesitamos? ¿Cuál de estos bloques necesitamos ahora? Bueno, necesitamos el
segundo porque el primero fijará la
puntuación en un valor fijo, pero necesitamos
aumentar el valor de la puntuación en cierta cantidad. Usemos este
bloque, arrástralo aquí. Justo debajo, digamos después de esconderse. Sólo déjalo caer aquí. Cambiar la puntuación por uno. Veamos qué hace esto y para que sea un
poco más fácil para mí, voy a cambiar o
aumentar esta vez aquí, tal vez digamos 5 segundos, y eso sería muy fácil entonces porque el
globo es muy lento. Vamos a reventarlo y ya ves
que tenemos dos. ¿Por qué tenemos dos? Porque cada vez que
haga clic aquí en esto, esto aumentará, y
solo lo hice clic una vez, y luego comencé el juego
y me reventé el globo Entonces tenemos dos. Pero claro, tenemos que restablecer el marcador
al inicio del juego. Entonces eso es lo que tenemos que hacer. Para ello, necesitamos Usar
el primer bloque aquí. Así que establece la puntuación a cero, que ya es kag lo puso aquí justo después de que se haga clic en go, déjelo caer aquí, y luego el puntaje se
pondrá a cero Así que cada vez que
iniciamos el juego, empezamos con una puntuación
de cero, claro. Y luego reventamos el
globo y tenemos uno. Entonces como solo
tenemos un globo, no
puedo obtener más de una
puntuación de uno en este momento. Pero de todos modos, esto funciona
muy bien aquí. Entonces me reventé el globo, obtengo una puntuación de uno. Entonces, si tuviéramos dos globos, entonces el jugador sería
capaz de obtener una puntuación de dos. Así es como se usan las variables. Se puede cambiar la variable
por un cierto valor. En este caso, uno, también
puedo usar tal vez diez. Entonces, cuando haga pop el globo, obtendré diez puntos, no mucha diferencia, pero tal vez haya globos
más grandes que solo le den cinco puntos al
jugador, así que puedes usar diez y luego cinco para los más grandes porque
son más fáciles de golpear. Eso es todo para las variables. No es todo lo que
necesitas saber sobre las variables, sino cómo usarlas. Entonces puedes establecerlos aquí
a un cierto valor. También puede
establecerlo en un valor aleatorio. Entonces, por ejemplo, tal vez puedas
ir aquí, escoger al azar 1-10. Así que solo déjalo caer aquí. Y entonces la puntuación se
fijará en un número aleatorio, no muy útil en este caso, sino para mostrar el punto. Esto ahora serán cinco y
otra vez seremos diez, otra vez seremos seis. Si pop es el globo, se
incrementará en diez aquí. Podemos venderlo a valor fijo o a este valor aleatorio aquí también, y podemos
aumentarlo en cierta cantidad. O también podemos
aumentarlo por una cantidad aleatoria. Puedes poner esta selección
al azar aquí también en este cambio por campo.
Vamos a probar esto. Pop it y conseguimos cuatro puntos, y después conseguimos tres puntos. Y la próxima vez,
conseguimos nueve puntos. Aquí no es muy útil, pero de todas formas, esto es posible,
deshagámonos de eso y usemos diez aquí. Así que cada vez que hacemos reventar
el globo, el jugador saca el globo, entonces él o ella obtiene
diez puntos aquí.
8. 08 Creación de más globos: Nuestro juego está trabajando
con un globo. No es tan interesante, tampoco tan difícil también, pero está funcionando, y también
tenemos el marcador. Pero necesitamos más globos
y ¿cómo lo hacemos? Es bastante fácil. Sólo tenemos que duplicar nuestro primer globo Haga clic derecho sobre la
s aquí en la lista. Entonces Globo uno, click derecho, doubl y tenemos un
segundo globo aquí Probemos qué pasa
si ejecutamos el juego. Tenemos dos globos. Y podemos saltarlas a las dos. Y siempre conseguiremos
20 puntos como anotación, claro, porque siempre hacemos
reventar los dos globos. Entonces esto es bastante agradable porque acabamos de
duplicar este globo, y todo funciona. Entonces no hubo necesidad de cambiar nada aquí en el guión, pero tal vez podamos cambiar
el color del globo. Vamos a entrar en el globo
dos seleccionado aquí, y luego vamos al vestuario, y luego tenemos
este globo azul, el mismo que el primero, así que tenemos que cambiarlo aquí. Vamos a este
pequeño botón de aquí, y luego se expande
con esta lista, para que podamos subir un nuevo disfraz
Podemos conseguir uno al azar, o podemos pintarlo, o
podemos elegir un disfraz. Eso es lo que hacemos. Escojamos un disfraz, y luego buscamos
aquí el globo, ahí tenemos los globos. Ya tenemos
el globo azul. Vamos a usar un globo amarillo aquí, y ahí tenemos
el globo amarillo. Podemos deshacernos
del primero aquí del
primer disfraz aquí en la lista porque aquí solo necesitamos
este globo amarillo. Eso es. Ahora
tenemos dos globos, uno azul, uno amarillo,
y comencemos un juego. Para que quede más bonito
con dos colores aquí. Podemos hacer más de
estos, por supuesto. También podemos
hacerlo más difícil problema es que
ahora necesitamos cambiar dos de estos sprites aquí porque cada sprite tiene
su propio script aquí, así que necesitamos cambiar
ambos Por ejemplo, 5 segundos aquí
es un poquito demasiado, así que lo configuramos en dos, pero ahora necesitamos cambiar
ambos scripts porque si solo cambio el uno
por el globo amarillo, entonces solo
lo hemos cambiado por el globo amarillo, claro, no por el azul. Entonces cambiemos al azul y también lo pongamos en dos aquí. Ahora se establece en ambos
scripts en ambos códigos, tenemos la misma cantidad de tiempo o la misma velocidad aquí. Esto se pone más difícil ahora, pero sigue siendo factible Pero si tuviéramos un tercer globo, entonces realmente sería
difícil hacerlo. Tenemos dos globos ahora, pero tenemos el problema de
que necesitamos
cambiar el guión de
cada globo aquí, de cada uno para hacer cambios
como la velocidad aquí o tal vez si queremos
cambiar el sonido aquí
por uno diferente,
uno que subimos, tal vez. También podemos grabar un sonido aquí. Tenemos que hacerlo aquí
dos veces. Eso es un problema. Por el momento, la
solución será preparar aquí un sprite
y preparar un guión Y si realmente estás seguro de que
este es el guión final, entonces duplica el sprite Entonces digamos que aquí tenemos
el guión final. No hace falta cambiar nada aquí. Entonces podemos duplicarlo. Digamos, cuatro veces. Ahora, comencemos el juego. Entonces tenemos tres globos amarillos y un globo azul aquí. Pero también podemos
cambiar, claro, aquí, el disfraz
del tercero. Vamos a entrar en disfraces. Hoose un disfraz. Búsqueda de
globo. Ahí lo tenemos. Toma esta morada. Facilita el primero
aquí y aquí. Bueno, hagamos lo mismo. Búsqueda de balon. Pero
aquí sólo tenemos
estos tres colores . Eso es un problema, tal vez. Así que volvamos y
cambiemos el color aquí. Así que selecciona el globo o la parte
principal del globo, y luego vamos a llenarlo y
cambiarlo un poco. Pongámoslo más al rojo. Tenemos un color más
rojizo aquí, y también puedes cambiar
este Por ejemplo, también hazlo un
poco más rojo, así Sí, está bien. También
puedes por supuesto, cambiarte el disfraz aquí o
puedes cargar
uno diferente a tu gusto. Ahora tenemos cuatro globos aquí, y veamos si podemos reventar todos. No, no exitoso. Pasemos al modo de pantalla completa. Sí. 40 es el puntaje máximo que podemos llegar aquí en este juego, y esto es bastante agradable. Pero si los globos
están más separados, tal vez, entonces eso no es
posible hacerlos reventar a todos. He logrado hacerlo. Se perdió uno. Sí. Ahora
tengo todos los globos. Bien, entonces yo diría que eso
es todo para nuestro primer juego. Pero hay una
cosa más que puedo hacer para configurar aquí el
número de segundos. Cada globo tiene que
llegar al destino. Podemos usar también
variables, por supuesto. Entonces hagamos una
nueva variable aquí. Hacer una variable aquí, bajo las variables de categoría. Hagamos uno nuevo, y
también para todos los sprites, porque queremos
usarlo en todos los sprites Entonces lo llamamos velocidad,
solo lo llamamos velocidad. No es exacto porque son varios segundos, pero de todos modos, llamémosle velocidad, y
cuanto menor sea el valor, mayor será
la velocidad. Pero de todos modos, creo que está bien. No necesitamos
mostrarlo aquí, así podemos quitar la
casilla de verificación y luego queda goe ¿Qué tenemos que hacer? Tenemos que reemplazar
estos dos aquí, deslizarse 2 segundos dos x e y, necesitamos
reemplazarlo por una variable Entonces la variable de velocidad aquí, Así que vamos a arrastrar esto
sobre esto aquí, y luego soltarlo
y tenemos segundos de
velocidad de deslizamiento a esta posición Entonces tenemos que establecer, por supuesto, la variable aquí, el valor de la
variable, a, digamos, 1.5, y podemos
hacer esto aquí cuando vaya haga clic. Aquí, arrastramos este conjunto
variable dos valor, y luego elegimos velocidad y
aquí en el campo de valor, solo
ingresamos 1.5. Eso es. Este brit de
aquí tiene ahora este 1.5, éste, así que vamos a comprobar esto Uno es más rápido, ya ves, y esto tenemos que hacer para
todos los globos aquí. Ahora solo tenemos que poner la variable de velocidad
aquí en este lado. Eso es fácil, ve al globo
morado y luego arrastra la
variable de velocidad aquí para deslizarse, y luego para el
globo amarillo igual, y para el globo azul también Entonces cada globo tiene
la misma velocidad aquí. Vamos a probarlo. Ahora se pone muy difícil
reventar todos los globos,
así que probémoslo. Sólo uno también uno, tres, eso es puntaje alto. Ahora, tres es mi puntuación más
alta aquí. Es casi imposible
hacer las cuatro. De todas formas, ahora podemos usar
esta variable aquí, y también necesitamos establecer
el valor de la variable aquí en la primera o en la cuarta aquí mismo
en el globo cuatro. Realmente podemos usar esta
velocidad establecida a 1.5 en cualquier lugar aquí, pero solo necesitamos
hacerlo en un sprite Dejémoslo
aquí, y no
necesitamos poner la puntuación
a cero en cada sprite, así que también podemos
deshacernos de esto tal vez Retirarlo aquí y
eliminarlo aquí. También puedes dejarlo ahí No
es tan importante, pero no es necesario
configurarlo en cada sprite aquí en cada guión Así que solo necesitamos
configurarlo aquí en un sprite. Y lo mismo para la
velocidad, la velocidad y la puntuación se establecen en el último sprite
aquí en el sprite rojo, y luego cualquier otro sprite
puede usar Vamos a probarlo. Trabajando. Se utilizaron variables aquí en dos lugares. En el primer lugar estaba esta
puntuación que se
incrementaba en diez cada vez que el jugador choca con un globo, chasqueaba un globo, y el segundo lugar
estaba aquí en planeo y la cantidad de segundos que se utiliza para llegar a
la posición objetivo, por así decirlo la velocidad
del globo Eso es todo por esta parte. Ahora también podemos mejorar
el juego a bit, por ejemplo, podemos usar un retraso aleatorio
para cada globo para que no todos los globos se muevan
al mismo tiempo.
Esto lo hacemos en la siguiente.
9. 09 Cómo agregar retraso a los globos: A. Entonces Hagamos el juego un
poco más interesante retrasando cada movimiento,
cada movimiento de globo
por un tiempo aleatorio Eso es lo que hacemos, y
esto es bastante fácil porque
aquí tenemos este bloque. Bajo control. Ir al control de categoría y luego al primer bloque de
peso número segundos. Este aquí puede ser un número fijo, por ejemplo, un segundo,
2 segundos, lo que sea. Podemos probar esto primero. Hagamos esto en el globo
cuatro en el globo rojizo. Podemos simplemente insertarlo aquí. O tal vez deberíamos
simplemente moverlo aquí debajo de estos bloques variables establecidos. Entonces, antes de iniciar el movimiento, esperamos 1 segundo, y vamos a comprobar qué hace esto. Y vemos que el globo rojo se retrasa 1
segundo. Eso es fácil. Pero esto no es muy interesante porque cada vez
que iniciemos un juego, esto siempre será de 1
segundo, por lo que es predecible. No queremos que eso sea
predecible porque es un juego, y debería ser divertido, claro. Entonces arreglemos esto. Es fácil. Vamos a operadores
y este bloque aquí, escogemos al azar de uno a diez
selecciones un número aleatorio. Nosotros solo lo ponemos aquí en peso
en este campo redondeado aquí, y después tenemos
pick de peso al azar uno a diez. Diez es un poco
largo, 10 segundos. Entonces digamos solo cuatro, 4 segundos, y luego intentamos esto. Entonces cada vez que iniciamos el juego, debería ser uno, dos, 4 segundos al azar,
y aquí lo tenemos. Esto es tal vez fueron 4 segundos. Vamos a intentarlo de nuevo.
Y ahora tenemos tal vez 3 segundos.
Hagámoslo otra vez. 4 segundos, y
volvamos a hacerlo. También podemos hacerlo 0-4. ver si hago eso, entonces se ve que el
reset de la posición aquí siempre va a suceder
después del peso aquí. Creo que tenemos que
mover eso aquí. Vamos a mover eso ir a x
e y por encima del peso. Inmediatamente se restablecerá a esta posición aquí y
luego esperará y luego se deslizará Eso es mejor. Y
ahí está el globo. Bien, entonces tenemos este mecanismo de ponderación
aquí para el globo rojo Lo necesitamos también para
los otros globos. Entonces te voy a mostrar algo para que
puedas copiar un bloque, un bloque complejo como este, como este peso
con un número aleatorio de segundos a los
otros globos. Para eso, solo
extrae esto aquí. Simplemente podemos separar esto
y luego arrastrarlo hacia afuera. Entonces este bloque aquí puede simplemente arrastrar a los otros sprites aquí Por ejemplo, este
es se menea un poco, entonces puedes soltarlo aquí y de esta manera,
se copiará Este bloque aquí se queda aquí, pero también se copiará
aquí a este sprite Aquí lo tenemos,
y ahora podemos Simplemente ponerla aquí justo antes del planeo y luego de vuelta
al globo rojo, y luego también podemos arrastrarlo
aquí al segundo spride,
soltarlo, y también
al primer Ahora tenemos que colocarlo en
la posición correcta aquí. Justo antes del planeo, esperamos un
número aleatorio de segundos. Lo mismo para el globo
azul aquí. Justo antes del planeo, esperamos un número aleatorio de
segundos. Eso es. Intentemos y
vemos que los globos esperan un número
aleatorio de segundos. Otra vez, claro, el globo rojo
ya no está funcionando porque
hemos arrastrado esto, así que solo volvamos a ponerlo
aquí Juntos de nuevo de esta manera, el globo rojo también
funcionará ahora Hay un problema.
Puede que ya lo hayas visto. Si vuelvo a empezar, ya ves que todos los globos
están esperando subir aquí. Eso es demasiado fácil
porque el jugador puede simplemente sacarlo ahí en la parte inferior. Tenemos un pequeño problema aquí, pero simplemente es fácil de arreglar. Veamos qué tenemos aquí. Estamos poniendo la puntuación a cero aquí en nuestro guión de globo
rojo, estamos estableciendo la velocidad en 1.5, y vamos a esta posición
inicial aquí, y luego la mostramos. Después de haber mostrado el
globo, estamos esperando. El problema es que
aquí en este punto, ya se muestra
el globo, y luego espera, digamos máximo de 4 segundos, y en este tiempo, el
jugador puede ver el globo El arreglo es muy sencillo, cambia el orden aquí. Tenemos que mostrar el globo
justo antes de este planeo aquí, y esto tendrá que
hacer en cada sprite Hemos insertado el peso
en la posición equivocada. O el espectáculo está en
la posición equivocada ahora, Corregamos esto. Eso es todo para el globo
morado, y nosotros hacemos lo mismo con
el globo amarillo aquí y para el azul también. El espectáculo debería ser justo
antes de que tengamos el planeo. Aquí, eso es correcto.
Comprobemos de nuevo, muéstralo justo antes del planeo Entonces eso debería ser correcto. Vamos a probarlo. Los globos no
se muestran antes de
que comiencen a moverse. Eso es más agradable ahora, y puedo tratar de reponer los
globos. Sí, sí. No. Sí. Eso fue una falta. Vamos a intentarlo de nuevo. Esta vez. Tengo la puntuación máxima de 40. Ahora tenemos un juego bonito y
es bastante entretenido, y no es tan
fácil golpear todos los globos, estallar todos los globos. Por ejemplo, ahora, solo
tengo 30, y también puedes, por supuesto, duplicar aquí más globos para que puedas tener
tal vez diez o lo que sea. También este retraso podría
ser un poco más largo o este
retraso aleatorio podría ser tal vez 5 segundos para que
sea más fácil hacer estallar los globos o más
difícil como quieras. Pero creo que esto debería
concluir nuestro primer juego. En mi opinión, esto
es bastante agradable, o tal vez deberíamos
deshacernos de este año. No es necesario que se muestre esta posición en Y. Esa es una vez más.
Empecemos el juego. Ya faltó un globo. Ahora tengo también 30 como marcador. Por favor, siéntase libre de
jugar con él y divertirse. A lo mejor puedas mejorar en
una u otra cosa aquí. Puede mejorar quizá un poco en la
mecánica del juego, puedes doblar más globos para que puedas hacerlo más difícil o el juego sea largo que si tienes
más y más retraso también, entonces el juego se
alarga, claro También se puede cambiar
el vestuario aquí. Si no te gusta este globo, puedes dibujar el tuyo propio o
puedes importar un disfraz nuevo, subir el disfraz aquí y
luego elegir, por ejemplo, un PNG JPEG o un SVG, entonces puedes reemplazar
este globo aquí tu propio globo o tal vez también
puedas cambiarlo. Con los trajes preestablecidos aquí. Esto concluye nuestro
primer juego y el siguiente juego comenzará
en la siguiente sección.
10. 10 Crea una cuenta para almacenar y compartir en la nube: Antes de continuar con
nuestro próximo proyecto de juego, te
mostraré cómo unirte a
scratch y cómo hacer
una cuenta para que puedas almacenar tus proyectos,
tus juegos en línea, y también compartirlos con otros para que otros
puedan jugarlos, y también puedan echar un vistazo
al código de nuestros guiones y luego hacer
ajustes al juego, hacer su propio juego basado en tu juego y todas
estas cosas geniales. Hagamos esto. Tienes que hacer
clic en Unirse a Scratch aquí, y luego ingresar un nombre de usuario. Por ejemplo, pongo en juego Def profesor y luego una contraseña, Así que tal vez quieras desmarcar esta casilla de verificación aquí para
no mostrar tu contraseña, pero también puedo dejarla marcada que todo
lo que escribas
aquí sea visible, no
estoy haciendo eso,
así que voy a crear una nueva cuenta aquí y luego
usar una contraseña aleatoria No voy a mostrar. Entonces
tienes que escribir tu contraseña dos veces para
asegurarte de que la has escrito
correctamente, y por supuesto, tienes que
recordar la contraseña Así que ponlo tal vez en
un gestor de contraseñas, algo así, o
escríbalo y escóndalo. Entonces entonces si tecleaste
correctamente
las dos contraseñas, contraseñas
idénticas aquí Puedes hacer clic en siguiente, y luego tienes que
elegir tu país. Entonces estoy eligiendo Alemania
porque ese es mi país, pero por favor elige tu propio año y mes de tu cumpleaños. Entonces eso es mío aquí. Soy un correo, y luego el siguiente. ¿Cuál es tu correo electrónico? Y luego scratch te
mantendrá informado sobre cosas nuevas agregadas a
scratch, algo así. Así que solo pon tu dirección de
correo electrónico. Pondré el mío aquí, y luego crearé tu cuenta
con este botón de aquí. Y toma un poco. Entonces bienvenido a la maestra de Scratch
Game Df. Entonces ahora estoy encerrado aquí. También estoy teniendo este menú aquí, perfil configuración de la
cuenta MyStuff Entonces vayamos
primero al perfil. Aquí está mi perfil. Puedes escribir algo
sobre mí, en lo que estoy trabajando, y también puedes cambiar
tu imagen aquí. Simplemente deshazte de esto confirma tu correo electrónico para habilitar el uso compartido. Para compartir un proyecto, tienes que hacer clic en un enlace en el correo electrónico que
has recibido. Debería haber recibido a estas alturas, simplemente
voy a hacer clic en
eso de distancia y
puedes ingresar aquí tu sobre mí, en
qué estoy trabajando, y también
cambiar tu foto aquí. También aquí, tienes una lista
de tus proyectos compartidos, de tus proyectos favoritos y rasguños que
estás siguiendo. Pero eso no es tan importante. Tienes un mensaje aquí. Aquí
hay mensajes desde cero. Bienvenido después de hacer
proyectos y comentarios, recibe mensajes
sobre ellos aquí, ve a explorar y hacer un proyecto.
Eso es lo que haremos. L et's volver a
nuestro proyecto aquí. Consulta nuestra página de proyecto aquí, y también podemos guardar ahora aquí, o podemos guardar como copia. Para que se
haga una copia de su proyecto. Pero por ahora,
guardamos proyecto guardado, y luego podemos echar un
vistazo a nuestra página de proyecto. Aquí está.
También puedes cambiar, claro, el nombre aquí, globos pop, y aquí
también puedes jugar el juego. Y las instrucciones son
instrucciones para jugar el juego, y también se
pueden ingresar otras notas y créditos aquí. Pero por ahora, esto no se comparte. Tienes que hacer click en compartir, y luego otros
rasguños también pueden ver el proyecto y también
jugarlo y editar el proyecto
a quien les guste. Volvamos aquí,
cierra este tutorial. Estamos conectados en nuestra cuenta, y como dije, puedes guardar en línea. No tienes que descargar. También puedes descargarlo, claro, y cargarlo
desde tu computadora, subir un proyecto,
pero también puedes guardar ahora en línea en la
Nube, por así decirlo. O también puedes hacer una copia. Ahora hemos hecho una copia y el nombre cambia
a Globos pop copy. Ahora tienes dos proyectos. Aquí, si haces clic en aquí, este botón,
podrás ver tus cosas. Mis cosas son dos proyectos
no compartidos, cero proyectos compartidos porque no
he compartido
ningún proyecto aquí Esto es privado ahora aquí, pero también puedes eliminar
los proyectos aquí, ver adentro para editarlos, reproducirlos y compartirlos. Eso es lo que
quería mostrarte. Volvamos a nuestros globos. Pop. Y aquí
tenemos nuestro proyecto. Así que cada vez que inicias sesión en
otra computadora, tal vez, entonces todavía puedes editar tus proyectos aquí
porque se guardan en línea.
11. 11 Nuevo juego de control de la nave espacial: Entonces aquí estamos. Este es
el comienzo de nuestro nuevo juego, y este juego se
llamará Space Explorer, y el jugador controla
un cohete espacial que viaja por el espacio y se encuentra con cosas
como meteoroides, rocas, algo así Pero también tal vez recursos de materia
prima, algo valioso por
lo que el jugador luego obtiene puntos,
y si
el jugador, el cohete golpea un
meteoro, por ejemplo, entonces, habrá daños, y esta será la idea Y comencemos. Así que
tenemos este año CATs. He empezado un nuevo proyecto. Podemos eliminar el gato y
crear un nuevo sprite aquí, elegir un sprite de los recursos aquí de
los sprites predefinidos, y podemos
buscar un cohete, y ahí
lo tenemos, nuestro Simplemente haga clic en él. Se puede ver también que
tiene una animación. Así que vamos a revisar los
disfraces aquí. Y se puede ver que aquí
tiene cinco fotogramas, animación para cinco fotogramas, y podemos usar esto para hacer
las imágenes un poco más interesantes para tener
una animación del objeto jugador
aquí, la nave espacial Pero primero, vayamos a
controlar la nave espacial. La idea es que puedas controlar la nave espacial usando las teclas
del cursor, las teclas flecha hacia arriba moverán
la nave cohete hacia abajo a
la izquierda A la izquierda y
derecha a la derecha. Fácil, pero tenemos que
aprender un nuevo concepto. Entonces hagamos que nuestra nave espacial aquí un poco más
adecuada para el juego Hagámoslo un
poco más pequeño, tal vez como 30, pongamos
el tamaño en 30, entonces esto será mucho más pequeño, pero también
habrá más espacio para otras cosas como
meteoroides y otras cosas Aquí lo tenemos, y vamos a
saltar al código aquí. Vayamos a la
sección de eventos y luego movemos esto vaya haga clic aquí a
nuestro guión Canvas. Bien. Cuando vaya clicado, entonces qué, tenemos que establecer la posición
inicial Vamos al movimiento y luego vamos dos y después a
la posición inicial. Yo sugeriría que
empezarás desde el
centro de la pantalla, y el centro de
la pantalla es cero, cero, esa será
la posición de inicio. Justo en el centro,
entonces aquí irá a los ys positivos y aquí
al ys negativo. Puedes verlo aquí
si solo voy a y posición y marco
esta casilla de verificación aquí. El valor se
mostrará aquí. el momento, es
cero, claro, porque empecé el juego y este bloque aquí lo está
poniendo a cero, y además la x será cero. También te puedo mostrar la x aquí. Si muevo esto a la cima aquí, se
puede ver que la y se mete más en los valores
positivos. Si lo muevo hacia abajo, verás
que esto es menos algo. Esto es positivo y, esto es negativo y,
y a la izquierda, también se
puede ver para la x, esto es x negativo, y esto es
x positivo a la derecha. Bien, entonces ahora tenemos esto. Estamos centrando el
cohete y ahora
tenemos que dejar que el jugador
controle la nave Vamos a deshacernos de estos, así que desmarca estas dos casillas aquí, y luego tenemos más
espacio para el resto Entonces, ¿cómo lo controlas? Estamos introduciendo
aquí algo que podrías llamar un bucle de juego. ¿Y qué es un bucle de juego? Game loop es algo
que hace un bucle para siempre. No para siempre, pero
mientras el juego se ejecute, simplemente
girará infinitamente.
Entonces, ¿dónde está eso? Vamos bajo control, y entonces tenemos esto para siempre. Y también se llama para siempre. Entonces solo para arrastrar esto
aquí debajo de esto, vaya a x, vaya a
y. Y aquí tenemos este bucle, y ¿qué significa loop? Significa que todo
dentro se repite infinitamente. Entonces, si haces algo
después de esto aquí, nunca se ejecutará. Entonces si hago algo
como esto aquí, muevo diez pasos, por ejemplo, ni siquiera
puedo adjuntarlo aquí porque scratch sabe que
después de este bucle para siempre, no
tiene ningún sentido poner algo ahí porque esto
no se ejecutará. Entonces esto no es posible. Solo puedes mover esto
dentro del bucle forever. Entonces, ¿qué pasa si hago esto? Así que mueve diez pasos.
Hagamos esto. Empecemos esto, y
ves que va a la derecha. Y luego sí, está
algo atascado aquí, así que no puedes
moverlo más que esto. Entonces la x será de
máximo 242 aquí. Entonces moviendo esto más a la
derecha, no funciona. Entonces esto es para siempre
haciendo esto aquí. Y si haces dos
cosas al bucle, hará estas dos
cosas también para siempre. Entonces hagamos
otra cosa. a
ir a la posición aleatoria
después de mover diez pasos. Ejecuta esto y verás que va por
todo el lugar
lo más rápido que pueda. Eso no es muy
útil, pero
también podemos insertar un retraso aquí. Vamos al control, y aquí tenemos el bloque de
espera 1 segundo, o podemos esperar 1 segundo
o dos o lo que sea. Vamos a probar esto.
Ves que se mueve diez, luego espera 1 segundo, y luego se mueve a
una posición aleatoria Pero de todos modos, no
necesitamos esto aquí. Lo que necesitamos es otra cosa. Espero que entienda el punto de que
todo lo que hay dentro aquí se repetirá
para siempre. No hay salida. Siempre se repetirá
y repetirá y repetirá. También hay un bucle
diferente aquí. Se puede repetir diez veces. Entonces solo lo
repetirá diez veces. O puedes tener repetir hasta, y esto repetirá
los bloques internos aquí hasta que se cumpla una condición, y luego saldrá. Y te das cuenta de que estos
tienen estos pequeños notch aquí. Entonces puedes hacer
algo después de eso. Pero en el forevep, no
tienes eso, no hay forma de adjuntar
algo aquí después de siempre, lo cual es algo lógico, así que pero hay que tener en cuenta
que nunca saldrás de
este bucle para siempre Por lo que siempre estará aquí. Pero también puedes agregar un evento
diferente aquí. Entonces, cuando quiera hacer
algo en paralelo, siempre
puede arrastrar otro cuando vaya haga clic aquí y luego
agregar un script después de eso. Eso es posible. Puedes tener
dos cosas corriendo a la vez, o tres o cuatro o
lo que sea, cuántas te gusten. En esta
lupa para víspera, ¿qué hacemos? La idea es que comprobemos
si se presiona una tecla, y este bloque está bajo detección. Tenemos
presionado este espacio de teclas y podemos
arrastrarlo al lienzo aquí. Pero necesitamos
algo más, también. Necesitamos algo que también
esté bajo control. En inglés, podemos decir, si se presiona tecla, entonces haz algo,
y aquí en scratch, es
lo mismo si algo,
entonces haz algo. Esta condición
aquí después del si, este puede ser este bloque aquí. Pongamos esto aquí después
del si. Sólo déjalo caer aquí. Entonces tienes si el
espacio de teclas presionado entonces, y luego bajo esta condición, si se presiona la tecla de espacio, entonces podemos hacer algo aquí. Pero no queremos
la tecla de espacio aquí, necesitamos, digamos que
empezamos con la flecha hacia arriba. Si se
presiona la tecla de flecha hacia arriba, entonces haz algo. ¿Qué hacemos entonces? Por supuesto, movemos la nave espacial Comprobemos cómo se hace esto. Cambiamos Y. Cambiamos la posición y
por una cierta cantidad. Entonces, sigamos
con los diez aquí, cambiemos y por diez. Entonces cada vez que se presiona la tecla de
flecha hacia arriba, luego cambia y por diez. Y diez medios a la cima, por lo que se incrementará la y. Así que vamos a comprobar si esto funciona. Presiona ir, y luego estoy
presionando la flecha hacia arriba aquí, y vemos que esto funciona. No puedo bajar, pero puedo subir. Entonces necesito
detenerlo y reiniciar, y entonces y luego
puedo hacer esto de nuevo. Bien, así que hagamos la bajada también. Haga clic aquí en el if, botón
derecho del mouse, y luego puede decir Duplicar, y luego tiene
que poner este segundo duplicado si bloquear aquí justo debajo
justo después del if. Esta es la flecha hacia arriba, y
esta será la flecha hacia abajo. Si se presiona la flecha hacia abajo,
no la flecha hacia arriba, entonces necesitamos cambiar y
en la dirección opuesta. Aquí esto es positivo porque
queremos que la nave espacial
suba y aquí esto
tiene que ser negativo, y luego
bajará la y de la nave espacial. Vamos a probar esto. Estoy presionando hacia arriba Ahora
estoy presionando hacia abajo. Esto parece funcionar, muy bonito. Ahora tenemos que
moverlo de izquierda a derecha. Nuevamente, duplique este bloque. Tienes esto si, y luego cambiamos la clave aquí. Empecemos con
una tecla de flecha izquierda, y luego cambiemos no y en
este tiempo porque left es x, y también a la derecha será x Eliminemos esto
aquí, lo borremos, y aquí tomamos el cambio x y, ponemos eso aquí, y esta vez, x se cambiará por diez. Intentemos esto y
va a la derecha. Esto está mal. Esta tiene
que ser la flecha derecha. Intentemos esto de nuevo
a la derecha sí, presionando la tecla derecha, la tecla de flecha derecha. Esto funciona. Lo único que queda queda, y volvamos a duplicarlo una
vez más. Ponlo después del si anterior, y ahora si se presiona la tecla
flecha izquierda, luego cambiamos x por, y ahora necesitamos
moverlo hacia la izquierda, eso significa que tenemos que
restar diez aquí Vamos a cambiarlo por menos diez. Nuevamente, probémoslo, izquierda, derecha, arriba y abajo,
y esto funciona. Para que la obra pueda
controlar la nave espacial. Si esto es demasiado rápido, tal vez no lo suficientemente suave, entonces necesitamos cambiar
estos valores aquí. A lo mejor podamos decir,
pongamos aquí cinco, y eso será
entonces menos cinco. Y esto será cinco, esto será menos cinco. Ahora la velocidad será
un poco menor. Intentemos esto de nuevo, y ahora la velocidad es más lenta. Ahora, tenemos el control
de la nave espacial. Este es un paso muy
importante aquí. Repasemos de nuevo el código. Cuando se hace clic en go,
estamos poniendo la nave espacial en la posición
inicial, la posición inicial aquí, y esto es cero y cero, x es cero e y cero Entonces tenemos un bucle. Bucle a través de estos bloques
aquí dentro para siempre, así que repita esto para siempre o
mientras el juego se ejecute. Lo que hacemos es que estamos comprobando en cada iteración
aquí si se presiona la tecla, error
arriba, el
error abajo, error derecho, y la flecha izquierda, o el error
izquierdo Y si este es el caso, estamos cambiando y y
x aquí en este caso. Dejemos que eso entre un poquito. Esto es muy importante. Esta es la forma en que
haces el movimiento, el movimiento del controlador. Esta es la
forma estándar de hacerlo. Tienes este bucle para siempre, que es como un bucle de juego en juegos
más sofisticados. Esto siempre se repite lo más rápido
posible, y aquí estamos detectando qué
tecla se presiona y luego cambiando la
posición x o la y de nuestra nave espacial aquí Entonces en el siguiente video, reemplazaremos este valor
constante aquí, este cinco en este
caso con una variable para que podamos cambiar la
velocidad aquí a nuestros gustos. No hay que cambiar cuatro
valores aquí todo el tiempo. A lo mejor hay algo como un power up o algo que
pueda aumentar la velocidad, así que necesitamos reemplazar estos valores constantes
aquí por una variable. Pero hagámoslo
en el siguiente video.
12. 12 Adición del fondo: Estamos aquí en nuestro juego de explorador
espacial y ahora se trata de
hacer el fondo. Se podría pensar,
es el fondo, así que tenemos que ir a las gotas de
atrás aquí. Pero hay una razón
para no hacer eso. Lo estamos haciendo con
otro sprite. Vamos a crear otro sprite. Aquí tienes esto
elige un sprite, o también puedes pintar un sprite,
y esto es lo que hacemos Por supuesto,
también hay estas opciones para subir una imagen de sprite, SVG, algo así Y también conseguir una sorpresa
y tener algo. Hagamos esto, vamos a conseguir
un sprite aleatorio aquí. Esto no es lo que
queremos, claro, pero por supuesto podemos
borrarlo de nuevo. Este es nuestro sprite aleatorio. Si lo vuelves a hacer, obtienes uno diferente. Esta
vez es un tazón. Esa es la opción sorpresa, y podemos comprobar aquí si
encuentras algo como espacio o universo o estrellas, pero aquí no encontrarás
nada. Encontramos un sol, pero
eso no es lo que queremos. Queremos un fondo negro
con puntos claros en él,
blanco, tal vez puntos blancos en él, y esto no está en
la biblioteca aquí. Hagámoslo nosotros mismos
solo elige la pintura aquí. Entonces podemos pintar
nuestro fondo. Empecemos con un rectángulo. Elige esta herramienta rectangular aquí, y luego elegimos
un color diferente, claro, debería ser negro. Ponemos el brillo a
cero, y eso es negro. Si quieres el blanco, tienes que establecer el brillo a 100 y la
saturación a cero, y ahora tienes el blanco. Pero aquí queremos el negro, así que el brillo a cero
hará que todo sea negro. No importa lo que
pongas aquí o aquí. Todo será negro si
estableces el brillo a cero. Ahora tenemos el color de
primer plano negro y la
herramienta rectángulo activada, y luego hay que
arrastrar un rectángulo aquí Entonces trata de ajustarlo a
estos límites aquí. Si creas el
rectángulo aquí, entonces puedes ajustarlo
con estos puntos aquí con los pequeños círculos aquí. Hagámoslo más o menos exactamente igual que
esta zona interior aquí. También puedes acercar el zoom. Para comprobar si lo hemos logrado. Ahora no es exactamente. Ahora bien, esto está bien. No tiene que ser exacto. Si hiciste algo mal, entonces simplemente puedes hacer deshacer aquí, entonces esta flecha se deshace, y luego se deshará la última
acción Hagamos esto correcto aquí. El lado izquierdo, siempre ve
a estos círculos aquí, y luego puedes ajustarlo, y luego, eso debería estar
bien. Alejemos el zoom. Ese es nuestro trasfondo. Pero, ¿qué falta aquí? Las estrellas. Entonces las estrellas son círculos, al
menos en este juego. Entonces elige el círculo, y luego necesitamos cambiar
el color de primer plano de co, brillo a 100 y
luego saturación a cero Esto te dará
blanco aquí. Bien. Entonces nos acercamos un poco
y arrastramos un círculo aquí. No será círculo si
no mantienes turno aquí. Entonces, en tu teclado, mantén presionada la tecla Mayús, y luego es
un círculo perfecto aquí. Pero es un poco demasiado grande, así que hagámoslo un
poco más pequeño. Algo tal vez así. Comprobemos esto. A lo mejor un poco demasiado grande,
vamos a mantenerlo así. Tenemos una estrella aquí, no mucha. Tenemos que hacer más estrellas. Volvamos a la herramienta de
selección aquí. Seleccione la
herramienta de selección, esta flecha aquí. Ahora podemos seleccionar nuestra estrella aquí, y ahora podemos copiarla.
¿Cómo lo copias? Presiona copiar aquí, este botón, o también puedes comandar
C o en windows, es Control C, y lo
has copiado, y luego puedes pegarlo. Pegar es este botón o comando V o Control
V. Vamos a pegarlo, y luego está aquí y
luego puedes arrastrarlo a una ubicación
diferente aquí Vamos a arrastrarlo a
otro lado. Quizá aquí. Hagamos otra copia. Comando C o control C, control o comando V, y esto hará otra copia. Lo arrastramos a otro lado. Otra vez, moviéndolo. Aquí hicimos un pequeño
montón de estrellas. Ahora lo que podemos hacer para que
las cosas sean un poco más rápidas es, podemos seleccionarlas.
Alejemos el zoom. Seleccione, y luego podemos
arrastrar un rectángulo aquí. Ahora también has seleccionado el fondo,
lo cual no es bueno. Entonces, deseleccionemos
el fondo aquí. Presione Mayús y luego
seleccione el fondo, y luego esto
deseleccionará el fondo Ahora sólo tenemos
estos aquí seleccionados. Vamos a copiarlos, Conti o Komaz y luego insertarlos,
pegarlos nuevamente. Vamos a acercarnos un poco
y luego podremos mover estas nuevas estrellas a otro lugar. Tenemos que arrastrar una
de las estrellas y luego todas las demás estrellas
también irán con ella. Pongámoslos
aquí y hagamos que un poco
los ajustemos un poco, seleccionamos éste y lo movemos. A lo mejor éste también. Éste. Aquí es un
poco diferente. Así. Ahora deberíamos hacer otra copia de nuestro campo
estelar aquí. Nuevamente, selecciona estos,
deselecciona el fondo, y luego puedes copiarlo y
moverlo a otro lugar. Como aquí, también puedes
rotarlo con este. Este asa de aquí puede
girar todo el asunto. Y luego cópielo de nuevo, moviéndolo tal vez por aquí, girándolo un poco, tal vez esta vez al
revés, y otra copia, y luego lo
movemos por aquí. Creo que está bien. A lo mejor movemos estas estrellas
un poco hacia la derecha. Bien, creo que está bien. Entonces este es nuestro trasfondo estelar. Creo que eso está bien por ahora. Entonces este es nuestro sprite de
fondo aquí, el primer sprite de fondo que tenemos, pero hay un problema No está en el fondo. Ya no se puede ver la
nave espacial. Entonces, si hago clic en la nave espacial, no
es visible aquí, pero debería ser visible ¿Cuál es el problema aquí? Está
detrás del segundo sprite, detrás del sprite de fondo Y esto, por supuesto,
no es lo que queremos. ¿Cómo podemos arreglar esto? Podemos
moverlo al fondo. Y esto es aquí en
Los, selecciona looks aquí, y luego puedes rodar hacia abajo, ir a la capa frontal. Este es este bloque de aquí. Así que arrastra este bloque al lienzo
al lienzo del guión. Y entonces podemos cambiar
esto no al frente, pero queremos que vaya a la capa
posterior. Entonces haz esto. Y como nunca cambiamos esto, solo
podemos hacerlo una vez aquí en el editor y simplemente hacer
clic en este bloque aquí. Si haces clic en el
bloque, esto se
ejecutará aquí este
bloque. Ir a la capa posterior. Ahora esta spride está
en el fondo, y por supuesto, nuestro cohete
está ahora en primer plano Eso es. Ese es nuestro
antecedente spride Está bien así, pero es estático, no
se mueve, y queremos un efecto de desplazamiento, para que parezca que el cohete en realidad está
volando por el espacio Esto es lo que hacemos
en el siguiente video.
13. 13 Movimiento del fondo: Aquí tenemos nuestros
antecedentes otra vez, y este bloque aquí ya
no es necesario, así que podemos borrarlo, simplemente arrastrarlo por aquí, y desaparecerá. Bien entonces necesitamos
mover el fondo para
que el jugador tenga
la impresión de que el cohete realmente está
volando por el espacio. Entonces, ¿cómo hacemos eso? Va a ser así aquí. Pero claro, va a
estar en el fondo. Pero primero fijemos la ubicación del fondo
a la posición inicial. Cuál es la
posición inicial La
posición inicial estará aquí en
algún lugar aquí en el centro, por lo que debería ser 00. Eso es lo que hacemos a
continuación. Ir a eventos. Cuando se hace clic en go, entonces estamos configurando
la posición de inicio Ir a x e y, y este ya es
el caso aquí, x cero, e y también cero para que se reinicie cada
vez que se inicie el juego. Vamos a probar eso. Basta con mover el sprite de fondo
y luego comenzar, y ahora lo tenemos de nuevo
en la posición inicial Pero nuestro cohete
ha vuelto a desvanecerse. Entonces para evitar esto, tal vez
deberíamos seguir usando
este bloque de ir a capa aquí. Así que solo consíguelo para atrás, ve a la capa trasera aquí. Después de ir dos x e y, nuestro chip de cohete vuelve a ser, visible, ya no detrás
del sprite de fondo ¿Cómo movemos este sprite
de fondo? Es igual que el chip cohete, pero sin los controles, los controles serán automáticos, por así decirlo, así que
necesitamos un bucle para siempre. Algo así,
y por supuesto, esto será después de la
inicialización aquí Primero, establecemos x e y en cero, y luego vamos a la capa
posterior para asegurarnos de que el sprite esté realmente
en el fondo y el cohete
esté en primer Ahora tenemos este bucle de juego aquí para nuestro sprite de fondo Hablando de sprite de fondo, podríamos simplemente renombrarlo aquí, que puedas cambiarle el nombre,
por ejemplo, BG one A lo mejor tenemos un segundo, así que lo estamos llamando
BG one return, ahora se le cambia el nombre ¿Qué necesitamos aquí? Tenemos que mover el fondo, y esto es por supuesto
en la moción, así que ve a movimiento y
luego cambia y por diez. Probemos esto. Esta es
la dirección equivocada. Yo quería bajar,
así que debería ser menos. Es un poco demasiado rápido, así que ry menos dos aquí. Vamos a intentarlo de nuevo y ahora
se mueve al fondo aquí. Esto es lo que queremos,
pero también queríamos empezar de nuevo aquí en la parte superior, así que necesitamos restablecerlo si se alcanza
esta posición. La posición aquí es -346, y esto es lo que tenemos que
tener en mente aquí Necesitamos un chequeo si la posición es lugar
aquí en esta posición y. ¿Cómo lo hacemos?
Vamos al control. Esta vez no se trata de bucles, sino de una condición, si se cumple una condición, entonces queremos restablecer
esta ubicación de Sp,
la ubicación de Sprites y Esto es si A condición,
entonces haz esto, y aquí ya podemos poner, ir a x y, x está bien, la forma es cero, e y debería ser la posición
inicial. No, no debería ser
la posición inicial, pero debería ser
algo así aquí. Vamos a moverlo todo el
camino hasta la cima aquí. Esta es la ubicación más
alta aquí. Y aquí tenemos 346. Entonces es lo mismo,
pero en lo positivo. Bien, entonces esta es la
posición que necesitamos para restablecer este sprite dos Y ahora necesitamos la condición. Entonces la condición
va justo aquí. ¿Cómo hacemos una condición simple? Ya lo hemos hecho. Aquí tenemos operadores. Entonces no está detectando esta
vez, sino que son los operadores. ¿Qué necesitamos
verificar? Tenemos que verificar si la ubicación, la ubicación y está por debajo de un valor. Y este es este bloque de
aquí. Pon esto aquí. Y déjalo caer. Y ahora necesitamos la ubicación y de nuestro
sprite. Ir a movimiento. Entonces aquí tenemos la
posición y. Esto es lo que necesitamos. Verificamos la posición y
si la posición y es menor que esta menos 4346, entonces necesitamos restablecer
a esta ubicación Vamos a probar eso. Esta condición no
se cumple por el momento, no se cumple, y
entonces no está funcionando. Y? Debido a que la posición y nunca
será menos tres ,
47, siempre se quedará aquí. Tenemos que disminuir esto. Tenemos que disminuir esto en
uno o aumentar esto en uno, no son 36, 345. Si la posición y
obtiene dos menos tres, 46, esto se cumplirá aquí, esta condición. Probemos esto. Y está funcionando, muy agradable. El sprite de fondo ahora
se moverá
al fondo y si
llega al fondo, entonces se restablecerá aquí
a través de este condicional Si la posición y es
menor que menos 36, cinco, entonces reinicie la
posición a esta. Ese es el movimiento
del fondo. Funciona muy bien. El problema aquí
es que aquí tienes este espacio vacío en blanco. Para ello, necesitamos tener otro sprite y este debería
ser una copia de este sprite, pero debería moverse un
poco diferente, o al menos debería comenzar
en una ubicación diferente, y lo hacemos en
el siguiente video
14. Sprite de fondo de 14 segundos: Ahora que tenemos nuestro
fondo móvil así, necesitamos duplicar
este sprite de fondo aquí porque tienes este espacio
vacío o blanco
aquí en el medio, así que necesitamos llenar
eso por supuesto con un segundo ¿Cómo lo hacemos? Eso
es muy, muy fácil. Simplemente duplique este sprite
o primer sprite de fondo. Ahora tenemos un segundo,
y luego empezar de nuevo, verás que todavía
tiene este espacio vacío,
este espacio en blanco aquí, de, porque ambos sprites están
justo en la misma posición Pero eso es muy fácil de cambiar. Sólo tenemos que cambiar aquí
la posición de inicio del
segundo fondo, y lo colocamos a este
tres, cuatro, seis. Simplemente desconectemos esto aquí para ver cómo se ve
esto. Se establecerá al principio
a esta ubicación aquí, y luego
comenzará a partir de aquí. Esto es lo que vemos si
solo volvemos a conectar esto. El segundo está comenzando
de aquí y luego baja y el otro sprit
también va abajo, hazlo abajo. No se puede ver porque no
hay brecha entre los dos. Lo que podemos hacer es que podemos ir a disfraces aquí en
el primer fondo, y luego podemos seleccionar este rectángulo aquí
donde el relleno es negro, y fijamos el contorno
vamos a ponerlo en rojo aquí. Entonces esto tendrá un contorno rojo
para que lo puedan ver aquí. Vamos a encargarnos
del otro de aquí. Cambiar al segundo
fondo sp. Seleccione de nuevo, el rectángulo, luego cambie el contorno. Oh, también puedes cambiar
el relleno, claro. Pero cambiemos
el esquema aquí para digamos este azul aquí. Ahora tenemos este borde azul. Aquí tenemos el borde rojo, para que puedas ver cómo se
mueven juntos en sincronía. Empecemos y puedes ver aquí está
esta línea de separación. Del segundo, el borde
superior aquí, y no hay brecha entre
los dos sprites de fondo aquí Esto es muy agradable y fue
bastante fácil lograrlo. El segundo sprite es igual que el primer sprite de
fondo Solo es
necesario cambiar la posición inicial. Comprobemos de nuevo el código. Vamos a la posición
inicial, que está en el segundo
sprite una diferente Comienza justo en la parte superior aquí, y luego vamos también a
la capa de fondo de. Entonces lo hacemos por eup aquí. Y cambiamos y por menos dos, es
decir, baja. Cada iteración de bucle,
irá dos píxeles hacia abajo. Y si la posición, la posición y llega a un cierto punto llega aquí
al fondo, que verificamos con
esta condición aquí, entonces la reiniciamos a la posición
inicial aquí. Lo mismo para el
primer fondo sp, Lo que aquí es diferente es
solo la posición inicial, comienza justo en el medio para que cubra
todo aquí. Se puede ver este rojo aquí, este borde superior rojo
aparece aquí, y luego baja, abajo, abajo, abajo, abajo, abajo, abajo. Y si llega a esta posición, vuelve a subir
igual para la segunda. Ese es nuestro trasfondo conmovedor, y creo que eso es
realmente impresionante. No hemos escrito ni
construido mucho código. Simplemente todo es muy sencillo, y aquí podemos mover el chip del
cohete. Y el fondo está
desplazándose de arriba a abajo. También podemos cambiar, claro, las estrellas para que se ponga un poco más interesante
porque por el momento, solo
tenemos una copia, un clon del primer
fondo aquí, y tiene las mismas estrellas. Entonces podemos de cambiarlo aquí, disfraces, y luego puedes mover todos estos puntos por aquí. Recuerda anular
la selección del rectángulo aquí, y luego puedes
moverlos, rotarlos, A. Lo mismo aquí. Deselecciona el
fondo y luego muévalos o gíralos para que el patrón sea
un poco diferente A lo mejor así. Aquí, vamos a
rotarlo un poco. Ahora se ve diferente. Vamos a intentarlo de nuevo. También podemos deshacernos de las fronteras ahora. No los necesitamos. Seleccione
este rectángulo aquí, y luego reinicie el
contorno dos negros. Et's también quitan el otro. Aquí,
vuelve a ponerlo en negro, brillo cero. Empecemos de nuevo el juego. Lo puse en
pantalla completa para que lo veas mejor empezar, y ahora podemos mover la
nave espacial por aquí No hay nada
que
recoger o algo así o la nave espacial no puede
golpear nada en este momento, pero puede flotar por el espacio y el
jugador puede controlarlo Eso es muy bonito. Ese es
un muy buen comienzo. Tenemos un
fondo de desplazamiento con dos sprites de
fondo diferentes Ahora en el siguiente
video, agregaremos algunos objetos más aquí para que el jugador tal vez pueda golpear un
meteorito y obtener daños.
15. 15 Primer obstáculo hacia la roca: Ahora que tenemos nuestra nave espacial
flotando por el espacio, viajando por el espacio,
y nuestro fondo moviéndose, necesitamos un obstáculo Así que detengamos este juego aquí y hagamos otro
sprite, claro Así que elige un sprite, y aquí tenemos algo
así como una roca Entonces busca roca
aquí en este campo, y tenemos
astilla de cohete y rocas, y estoy eligiendo rocas. Ahora tenemos este de aquí. Entonces tenemos que
ajustarlo un poco. Entonces entramos en disfraces, y aquí tenemos el sprite, el disfraz, el
traje principal del sprite Así que primero vamos a
deshacernos de esto aquí, para asegurarnos de que tienes la herramienta de
selección, esta flecha aquí, y luego solo seleccionarla y
Puedes usar este botón tu eliminar o
puedes presionar eliminar en tu teclado o
retroceso, también funciona Ahora tenemos esto y es
un poco demasiado grande. Creo, así que vamos a cambiar el tamaño Aquí puedes
cambiar el tamaño por aquí. Hagámoslo 50%. Ahora, creo que ese es
el tamaño correcto y muévelo un poco aquí. Eso es un poco mejor. Ahora podemos cambiar también un
poco la forma si quieres. ¿Cómo se hace eso? Puedes, por
supuesto, rotarlo así. Pero con esta herramienta, no se
puede acceder a los diferentes puntos aquí
dentro de esta imagen vectorial. Tienes que usar este de aquí. Esta es la
herramienta correcta para acceder realmente a estos puntos aquí del SVG. Ahora puedes acercar
un poco y luego cambiar estos puntos
aquí. Este es el interior. Entonces aquí tenemos el esquema. Este es también el esquema. Vamos a darle una forma un poco
diferente aquí. Esto es, por supuesto, un
poco de retoques aquí. Tenemos que tener cuidado para seleccionar, click en estos círculos aquí. Solo haz que se pierda un poco
más el círculo. Entonces hagamos una
pequeña curva aquí, algo así,
algo así como una roca. Ahora el otro lado. Lo que también puedes hacer
es mover esto aquí. Entonces esto va a cambiar
la curvatura aquí. Algo como esto. También puedes hacerlo curvo o puntiagudo. De esta manera tienes
aquí un borde
puntiagudo agudo o uno curvo. Aquí puedes cambiar la curva. Puedes jugar un poco
por aquí. Voy a limitarlo a
cambiarlo un poco. Esta es la zona interior aquí. T Creo que ya es suficiente. Todavía no muy bonita. Pero creo que está bien. Si quieres, puedes por supuesto, hacerlo mejor aquí, poner un poco
más de esfuerzo en ello. Hagámoslo un
poco mejor. Cómo puedes agregar puntos aquí es simplemente hacer clic en la
línea así. Entonces tienes un nuevo punto. A lo mejor necesitamos uno aquí. Simplemente haz clic en la línea, y luego obtienes un nuevo punto
aquí que puedes usar. No soy artista, así que ese no será el meteorito
más bonito
que Pero pienso así, a
lo mejor está bien. Dejémoslo así. Lo importante es
usar esta herramienta aquí para obtener acceso a los
puntos individuales aquí y usar esto, si quieres, por ejemplo, mover esto o
rotarlo esto aquí. Algo como esto. Pero lo volví a
poner en el medio. Lo dejo así.
Este es nuestro meteorito, pero quiero cambiar un poco
el color Volvamos de nuevo a esta herramienta, este selector de puntos aquí, y seleccionemos aquí esta área
interior. Entonces cambiamos el
color de eso. Este es un color verde, pero lo cambio a marrón. Algo así, tal vez. Creo que está bien. Ahora
tenemos nuestro meteorito, y está
ahí sentado, no moviéndose Esto, por supuesto, no es correcto. Lo que podemos hacer ahora es copiar nuestro guión
del fondo, del primer fondo aquí, tal vez o tal vez el segundo. Tomemos el segundo.
Aquí tenemos el guión, y ahora copiamos este guión
a esta roca meteóide Simplemente arrastra esto aquí
hasta que se menee, y luego simplemente suéltalo, suéltalo, y ahora lo has
copiado. Seleccione la roca. Aquí tenemos este guión. Este guión es una copia
del otro guión. Veamos qué pasa
si empiezo el juego. Se mueve hacia abajo,
se mueve hacia abajo. Eso es bueno. Pero también
está atascado aquí. Tenemos que dejar que desaparezca aquí si llega a
este fondo aquí. Esta es esta condición aquí si posición
y es menor que -345 Esto es diferente aquí.
Se puede ver aquí es que este meteorito está
atascado en una posición Hagámoslo otra vez. No podemos verlo porque no está
en primer plano Por supuesto, necesitamos
cambiar esta capa de ir a la capa
posterior para ir a la capa frontal. Ahora debería ir
al primer plano. Ahí está. Lo
vemos atascado aquí. Eso es -187. Tenemos que cambiar esto menos
8186, debería ser Si está por debajo de eso y
187 está por debajo de eso, entonces debería ir a
la primera posición. Este es el correcto aquí. Comprobemos esto.
Ahí está la roca, y luego golpea
el fondo y luego vuelve a venir aquí en la parte superior. Eso es lindo. Se está
repitiendo Por supuesto, esto es muy fácil para
la nave espacial para que
el jugador evite
el obstáculo. Pero es un comienzo. Este es nuestro primer obstáculo aquí, y el cohete o el jugador deberían
evitar golpear eso. No hay
prueba de aciertos en este momento. Pero por supuesto vamos a poner en
práctica eso. Además, siempre está en la misma posición
aquí, así que es aburrido. Pero tenemos nuestro meteorito.
16. 16 Golpear la roca: Ahora, estamos golpeando la roca o la nave espacial está
golpeando la roca, y luego debería desaparecer, y tal vez deberíamos
disminuir algunos puntos ahí o aumentar algún daño Pero al menos al final, la nave espacial debería reaparecer, y luego el juego continúa, pero tal vez con uno vive
menos, algo así Hagamos la
parte de golpeo. ¿Cómo lo hacemos? Cuando el barco choca con la roca, debería desaparecer por ahora, y luego digamos
después de 3 segundos, debería reaparecer, luego en medio de la pantalla,
algo así ¿Cómo hacemos esto? Tenemos
este bucle de juego aquí en nuestra cadera cohete y ahí
podemos probar para el evento hit, o no es un evento, pero se puede encontrar
aquí bajo detección, ir a detección, y luego
tenemos puntero táctil del mouse. Este es el bloque
que estamos buscando. Pero no se trata del puntero
del ratón, se trata de otro sprite, y esto son rocas Tocando rocas. Esta es la condición, y para una condición, usaremos el
bloque if. Esto de aquí. Si toca rocas, si el
cohete toca la roca, Correcto, entonces haremos
algo. ¿Qué vamos a hacer? Ocultamos el cohete. Bajo miradas, y luego aquí en
la parte inferior, hay escondite. Solo pon eso aquí,
y esto podemos probar. Pongamos esto si bloque aquí. Al final en el bucle forever. Esto es importante, no afuera. No puedes hacerlo
afuera porque
no puedes hacer algo
después de siempre. Este es el lugar que
necesitas para dejarlo aquí. Estamos pasando por el bucle de
juego para siempre y luego si el
cohete choca contra la roca, si toca la roca, entonces debería estar oculto. Hagamos esto. No estamos
controlando la nave, y ahora desaparece. Eso funciona. Ahora queremos que vuelva
a aparecer después de 3 segundos. Tenemos que esperar 3 segundos
y dentro de estos 3 segundos, este control aquí no
funcionaría. Vamos a la espera de. Pon eso detrás del
pellejo , espera, digamos 3 segundos. Entonces dentro de estos 3 segundos, este bucle forever no
iterará, y luego después de los 3 segundos, queremos reaparecer Tenemos que mostrarlo.
Arrastre este espectáculo aquí. Después de esperar 3 segundos. Probemos esto y veamos que
el barco no es visible. ¿Por qué? Debido a que no lo hemos
mostrado al inicio, necesitamos mostrarlo por
aquí cuando vaya haga clic, luego mostrar el sprite Ahora lo podemos ver y
ahora desaparece, porque golpea la roca, y luego vuelve a aparecer Entonces podremos controlar la nave y movernos
por el meteorito Volvamos a golpear la roca y
luego debería reaparecer. Esto es lindo. Pero claro, tenemos que hacer algo si
la nave espacial choca contra la roca porque Debería haber una
penalización por golpear rocas, y digamos que la
nave tiene vidas Tenemos tres vidas tal vez
y luego se
resta uno vivo si el
barco choca contra la roca Entonces si el barco tiene cero vidas, el juego ha terminado. Hagamos esto en el siguiente video.
17. 17 Daños y reparaciones: En este video,
contaremos las reparaciones. Tienes una cierta
cantidad de reparaciones. Tienes dinero para,
digamos tres reparaciones. Si golpeas la roca más de tres veces
entonces el juego ha terminado. Necesitamos contar el número de reparaciones y ¿cómo contamos? Ya sabemos que se trata de
variables con una variable. Hagamos uno. Ir a variables, eliminar esta,
la variable my. No necesitamos eso.
Haz uno nuevo, y esto debería ser
para todos los sprites. Esto debería ser reparaciones o tal vez reparaciones dejadas,
algo así. Por supuesto, tenemos que
fijarnos al principio. Establecer reparaciones dejaron dos, tres, el jugador tiene
tres reparaciones tres o dinero para tres reparaciones,
y luego el juego ha terminado. Podemos ver aquí
las reparaciones dejaron cero. Tenemos que comenzar el juego. Ahora tenemos tres, y
claro, esto no cambia. Esto es lo que tenemos que hacer ahora, y es súper fácil. Sólo un cambio de reparaciones a la izquierda, esta cuadra aquí por una. Ahora esa no es la cantidad
correcta menos uno, debería hacer el truco, por lo que
debería disminuir decremento, reparaciones dejadas por una Hagamos esto ya sea antes o después del peso tal vez
antes sea mejor. Hagamos esto. Ahora tenemos dos Si
le volvemos a golpear, tenemos uno, y si le volvemos a golpear, tenemos cero, y ahora el siguiente
crash debería terminar el juego. Pero en este caso,
tenemos menos uno. Tenemos que verificar si nos quedan
reparaciones por debajo de cero. Si esto llega a menos
uno, el juego ha terminado. ¿Dónde hacemos esto? Lo hacemos aquí justo antes
del peso tal vez. Tenemos que verificar una
condición para esto, tenemos el si entonces bloquear
aquí, arrástrelo aquí. Ahora también tenemos esto a
menos de bloque, también
necesitamos eso, y tenemos
que arrastrarlo aquí. Ahora necesitamos obtener el valor de nuestras reparaciones
variables que quedan. Ir a variables, y aquí nos quedan reparaciones, nuestra variable, y podemos arrastrarla aquí a esta condición a esta condición
menos que. Si las reparaciones que quedan son menores a
cero, el juego ha terminado. Entonces tenemos que comprobar qué
hacemos si el juego ha terminado. Por ejemplo,
podemos decir algo. Suena gracioso, pero así
es como puedes hacerlo. Entonces Bajo miradas, has
saludado durante 2 segundos, y esto mostrará una
burbuja con un texto. Vamos a probar esto.
Intentemos primero mostrar este mensaje cada vez que el barco choca contra la roca. Así que di hola. No es quizá el texto
correcto aquí. Digamos choque, por 2 segundos. Sí, creo que está
bien. Vamos a probar esto. Aquí se puede ver, no, está oculto, por eso no se
puede ver la burbuja. Cambiemos el orden aquí. Tenemos que ocultarlo
después de este mensaje. Que eso se ponga. Cambiamos
la variable por menos uno, decimos crash, nos escondemos, y luego esperamos 3 segundos. Veamos esto. Choque. Y otra vez, choque. Ahora bien, si el valor
variable de las reparaciones dejadas está por debajo de cero, tenemos que decir algo
así como el juego terminado. Pongámoslo de nuevo aquí. Se acabó el juego y vuelve a intentarlo. Primer choque, Segundo choque. Ahora el tercer choque sigue bien, pero ahora ya no nos quedan reparaciones. Debería decir que se acabó el juego.
No es el caso. Tenemos que comprobarlo, y
lo sé porque está oculto. Por supuesto, el orden equivocado otra vez. Vamos a esconderlo después de esto. Vamos a intentarlo de nuevo. Ahora vamos a esta vez, disminuir
el número de reparaciones. Pongámoslo a una reparación,
y luego se acabó el juego. Por lo que el próximo choque se acabará el juego. Funciona. Primero
choque, claro, porque nos estrellamos, y
luego tenemos juego terminado Tenemos ambos, y luego
se necesitan 2 segundos para mostrar esto y luego
verifica esta variable. A lo mejor es decir el choque justo después de
este cheque aquí. Cambiemos de nuevo el orden
y luego lo intentamos de nuevo. Primero choque, quedan cero reparaciones y ahora se
acabó el segundo juego de choques. Y luego chocar. ¿Cómo terminamos el juego en realidad? Si este es el caso aquí, tenemos que detener el juego. También es posible. Vamos al control
y luego paramos todo. Ponlo aquí en el
caso del juego. Vamos a intentarlo de nuevo. Primer choque. Segundo choque, y luego se acabó el juego. Esto es lindo. Incluso es un juego. No es muy
emocionante porque
solo tenemos una roca,
un meteorito, y además
no hay nada que recolectar y tal vez llenar las
reparaciones que te quedan o
no hay meta que alcanzar Entonces es aburrido. Pero ya es un juego, así que podemos hacerlo, claro que mejor, y lo haremos. Por ejemplo, lo primero que
mejoraría aquí es que la roca aquí está
en una posición x aleatoria. Si restablecemos la roca, para
que esté aquí, vaya a x e y, pondremos esto a una x
aleatoria y no a cero. Hagamos esto en el siguiente video.
18. 18 Posición de inicio aleatoria y bloques personalizados: Para hacer el juego
más interesante, queremos introducir una posición de inicio
aleatoria para nuestro meteorito Volvamos a revisar el juego. La roca siempre está comenzando desde la misma posición x aquí. Por supuesto, también está comenzando
desde la misma posición y, pero la posición x es
la interesante. Entonces el jugador de aquí sabe
dónde está el meteoroide, y es muy fácil solo
volar en esta posición x aquí No tienes que
hacer otra cosa. Entonces eso no es muy interesante. Entonces tenemos que cambiar eso, y eso es bastante fácil. Usamos este bloque aquí. Entonces los operadores eligen al azar. Así que hemos usado esto antes en los globos en el juego de los globos
reventados Entonces esto está generando un número aleatorio entre
estos límites aquí. ¿Qué límites necesitamos? Entonces, pongamos este meteorito al lado izquierdo y veamos cuál es la exposición Algo así tal vez, y luego tenemos este -221 Entonces digamos -220, y luego yo diría más
220 luego del otro lado Eso sería como
poner eso aquí así. Creo que está bien. Entonces entre estos dos números, habrá un
número aleatorio escogido aquí, y esto tenemos que
establecer aquí para nuestra x Así que aquí, pero antes de hacer eso, hagamos clic derecho sobre el
bloque aquí y dudemos de ello. Tenemos dos de estos,
pongamos el primero aquí, vamos a x. Aquí es cuando empieza el juego. Vamos a esta posición de reinicio, y este es el número aleatorio aquí para x y el y es 346, y también lo mismo aquí cuando
restablecemos la posición. Si se alcanza esta posición y, entonces reiniciamos y pasamos también a un número aleatorio x y
esta posición y fija. Eso es fácil y
vamos a probarlo aquí, y vemos Esta vez es esta
posición aquí de la roca, y esta vez es
esto por aquí, así que el jugador no puede simplemente
dejar el cohete aquí en el medio porque
habrá un número aleatorio, una posición x aleatoria
en el medio, y esta es la única y chocar, así que el jugador necesita alejarse del camino aquí, y esto es un poco
un poco más interesante. Aún así, solo tenemos
un meteorito, solo una roca, así que no es muy
difícil evitarlo, pero al menos es aleatorio y
la exposición es cada vez,
la roca se restablece, la posición se establece aleatoriamente Bien. Entonces, lo que no es tan
agradable de esto aquí es el hecho de que tenemos
que meter esto dos veces. Entonces este bloque, este bloque de
números aleatorios de selección. Tenemos que ponerlo en dos ocasiones. Entonces si quieres, por ejemplo, cambiar los límites aquí, tenemos que hacerlo aquí aquí. Entonces, si queremos que esta roca
esté más en el medio, entonces tenemos que cambiarla en dos ubicaciones aquí. No tan agradable. Y es por ello que aquí presentamos
un nuevo concepto y este concepto son bloques
personalizados. Puedes hacer tu propio bloque. Aquí están mis cuadras. Puedes hacer tus propios bloques, y verás cómo
se ve esto y lo usaremos aquí para nuestro reajuste de la roca a
esta posición inicial y también a la posición
inicial cuando llegue al fondo La idea es reemplazar estas
dos llamadas para ir a x, ir a y con una x aleatoria
con un bloque personalizado. Hagamos esto, hagamos un
bloque debajo de mis bloques, y luego puedes elegir
un nombre de bloque aquí. Simplemente pon el cursor
aquí o simplemente puedes escribir escribir tu
nombre para el bloque. Diré que esto es
reset random x. Debería ser un nombre que de alguna manera transmita el significado de lo que
se hace dentro del bloque Un bloque puede contener otros bloques algo así
como una subrutina. El nombre debe describir lo que se hace en este
bloque. Así que solo haz clic. Las otras opciones no son
importantes en este momento. Así que solo haz clic en k, y luego ya tenemos este
bloque aquí. Y aquí definimos lo que
se hace en este bloque. Para que puedas poner cualquier
bloque que te guste aquí, Al
igual que después de
que la W vaya haga clic, puedes poner lo que quieras
aquí. Entonces hagámoslo. Queremos restablecer la posición de las rocas a
la posición inicial, así que necesitamos extraer
este bloque aquí. Entonces solo tira eso aparte
y luego
saca esto y ponlo aquí en este
definir reset random x Esto lo dejaremos así. Y también, esto
se puede arrastrar aquí, y se puede borrar
esa, liderar esa Así que solo déjalo caer por aquí. Bien, entonces, ¿cómo
llamamos a este bloque? Muy fácil? Vamos a mis cuadras
y luego la tenemos aquí. Establecemos x al azar, y este es nuestro
bloque personalizado y solo podemos usar como cualquier otro bloque arrastrar
este bloque personalizado aquí, luego lo juntamos todo. Y también la segunda
ubicación está aquí. Si se alcanza esta posición y, entonces reinicie también a esta posición x aleatoria
y a la posición y fija. Entonces probemos esto primero, y debería funcionar
igual que antes? La exposición de rocas se
elige aleatoriamente cada vez que
pulsa el botón Entonces eso es lo que
queríamos, y eso es lo
mismo que antes, así que
nada cambió. Pero lo bueno es que
este código es más fácil de cambiar. ¿A qué me refiero? Si
quieres cambiar aquí
este rango del que se escoge
el número aleatorio, y solo tienes que cambiar
esta ubicación aquí. Por ejemplo, si
quieres que esté más en el medio
en el centro, podríamos decir que está entre -100 y más 100,
y eso es todo Sólo tenemos que cambiar
esta ubicación aquí de este código en estas dos
posiciones, función, como se podría llamar,
también, o este procedimiento,
o esta subrutina
es llamada desde este código de posición y
desde este código de ubicación. De esta manera, es
más fácil cambiar, y puedes hacer lo que
quieras aquí dentro. Entonces cada vez que se hace clic en G, se llama a
este bloque Qué significa eso,
los bloques bajo este reset random X bajo este reset definido
aleatorio X, son ejecutados. Y entonces cuando aquí
no hay más bloques, la ejecución se reanuda aquí
después de este bloque personalizado. Entonces el siguiente
será ir a la capa frontal, y luego este bucle para siempre. Lo mismo aquí, si se alcanza esta posición
y, y saltamos a este reset
aleatorio bloque X aquí, y vamos a x se ejecuta
y después de eso para siempre. Continuará. Entonces
este es un buen truco. No es necesario
usar bloques personalizados. Siempre puedes ir sin ellos. Pero es más fácil hacer cambios si usas
este script aquí, estos bloques dentro de
este bloque personalizado en más de un lugar. Lo estamos llamando aquí y aquí, y de esta manera
solo tenemos que cambiar esta ubicación dentro de
nuestro definir reset random X. Utilizaremos esta posibilidad para crear bloques personalizados también más tarde, pero aquí está la primera
introducción a este concepto, y esto es muy importante porque hace que tu
código sea más legible. Así que imagina si tienes como diez bloques aquí en
este bloque personalizado, y
tendrías que ponerlo aquí, directamente sin
este bloque personalizado, y tienes esto dos veces igual en dos ubicaciones aquí en el código y quieres
cambiar algo ahí, entonces siempre tienes que
cambiar dos ubicaciones. Si necesitas esta
funcionalidad en diez lugares, por ejemplo, entonces necesitas
cambiar estos diez lugares. Pero si tienes aquí este bloque
personalizado, solo
necesitas cambiar
esta ubicación. Por supuesto, también, hace que el código sea más legible porque se
puede nombrar a este bloque, qué hace exactamente este bloque. Es como escribir un comentario
para que este bloque de aquí esté restableciendo la posición x
a un número aleatorio, y esto es lo que dice la
descripción aquí El nombre del bloque
dice, reset random x. Puedes poner en buena
descripción para que puedas leer tu código igual una oración en inglés,
por ejemplo. Cuando vaya haga clic en restablecer X aleatorio, luego vaya a la
capa frontal
y así sucesivamente, y también
podemos tal vez también podamos poner este bucle
forever en un bloque personalizado no necesario, sino por nombrarlo. Eso lo podemos hacer. Hagamos esto, hagamos otro bloque,
bucle de juego, y luego bien. Ahora podemos definir nuestro bloque personalizado de bucle de
juego, poner ese bucle para siempre
aquí y solo usar este bloque de bucle de juego aquí, y esto será lo mismo. Empecemos de nuevo el juego. Y ves que esto está funcionando
igual que antes. Pero ahora hemos estructurado
nuestro código un poco mejor, y puedes leerlo
igual que el lenguaje normal aquí. Cuando vaya haga clic, vuelva a establecer X aleatorio, vaya a la capa frontal, bucle de juego. Y si quieres saber
qué se hace en Game loop, solo
tienes que ir aquí
para definir game loop. Entonces puedes
dejarlo así, pero voy a poner esto para
everop aquí atrás Yo solo fui un ejemplo. Vuelve a poner eso aquí, y
podemos deshacernos de definir aquí. Lo que tienes que hacer primero es
deshacerte de este bloque aquí. Entonces puedes
deshacerte de lo definido, y luego el bloque
también se elimina aquí. Así es como defines tus propios bloques personalizados que
pueden contener código arbitrario, puedes tener tu
script completo aquí dentro. También puedes llamar a otro bloque aquí dentro que
también es posible. De esta manera puedes estructurar tu código más
bien para que tú u otras personas
que puedan trabajar en este juego puedan entender de qué se trata
el guión.
19. 19 Clonación de nuestra roca: Nuestro juego es algo divertido
o al menos
más divertido que al principio porque aquí hemos introducido
aleatoriedad, y esta es esta
posición aleatoria de la roca aquí para que el juego sea un
poco más difícil de jugar, pero aún así, es muy fácil
evitar esta roca de aquí Entonces, ¿qué necesitamos? Necesitamos más rocas, claro. Entonces de esta manera, el juego
será más difícil. Y claro, podríamos
simplemente copiar las rocas aquí con click derecho sobre
el Sprite Dublic, y luego tenemos dos rocas, y podríamos
hacerlo así Entonces probémoslo. Entonces ahí tenemos dos rocas, y todo está bien. Así que vamos a comprobarlo una vez más. Entonces están más cerca entre sí. Hemos limitado el
rango aquí a 100, -102 un 100 positivo Entonces
volvamos a poner eso a Creo que fue 220 y luego
dos 220 positivos. Entonces eso es un poco mejor, entonces es más aleatorio. Aquí podemos ver que las
rocas están más separadas, lo cual es de co mejor. Y el juego es
más difícil ahora, porque hay que
evitar dos rocas. Y claro, podemos
hacer otro, kit
doble, y así sucesivamente. Entonces tenemos tres ahora
Ellos están juntos aquí. Y ahí tienes
también el problema. Estas dos rocas
están más juntas. Pero el problema está aquí, he cambiado este 220 solo por esta roca y el
primero se quedó con 100. Entonces tenemos que
cambiarlo aquí también, menos 222 positivo 220. Empecemos de nuevo. Tan agradable. Pero ya has visto el
problema Ahora se
distribuyen de manera uniforme
aquí, ya no. Pero ya ves el problema de
que si hacemos copias duplicadas de
estas rocas aquí, y tenemos que cambiar
algo más tarde Tenemos que hacerlo en
cada sprite aquí. Entonces si tengo que cambiar
el rango aquí, tengo que entrar en
cada sprite el código y luego
cambiarlo por cada sprite Eso no es muy agradable, así que tenemos que llegar a
una mejor solución aquí. Entonces, eliminemos aquí las rocas
adicionales. Podemos hacerlo con una sola roca. ¿Y cómo podemos hacerlo? Este es un método llamado clonación, y todo
fan de Star Wars sabe a lo que me refiero, qué es la clonación, claro, porque en Star Wars,
tienes las guerras de clones, y un clon es una
copia de una fuente, digamos, una entidad fuente. Entonces tienes la entidad fuente, y en nuestro caso, es por
supuesto el sprite Estás haciendo clones de ella, así que copias exactas de ella. Pero estas copias tienen su propia, por así decirlo, vida, y son independientes
del clon original. O de la entidad original. ¿Cómo lo hacemos y cómo
funciona en scratch? Seleccionamos nuestra única
roca aquí. Y estamos haciendo copias
o clones de esta roca. Entonces tenemos que ir al control. Así que aquí tenemos cuando
empiezo como clon y creo clon de mí mismo
y también borro este clon. Entonces, ¿cómo funciona esto? Primero necesitamos crear un clon. Arrastremos este bloque
aquí al Canvas aquí. Así que solo inserta este clon de
crear de mí mismo aquí justo después
cuando se hace clic en go Bien, vamos a ver cómo afecta
esto a nuestro juego. Empecemos. Y
ahora tenemos que hacerlo. Pero sólo uno funciona como se esperaba y el otro no
está funcionando siempre está
aquí en esta posición. Eso no es suficiente.
Tenemos dos rocas, está
bien, pero la segunda
no está funcionando de alguna manera. ¿Por qué? Porque lo que está haciendo crear
clon de mí mismo es simplemente crear un
clon en este momento, y después de eso, el resto
del código no se ejecuta. Aquí comienza con
cuando vaya haga clic, cree un clon de mí mismo, luego se crea el clon. Por lo que este código no se
vuelve a ejecutar para este nuevo clon, sino solo para el sprite
original Y sólo funciona el
sprite original. Entonces todo lo que viene
después de crear clon solo
se ejecuta para
el sprite original, no para el clon.
¿Cómo podemos arreglarlo? Eso es muy fácil. Para
esto es este bloque. Cuando empiezo como clon. Esto es de alguna manera
lo mismo que cuando G hizo clic. Pero esto se desencadena
cada vez que se llama aquí a esto. Crear clon de mí mismo
activará esto, pero para el sprite clon, no para el
sprite original, claro ¿Cómo lo usamos aquí? Tenemos que mover esto aquí. A este evento cuando
empiezo como clon. Cuando se hace clic en ir, entonces
solo estamos creando un
clon de nosotros mismos, y luego esto se ejecuta
en el sprite clonado Empecemos. Ahora
todavía tenemos una roca aquí en la parte superior y
no se mueve o
no está bajando al
fondo, pero esto aquí. Este es en realidad el
clon. Detengamos esto. Entonces este es el clon, y si detengo el juego, el clon
desaparecerá, se borra. Sólo queda el
sprite original. Así que cada clon que
se crea durante el tiempo de
ejecución se elimina
si detengo el juego. Entonces de esta manera también se puede
ver que esto de aquí, este sprite en movimiento es el clon Y claro, el
original sólo está creando un clon
una copia de sí mismo, y entonces no está
haciendo otra cosa. Es por ello que el
sprite original no está haciendo nada. Es sólo ahí sentado. Y el clon ya está funcionando. Eso es lo que queremos. También podemos crear
otro clon. Entonces solo pon otro bloque aquí, crea clon de mí mismo, así tenemos dos clones ahora o deberíamos
tener dos clones ahora. Empecemos. Y
esto es correcto. Tenemos dos clones.
Y cada clon tiene el mismo guión aquí. Si cambio algo aquí, entonces esto
lo cambiará para todos los clones. Lo que no es tan bonito
es que tenemos este sprite original
aquí todavía mostrando, eso es fácil de arreglar Podemos simplemente ir a
miradas, y luego escondernos. Sólo hay que poner un escondite aquí. Entonces cuando empiezo como clon, esto se llama para cada clon. Tenemos que mostrarlo. Esto es
lo primero que hacemos, mostramos el nuevo clon, el nuevo ejemplar, y luego el resto será el
mismo que para el sprite original Pero el
sprite original no está haciendo nada aquí es
solo esconderse, y luego crear dos clones Entonces esta es una plantilla ahora. El sprite original
es una plantilla, que también está oculta para
que no puedas verla, y los sprites reales que se usan en el juego
son estos clones Empecemos el juego, y
tenemos dos clones ahora, y el
sprite original aquí está oculto, pero los clones son visibles
porque estamos haciendo este show aquí cada vez que se inicia
un clon Esto es muy bonito. También podemos
tener como diez clones aquí. No hay problema. Podemos
simplemente duplicar esto. Haga clic con el botón derecho del ratón aquí en el menú contextual,
haga clic en Duplicar. Ya tienes cuatro clones. Empecemos de
nuevo el juego cuatro clones. Esto es cada vez
más difícil para el cohete
evitar todas las rocas. Siguen siendo la
misma posición y. No es tan difícil. Solo tienes que detectar
la brecha aquí y luego dirigir tu
chip de cohete hacia esa brecha Entonces eso sigue siendo fácil. Pero también podemos
hacerlo más difícil. Pero no quiero copiar todo
esto crear clon de mí mismo. Quiero hacerlo en bucle. Y esto es algo que no
habíamos hecho antes. Tenemos este bucle forever, que por supuesto es bucle
para siempre y no parando, pero también hay un control de bucle
diferente, y luego tenemos esta repetición y luego una serie de
iteraciones Podemos repetir, por
ejemplo, diez veces. Esto va aquí diez veces. No necesitamos eso,
crea bloques clonados aquí. No es necesario de esta manera, estamos creando diez clones, este bucle se itera diez veces Comprobemos esto. Deberíamos
tener diez clones ahora. Esto es correcto, y
ahora es muy, muy difícil, y yo diría que es
imposible así. Así que no tienes oportunidad
de evitar los diez. A lo mejor ahora tengo oportunidad, así que esto está bien, pero ahora se pone muy
difícil porque a lo mejor no hay brecha entre
todas estas rocas de aquí. Esto es muy difícil, pero creo que puedo manejarlo. Pero de todos modos, ahora tenemos
diez clones, y esto es muy bonito porque no hemos
duplicado los sprites, sino que hemos creado clones, y la ventaja es
que no cambiar el código
en diez sprites aquí, sino que solo hay que
cambiarlo aquí en este script Por ejemplo, si queremos que todos los clones estén
en un rango estrecho, podemos simplemente cambiarlo aquí, podemos Tal vez volver a
este rango de -100 100 Todos los clones están
dentro de estos x rango. Veamos cómo se ve esto. Y ahora es bastante fácil para el cohete evitar a
los clones porque solo
puedes ir aquí a
la frontera exterior. Ese no es el problema aquí. Pero ya ves, puedes
cambiarlo por todos los clones aquí. Todos los clones usan
el mismo script, y esto es una ventaja muy
grande. El sprite original solo
se usa aquí como plantilla para crear
los clones, no más, y está oculto
justo al principio, y todos los clones se
muestran justo al principio cuando se
crean como un clon Esto es de alguna manera este Wen
go click para los clones, similar, pero es
un evento diferente. Aquí uso este Wen go click, cuando se inicia el juego para crear todos los
clones que necesitamos. Este también es un
concepto muy importante, la clonación, y de esta manera puedes evitar aquí la duplicación de
código, lo cual es muy importante ,
o por ejemplo, si
tienes algo como disparos o también, por ejemplo,
tenemos recursos para recoger no solo las rocas, sino también algunos objetos que
el jugador puede recolectar. También necesitas quizás diez de
ellos, algo así. Entonces esto también se puede hacer
muy bien con la clonación. Si lo harías con esta
duplicación de sprites, esto se pondría muy,
muy desordenado aquí Si necesitas cambiar
algo en el script, si tienes diez
duplicados de un sprite, esto es muy molesto de cambiar Este es el camino
a seguir si tienes objetos
similares de
la misma plantilla. En este caso, son las
rocas, los meteoroides, y esta es la manera de
hacerlo aquí en cero Entonces tienes este sprite de
plantilla, que también se define aquí con los disfraces
y los sonidos, y también los guiones Esta es la plantilla
para los clones, y siempre que se cree el
clon, obtendrá este evento
cuando empiece como clon, y luego el script principal, por
ejemplo,
se puede ejecutar aquí. Y así, ya
tenemos diez rocas. Pero, claro,
no es muy agradable que cada roca esté en la misma
y posición todo el tiempo. Entonces necesitamos
distribuirlos un poco, y esto lo haremos
en el siguiente video.
20. 20 Retardo aleatorio: Este será un video corto. Haremos que el juego sea más interesante
introduciendo delay. ¿Cuál era el problema o
cuál es el problema? Acabo de quitar eso aquí de nuevo porque ya he
introducido la aleatoriedad, pero la voy a quitar por ahora y mostrarte el problema otra vez Cada roca aquí está en la misma más o menos la
misma posición y aquí. Entonces todo empieza por
la parte superior al mismo tiempo. Por eso prácticamente
no hay forma de moverse por
estas rocas aquí, salvo las veces que aquí
hay algunas brechas, pero por ejemplo, ahora esto es casi imposible de
pasar por aquí. ¿Cómo arreglamos eso?
Es muy fácil. Tenemos que introducir aquí
un retraso aleatorio. Entonces ya he preparado
esto aquí. Espera un número aleatorio de segundos, y lo introducimos
al inicio
del guión aquí. Cuando empiezo como clon, esto está esperando un número
aleatorio de segundos, y luego comienza el movimiento. Podemos poner eso aquí, o tal vez también podemos poner
eso dentro del bucle, o también podemos poner eso
dentro de reset random x aquí. Pongámoslo aquí. Y volver a armar esto. Cada vez que empezamos, o tal vez tampoco deberíamos
mostrarlo antes de este retraso. El show será después de
este reinicio aleatorio. Cuando empiezo como
clon, reinicio al azar, esto esperará
un tiempo aleatorio, y luego irá a
la posición inicial, que también utilizará un
número aleatorio entre -200 2,220 Estamos usando esta
aleatoriedad aquí dos veces
al esperar para restablecer la posición y también
para la posición x aquí Probemos este inicio y aquí
podemos ver que esto funciona. Algunos están en la misma posición y, pero también podemos ver que esto no es del todo
correcto aquí, porque todo es visible
aquí todavía en la parte inferior. Arreglemos esto. ¿Por qué es eso? Porque aquí no estamos
escondiendo el sprite. Vamos a mirar y luego esconderlo justo antes
del reset random X. De
esta manera, no debería quedarse
ahí visible en la parte inferior. Ahora está desapareciendo
en la parte inferior y luego con un retraso aleatorio
reapareciendo desde Pero nos hemos olvidado de
volver a mostrarlo , ese es el problema aquí. Pongamos ese show en este reset aleatorio X aquí
y luego show y este w, también
se llama
aquí después del retraso. Vamos a reiniciarlo. Entonces
están las rocas y luego desaparecen
en la parte inferior y reaparecen en la parte superior
con un retraso aleatorio De esta manera, el juego
se pone bastante difícil, supongo, todavía factible Pero también vamos a introducir
algunos objetos para coleccionar. Esto será entonces más interesante para el jugador
porque el jugador tiene que recoger los objetos valiosos
y evitar las rocas aquí. Y eso es por supuesto,
más difícil. Por el momento, diez
rocas están bien, creo, debería estar bien, y ahora podemos introducir nuestros valiosos recursos o tal vez o o algo así, algo que el
jugador pueda recoger y tal vez vender después.
21. 21 Coleccionar estrellas: En este video, presentaremos nuestros recursos que el
jugador puede recolectar, por lo que son coleccionables, y lo estamos implementando muy
similar a las rocas Lo primero que hacemos es doblicar el sprite de rocas, o mejor deberíamos llamarlo roca porque es sólo una Así que simplemente cámbiale el nombre a rock, y luego puedes
hacer clic derecho en el Sprite Elige Duplicar, y ahora
tenemos un segundo sprite de roca. Lo primero que
hacemos es cambiarle el nombre a recurso y ahora
necesitamos cambiar el
disfraz, claro. Asegúrate de haber seleccionado
el spray de recursos aquí, y luego ve a disfraces. Este es el traje de rock. Estamos eligiendo uno diferente. Entonces aquí estamos eligiendo el disfraz de
estrella. Busca estrella, y
luego la tienes aquí. Ahora podemos eliminar el primer
disfraz, el traje de rock. Y ahora aquí solo tenemos
el disfraz de estrella. Bien. Entonces tenemos estrellas, y también tenemos código aquí. El guión es exactamente el
mismo que el guión rock. Así que tal vez podamos comenzar esto, y luego tenemos diez
clones aquí de nuestra estrella. Entonces hazlo. A lo mejor no diez, son demasiados. Empecemos con cuatro. Y luego empezamos el
juego. Entonces vamos a ver. Ahí tenemos uno y
ahí tenemos 12. Pero no está haciendo nada. Si les pego a estos
no está haciendo nada. También lo que ves es
que todos los clones están pegados aquí en la parte inferior. Vamos a arreglar eso. Detén el juego. ¿Por qué no se restablecen aquí? Porque esta
coordenada no es correcta. Veamos, es esta coordenada aquí porque tenemos que
seleccionar recurso, claro, y también está oculto, así que tenemos que
mostrarlo por el momento. Y entonces podemos
arrastrarlo por aquí, ahora, así aquí. Y entonces esta es
la máxima o la mínima y porque si trato de
que sea menor que
eso, está saltando de nuevo a -180 Entonces -180 es el límite aquí, y esto es lo que
tenemos que verificar aquí Entonces no es -180 lo que
necesitamos ingresar aquí, entonces es menos 179 porque la posición y
debe estar por debajo de eso Entonces probemos esto y
veamos si todas las estrellas están desapareciendo Bien, entonces
eso parece funcionar Todos están desapareciendo en la parte inferior y reapareciendo
en la parte superior aquí Esto está funcionando.
No podemos recogerlos. Pero claro, esto es
algo que vamos a implementar. Pero por ahora, parece funcionar. A lo mejor es un poco
demasiadas de las estrellas. Creo que aquí cambiamos el guión
equivocado. Estos son diez, y aquí, necesitamos tener cuatro, ahora son más rocas que
estrellas, así que eso es mejor. Es que de esta manera
es más difícil. Pero al final, creo que
diez también son demasiados. Entonces pongamos aquí siete. Comprobemos esto de nuevo. Sí, creo que es razonable. Por supuesto, tenemos que sumar ahora
la prueba hit.
Entonces hagámoslo. La prueba de impacto para el
chip de cohete para las rocas ya está aquí, pero no podemos poner la prueba de impacto para
las estrellas aquí también porque necesitamos ocultar el
recurso aquí y restablecer su posición cuando la cadera del
cohete lo golpea. Entonces esto no es nada que podamos
hacer aquí porque a partir de aquí, no
podemos hacer
desaparecer el recurso , desaparecer la estrella. Entonces lo que tenemos que hacer
es hacer lo mismo, o casi lo mismo
que estamos haciendo aquí. Entonces el si toca roca, necesita estar en el
recurso aquí. Entonces vayamos al chip de cohete
táctil de detección. Entonces tocando el chip de cohete, y ahora tenemos que
tirar en un si aquí. Si toca el chip de cohete. Esta es la condición que
tenemos que verificar. Entonces toco el chip de cohete, y esto es algo
que tenemos que hacer tenemos que
poner en el Fevepe
aquí al final Hagamos esto si
tocamos el chip de cohete, entonces lo que podamos, por
supuesto, esconderlo. Así que vamos a ocultarlo
y probarlo de nuevo. Si la estrella está golpeando o
tocando el cohete, entonces debería desaparecer, y esto parece funcionar.
Pero el problema es. Una vez que le pegué, no
consigo ningún punto por ello, claro, porque aquí no
estamos contando nada.
Hagamos esto entonces. ¿Qué necesitamos para
contar los recursos? Por supuesto, necesitamos una variable, así que vayamos a variables, hagamos una variable, y la
llamamos recursos. Y esto puede ser para todos los sprites. Ahora tenemos recursos, y pongo esto aquí
al otro lado de la pantalla. Si chocamos contra el cohete, entonces los recursos necesitan subir, podemos configurarlo en uno más, así que solo cambia
Después de esta altura, podemos cambiar los recursos por uno. Recuerden, el chip de cohete, si choca contra una roca, entonces cambiamos las reparaciones
dejadas por menos uno, entonces está disminuyendo, y aquí
estamos aumentando los recursos. Probemos esto. Y
ahí está la primera estrella. Sí, y funciona. Recursos es uno recursos
recolectados, y ahora tenemos dos, tres, 45, y así sucesivamente. Eso parece funcionar, y creo que es bastante fácil. A lo mejor deberíamos aumentar aquí de nuevo el
número de rocas. Esto tal vez sea demasiado fácil.
Bien, hagamos esto. Número de rocas está aquí,
repita siete veces, así que tal vez nueve veces
estaría bien. Ahora se pone más difícil. Por supuesto, Un choque. Primero choca, y veamos. Hay una estrella. Este
está fuera de alcance, pero me sale éste, así que tengo 21 estrellas. Por supuesto, se nos olvidó algo. Hemos olvidado restablecer
esta variable aquí. Hagamos este conjunto, y lo estamos haciendo
al inicio aquí cuando vaya clic en recursos a cero. Empezamos con cero
recursos y tres reparaciones. Y ahora tengo cuatro. Este no puedo
llegar a cinco, y así sucesivamente. Todavía no es muy difícil, pero a veces está muy
cerca. Creo que está bien. Estamos teniendo un sistema de
recursos en funcionamiento, por lo que el jugador puede recolectar
con la nave espacial, las estrellas y los
recursos variables es contar hacia arriba, y lo que podemos hacer
con las estrellas Decidimos más tarde, tal vez podamos comprar mejoras
para nuestro barco estrella aquí, o tal vez podamos comprar reparaciones para ello para que tengamos más vidas que
algo así. Pero por ahora, la recolección de
recursos funciona, y esto es muy agradable. Esto es casi un juego. Entonces ya puedes ver lo bueno es
el jugador al mirar
los recursos que recolectó.
22. 22 Aterrizaje en un planeta: Ahora que el jugador puede recolectar
recursos, recoger estrellas. Necesitamos una oportunidad
para que el jugador venda estos recursos y
obtenga algo a cambio, por
ejemplo, una actualización a la nave espacial
u otra reparación, entonces otra vida, por así decirlo Y esto
lo haremos con los planetas, para que el jugador pueda
aterrizar en planetas. Entonces tenemos que agregar
otro sprite aquí, similar a las estrellas,
similar a las rocas Así que solo copiamos aquí
nuestro sprite de recursos, así que simplemente haz clic derecho sobre el
recurso Duplicar Y luego cambiamos
el disfraz en eso, así que ve a disfraces, y luego elige un disfraz
y entramos en planeta, y tenemos esta tierra aquí. Pero vamos a llevar aquí a este
planeta dos. Y ahora podemos borrar
el primer disfraz aquí. Ya no necesitamos eso. Y luego vamos al código. Y aquí podríamos querer
cambiar esto aquí, tal vez repetir cuatro veces. Entonces, ¿necesitamos cuatro
planetas? Yo no lo creo. A lo mejor podamos hacer con
dos planetas aquí. Entonces el jugador tiene que tocar, tiene que chocar con un planeta, y entonces
automáticamente será un aterrizaje
en este planeta También necesitamos cambiar
el telón de fondo aquí. Entonces, por el momento, solo tenemos
este fondo blanco vacío, y agregaremos otro. Así que elige un telón de fondo. Y entonces podemos
buscar una ciudad aquí, y vamos a tomar
tal vez este metro. Entonces esto ojalá se vea un
poco futurista aquí. Y el problema ahora por el
momento es que no se puede ver. Entonces tenemos aquí estos dos
sprites de fondo, claro. Si los movemos,
se puede ver que ahí está, de hecho, el telón de fondo,
el nuevo telón de fondo aquí. Pero si empezamos el juego, simplemente no lo verás. Y ahí tenemos nuestro
planeta, el primer planeta, y esto es lo mismo que un
recurso en estos momentos. Entonces este es solo el mismo código, por lo que también aumentará
los recursos aquí. Pero esto no es lo que queremos. Queremos algo más. Tenemos que ocultar
estos dos telones de fondo para poder ver aquí el
verdadero telón Entonces este es el primer sprint de
fondo
y el segundo, y necesitamos ocultarlos. ¿Cómo ocultamos los sprites
de fondo? Seleccionamos el primero aquí. Lo que vamos a hacer es ir
dentro de este bucle para siempre aquí. Y lo envolveremos
con una condición. Esta vez no vamos a tomar la condición
normal si entonces, sino que vamos a los controles aquí, y luego tomamos la condición if
then else. Así que arrastra eso por aquí. Entonces tenemos lo mismo
casi que aquí, pero tenemos este otro caso. Y este otro caso se
ejecutará si esta condición aquí en la
primera si no se cumple. Entonces pongamos aquí ese
primer bloque, este que estaba
en el para evlope Pongamos eso aquí
en el primer si. Entonces tenemos si algo, tenemos que llegar
a esos dos, por
supuesto, entonces hacer esto. Y si algo no
se cumple, es
decir, si no esta
condición aquí, entonces haremos esta otra cosa. Pensemos en qué
condición necesitamos aquí? Voy a usar una
variable global aquí. Hemos usado variables antes, así que deberías estar
familiarizado con eso. Hago una variable aquí, y para todos los sprites, eso es muy importante porque todos los sprites
necesitan la variable, necesitan el eje a la variable, y
lo llamaremos travel stopped El viaje por el espacio
será parada si esto es cierto de alguna manera, pero veremos cómo se ve
esto. La parada de viaje en
este momento es cero, como puedes ver aquí porque la
estamos mostrando. Pero esto no es lo que queremos. No vamos a exhibir
esto al final, así que podemostremos eso. Ahora tenemos que verificar si hay
viajes parados aquí
con un operador. Comprobemos por la igualdad aquí, tomemos esta y
arrástrela en esta condición if. Y luego vamos a variables y arrastramos nuestra variable de
parada de viaje aquí. Así que viajo parada es igual a cero, que es el valor inicial, luego hacer las cosas que
hemos hecho antes
en el para evelope, y de lo contrario tenemos que
hacer otra cosa Y eso es que podemos
esconder el sprite. Entonces hagámoslo. Si el viaje
detenido no es cero, entonces vamos a ocultar
el sprite aquí Ahora podemos poner ese bloque aquí de nuevo
dentro del bucle forever, y no habrá ningún
cambio, claro, porque siempre estaremos en este caso aquí si
travel stop es igual a cero porque este es el valor
inicial de la variable y la variable no
se cambia en este momento. Bien. Entonces nada
ganó por el momento. Pero vamos a hacer esto si
golpeamos el recurso dos, y por cierto, deberíamos
cambiarle el nombre a planeta. Entonces hazlo ahora. Entonces
tenemos el planeta aquí. Y si golpeamos el planeta o si el planeta choca con
el cohete, el
momento esto es esconderse y luego cambiar los recursos por uno. Dejaremos ese escondite aquí. Pero deshazte de los recursos de
cambio por uno porque esto no es una estrella, es un planeta, y esto
debería ocultar el fondo, sprite aquí, o ambos. Aquí, necesitamos establecer esta variable de parada de
viaje. Así que ve a variables y elige este bloque,
conjunto, reparación, izquierda. Cambiamos eso para viajar parada y poner eso aquí
después de la escondite. Así que establece la parada de viaje dos, uno. Por ejemplo, cualquier otra cosa, excepto cero, vamos a hacer aquí. Entonces, si la nave estelar, si la nave cohete
golpea el planeta, entonces la parada de viaje se
establecerá en una, y esto provocará que
esto si falle Entonces si estamos dentro
del para evepe, y llegamos a este punto
donde se comprueba el si Entonces, si la parada de viaje es igual a cero, esto ya no será cierto, e irá a
este otro caso aquí. Vamos a probar esto. Y veamos cuando llegue el primer
planeta, ahí está, y
vemos que está funcionando. Por supuesto, sólo está
ocultando el primero, O fondo uno aquí. Tenemos que duplicar
este bloque aquí. Tenemos que poner algo
en el segundo fondo. Hagamos esto, vamos al control, y tenemos esto si entonces mas, y metemos este bloque
dentro del si entonces, y luego podemos copiar
esta condición aquí. I. Este, arrastra esto. Volverá, pero arrastra esto
aquí al fondo dos, suéltalo, y luego
volverá al lugar anterior, y ahora lo tenemos aquí. Entonces podemos arrastrar eso
aquí al si entonces. Ahora tenemos si la
parada de viaje es igual a cero, entonces hacemos lo
que hemos hecho antes, y de lo contrario también podemos
ocultar el sprite aquí Así que de lo contrario esconden el sprite. Vuelve a poner eso en la Fp, y ahora ambos fondos
deberían desaparecer. Entonces volvamos a hacer eso, y vemos el problema aquí
es que los fondos ya no se muestran porque no los estamos mostrando cuando se hace clic en go Hagámoslo. Arrastre
este espectáculo aquí. Y también en el segundo spry, arrastra el espectáculo aquí, y
ahora debería volver a funcionar Así que vete. ¿Por qué no funciona? Porque tenemos viajes parados. Si podemos mostrar, verá que la parada de viaje
es uno y
ya no cero porque el script
aquí lo puso a cero, y no se restablecerá. Automáticamente, tenemos que hacerlo. Ya que lo estamos haciendo aquí, podemos hacerlo tal vez también
aquí el reajuste Así que solo establece la parada de viaje
20 cuando vaya haga clic, y ahora tenemos nuestros
antecedentes nuevamente. Y luego tenemos el
planeta, veamos. Bien, ahora vemos los
antecedentes aquí, este brack cae aquí Pero queda un problema o varios problemas aquí porque
todo sigue moviéndose, salvo los antecedentes. Pero todas las rocas
y las estrellas, todo se mueve todavía. Entonces tenemos que aplicar también esta
lógica aquí. El si más. No, donde sí lo tenemos aquí, la parada if travel es igual a cero s a los otros
sprites aquí Entonces hagámoslo, vayamos al rock. Y entonces aquí tenemos el
Feverop, el bucle de juego. Así que vamos a conseguir nuestro si más aquí. Podemos arrastrar esto
dentro del si entonces. Y entonces también podemos arrastrar esto aquí y
copiarlo a la roca, y volvemos a ir a la roca, y luego poner esa parada de viaje es igual a cero aquí en
la condición if. Y en el bloque S, vamos a esconder el sprite aquí Entonces volveremos a poner eso
en el bucle para siempre. Entonces ahora las rocas deberían ser
todas invisibles
aquí. Vamos a probar esto. A lo mejor tenemos el planeta viniendo, ahí está, y ya ves que
las rocas han desaparecido. El planeta también
necesita desaparecer, y también las estrellas, por supuesto. Vayamos a las estrellas y
hacemos lo mismo
aquí, si entonces de otra manera, consigue esto y ponlo
aquí en el caso n, y además copiamos esta condición
aquí a recurso. Úsalo aquí, y luego esconde
el sprite en el caso else. Bien, ponlo de nuevo
en el para evo. Lo que falta es planeta. Entonces nosotros hacemos lo mismo aquí. Si más. Y luego arrastramos esa condición
aquí a nuestro planeta. Ponlo en la condición if. Y entonces este bloque
irá al entonces caso, y luego en el otro caso, vamos a esconder todo. Bien. Ahora probemos esto y ocultemos
la variable aquí. Parada de Ravel. No necesitamos
eso para que se muestre. Vamos a probar esto. Oh, hay un planeta. Pero hicimos algo mal. Por supuesto, hicimos
algo mal. No pusimos todo esto
si más en el Favepe. Hagamos esto otra vez. Y ahí tenemos un planeta. Y ahora tenemos el cohete. Aún así, claro, el
cohete tal vez también desaparezca, porque aquí en este planeta, está aterrizado, así que no debería
ser movible por el jugador, y el jugador calzado tiene que
hacer otra cosa aquí El jugador debe intercambiar
los recursos aquí. Entonces hagamos esto
para que el cohete también controle si entonces de otra manera. Y todo dentro. El bucle forever se
moverá aquí en el caso de la n, y ese es un bloque muy
largo aquí, y obtenemos la
condición de aquí, tal vez realmente no
importa porque es lo mismo, pero así es más rápido. Aquí lo tenemos. Ponlo aquí. Ya podemos volver a ponerlo en
el bucle forever, y luego en el caso contrario, escondemos el barco. Y entonces probemos esto. Y hay un
planeta, pero hay un segundo planeta, y
vamos a tomar este. Y ahora todo se ha ido, nada más, solo
el telón de fondo aquí, y esto es lo que queríamos. Así que aquí no se hará nada. Este bucle para siempre hará un bucle para siempre y siempre
ocultará los sprites. Cada sprite aquí está
oculto en este bucle, y tal vez deberíamos poner
algo más aquí en el otro porque ahora todo es
solo bucle y ocultamiento, y también podemos ahorrar un
poquito de recursos,
los ciclos de CPU, si esperamos Entonces podemos esperar
esperemos 1 segundo aquí. Entonces todo está dentro de
este bucle para siempre, y se esconderá y
luego esperará 1 segundo. Y en este 1 segundo, la CPU para este spride, al
menos está inactiva Entonces creo que es una buena idea. Hagámoslo en cada spride. Ahorraremos algunos ciclos de CPU aquí, ahorraremos algo de rendimiento aquí. Entonces en cada uno de los demás, esperamos 1 segundo. Pero claro, si reiniciamos
el viaje por el espacio, habrá un retraso de 1 segundo máximo porque
probablemente estará en el
estado de espera aquí si volvemos a cambiar,
y si volvemos a cambiar la
parada de viaje a cero, los sprites serán o
algunos de los sprites, al
menos estarán en
la espera Por lo que habrá una especie
de retraso corto máximo de 1 segundo. Bien. Entonces aquí está el último, supongo. L et's esperar 1 segundo aquí. Bien, ahora tenemos en cada sprite la
espera de 1 segundo, entonces eso va a ser
fácil en la CPU Ahora podemos aterrizar en un planeta. Todo está
parado y oculto, y aquí podemos
implementar nuestro comercio.
23. 23 Refactorización del guion de nave espacial: Antes de que estemos haciendo
el trading aquí, quiero hacer alguna refactorización refactorización es si
reestructuras tu código para que sea más legible y
para que sea más fácil sea Si miramos este guión aquí, este bloque dentro del
bucle for en el cohete, se
puede ver que es
un poco demasiado largo y no muy comprensible,
no muy comprensible Entonces, ¿qué podemos extraer aquí? Entonces yo diría que vamos a
extraer esto aquí. Entonces el exterior si no, lo
dejamos como es, y esto aquí, podemos
separarlo en dos partes. primera parte es si tecla flecha hacia arriba presionada y
todas las teclas aquí, y la segunda parte es esta
aquí si toca roca. Entonces los separamos así. Hemos arrancado esto aquí, y hemos separado estas dos partes de
esta larga cuadra aquí,
dentro de esta si la
parada de viaje es igual a cero. Y estamos creando dos bloques
para estas dos partes aquí. El primer bloque sería
la parte de control del jugador. Esta parte comprueba si hay
dekeys que se presionan y luego
controlan la nave espacial Llamemos a este jugador
control y solo golpeemos. Ahora tenemos aquí este bloque
definido, y solo arrastra esta primera
parte aquí a esta definición. Estamos definiendo el control del jugador
con estos cuatro ifs aquí. Todos estos ifs comprueban una tecla, y tecla de flecha, si esto se presiona y luego cambiando
x o cambiando, y. bien, entonces la segunda parte
es esta de aquí es sobre la condición en el caso cuando
la nave espacial choca con una roca, y esto es lo que
llamamos el bloque,
también hit test, o tal vez
vamos a llamarlo rock hit Entonces aquí tenemos esta
definición para la prueba rocosa, y vamos a arrastrar esto aquí. Entonces tenemos estas dos funciones, o estos dos bloques, procedimientos, como
se les llame. Aquí en scratch,
se llaman bloques personalizados o bloques M. Y ahora tenemos que llamar a
estas dos cuadras aquí en nuestro bucle para siempre en
nuestra parada I travel es igual a cero.
Pongamos eso aquí. El jugador controla la primera prueba
rocosa después de esa. Y ahora el juego debería funcionar
como antes. Probemos esto. Aquí tenemos el
control está funcionando, y también podemos,
he golpeado el planeta. Así que intentemos de nuevo. Quiero chocar contra una roca para
que pueda ver el choque. Y también había un planeta. Por eso estamos
aquí en la ciudad. Así que vamos a intentarlo de nuevo. Sólo chocó con una roca aquí. Bien. Ahí vas.
Todo funcionando igual que antes. Y esa es, por supuesto,
también la ventaja de refactorizar o requisito para
refactorizar también que la funcionalidad debería
ser la Entonces aquí solo estamos reemplazando estas dos partes de este bloque largo por
dos bloques personalizados aquí. Y sólo los estamos
llamando aquí. Y tal vez
también deberíamos escribir esto con una P mayúscula aquí para que sea lo mismo que la prueba de golpe de
roca. Entonces de esto se trata la
refactorización. No estás cambiando
la funcionalidad, no
estás cambiando la
forma en que funciona, sino que estás cambiando
la estructura y haciéndola más legible,
haciéndola más fácil de mantener ¿Qué quiero decir
con mantenible? Entonces puedes ver aquí estos son dos bloques con funcionalidad
separada. Aquí está el control del jugador, y aquí está la prueba de golpe de roca. Alguien que no esté
familiarizado con el código, o tal vez tú mismo, que tal vez ya no
esté familiarizado con el código porque quizás es hace
un mes has cambiado
algo aquí. Entonces ahora no estás seguro de
cómo funciona este código. Pero si lo haces de esa manera, si separas el código
en tu propio bloque personalizado, y luego llamas a
estos bloques aquí, entonces puedes mantenerlo mejor, lo significa que puedes
ubicar mejor el código que necesita ser cambiado
o necesita ser extendido. Y entonces también se puede entender
el código que está ahí. Entonces aquí puedo
ver de inmediato que esto es el control del jugador, y esta es la prueba de golpe de roca. Entonces es muy
fácil, por ejemplo, poner otra clave aquí en
este control de jugador de bloque. Entonces tecla,
digamos, espacio presionado, luego y luego disparar algo así como un
rayo láser o algo así. Entonces esto se puede extender aquí. En este bloque personalizado, y para la prueba del cohete tal vez quieras probar
para otra cosa, no solo para la roca, y luego necesitas
renombrarle este, por
supuesto, o definas
otro bloque aquí. Por ejemplo, podemos probar
otro obstáculo, lo sé, tal vez un
agujero negro, algo así, y luego puedes definir
otra prueba de golpe de agujero negro, o puedes poner eso aquí dentro esta prueba de cohete y cambiarle el nombre
a Just hit test, por ejemplo, esa
será una opción, o tienes dos bloques. Uno para el golpe de roca tiene, uno para el
agujero negro, prueba de golpe, que puedes decidir. Pero la ventaja de
la refactorización de este refactorm aquí es que aquí es
mucho más legible ¿Puedes ver qué
bloque hace qué? Porque puedes nombrarlos, y además podrás
encontrar más fácilmente el lugar donde
tienes que hacer cambios. Bien, entonces esa es nuestra
primera refactorización o no la primera Ya hemos usado
los bloques personalizados. Entonces si vamos a la roca misma, tenemos también este reset random,
y esto también es una
especie de refactorización porque teníamos esto antes,
aquí dentro de esta larga lista de bloques,
y lo refactorizamos, por así decirlo, en este bloque y
lo llamamos aquí reset random x.
Y también cuando empiezo como
clon, restablecemos random X.
Así que esto también fue refactorizando, pero esto tenemos también este reset random,
y esto también es una
especie de refactorización
porque teníamos esto antes,
aquí dentro de esta
larga lista de bloques,
y lo refactorizamos, por así decirlo,
en este bloque y
lo llamamos aquí reset random x.
Y también cuando empiezo como
clon, restablecemos random X.
Así que esto también fue refactorizando, pero esto está aquí más
explícito. Ya lo he anunciado antes. Estamos haciendo una
refactorización y no estamos cambiando la funcionalidad aquí sigue siendo la misma que antes, pero aquí tenemos un código más legible y
un código más un mejor
extensible
24. 24 Fondos de cambio: Una preparación más
antes de
entrar en la pantalla de trading. Volvamos a echar un vistazo
a los fondos. Hasta ahora solo hemos
agregado un telón de fondo, y esto se estableció
si seleccionamos aquí, el escenario, entonces
tenemos telones de fondo aquí Hemos añadido el metro, y hemos tenido antes este telón de fondo,
que es el primero. Teóricamente podríamos simplemente eliminar eso porque solo
necesitamos uno por el momento, pero quiero
demostrar aquí cómo cambiar entre telones de fondo Hacemos este primero
tal vez en un color como, hagámoslo, tal vez
completamente negro. Establece el brillo a cero aquí, y luego tenemos
un relleno de negro. Usa este rectángulo con
negro así así de aquí. Simplemente abarcaremos este rectángulo
aquí con el ratón, y tenemos el telón de fondo. Bien. Entonces este es nuestro primer telón de fondo, así que tenemos que establecerlo también. Entonces pongamos eso en
el código de la cadera cohete. Cuando se hace clic en la bandera,
cuando se hace clic en ir, entonces tenemos que
cambiar el telón de fondo, y esto está aquí debajo de Looks, que puedas cambiar el disfraz
aquí por el sprite, pero también
puedes Entonces hagamos esto,
cambiemos de telón de fondo dos, luego telón de fondo uno, también
podemos cambiarle el nombre, pero dejémoslo así. Telón de fondo uno
es el Negro. Entonces tenemos esto, y ahora el problema es por qué no
vemos nada si cuando
empezamos un juego es que
he metido algo
aquí en planeta para establecer
viajes parados a uno, así puedo saltarme todo el recorrido por el escenario
espacial y luego ir
directamente a esta pantalla aquí porque queremos
implementar esta pantalla a continuación. Entonces por eso puse aquí
este atajo. Estableciendo el viaje parado a uno al principio
aquí en el inicio, simplemente
saltaremos a
este estado aquí, que es lo mismo que si el chip del
cohete choca contra un planeta. Pero lo dejaré
así por ahora. Volvamos al chip del cohete,
así que cambio
el telón de fondo dos, telón de fondo uno, o también puedo
cambiar el telón de fondo a Metro. Es lo mismo. Entonces
dependiendo de lo que elija aquí, este será nuestro telón de fondo de
partida, ya sea el negro
o el metro. Entonces así es como puedes cambiar
a un telón de fondo diferente. Y esto es también lo que
debemos hacer al inicio, cambiar a este telón de fondo aquí. Y entonces si golpeamos un planeta, y esto va a estar aquí. Entonces si toca el chip de cohete
en el planeta sprite, entonces escondemos el planeta
sprite, por supuesto, y luego establecemos el viaje
paramos dos, uno Y también entonces tenemos que
cambiar a este metro de
telón de fondo aquí. Y también, si queremos
ver este telón de fondo, también
deberíamos ponerlo aquí
porque aquí he agregado
este atajo, puedo sacarlo
por el momento, entonces veríamos, tengo que volver
a meterlo
y ponerlo a cero. Por supuesto, de lo contrario,
se quedará en una. Ahora tenemos el mismo comportamiento aquí y si golpeamos un planeta, vamos a este telón de fondo aquí. Y también todo lo
demás se detiene. Así es como
cambias de fondo. También puedes cambiar o cambiar
al siguiente telón de fondo
aquí con este bloque. Eso también es posible. Puedes tener una animación de telones de fondo, eso
también es posible Pero lo que no puedes hacer es
no puedes mover el fondo. Mueve el telón de fondo. Por eso hemos hecho estos
dos sprites aquí, para un telón de fondo en movimiento,
y un fondo en movimiento El escenario aquí, los telones de fondo en el escenario no son móviles Es por esto que aquí no tienes nada en la moción
si seleccionas escenario, y puedes cambiar de fondo. Por así decirlo, cambia trajes
del telón de fondo con
estos bloques aquí. Cambiar telón de fondo al
metro y el peso
también es una posibilidad y
también siguiente telón de fondo. Hemos utilizado este telón de fondo de
un interruptor dos y luego un telón de fondo
específico. ¿Por qué tenemos este interruptor de
telón de fondo dos y esperar? Esto se debe a que también hay un evento cuando el
telón de fondo cambia dos, y este bloque aquí
está esperando cada script que se desencadena por este
cambio del telón de fondo. Veamos aquí bajo eventos, cuando el telón de fondo cambia a, digamos metro, entonces
también podemos ejecutar un guión aquí
bloques aquí debajo. Que aquí esperaremos a terminen
estos guiones
y luego continuaremos aquí. Tendremos un comportamiento similar
si tomamos este año, cuando reciba mensaje, pero no vamos a estar usando
mensajes por ahora, así que por eso no voy a
entrar en más detalles aquí. Solo que sabes que
esto también
esperará cada guión que
esté debajo de aquí, cuando el telón de fondo cambie a, y esperará antes de
continuar aquí. Estos son los bloques de telón aquí y podemos cambiar
entre los telones de fondo Por el momento, esto
no tiene mucho sentido porque estamos comenzando con este cambiando al metro, pero de todos modos no se puede ver el primer
telón de fondo porque aquí
hemos hecho nuestros propios sprites de
fondo Podría ser otra cosa. Podríamos simplemente hacer nuestros disfraces aquí en los sprites
sin esto Digamos que simplemente no
tendríamos aquí este rectángulo negro, así podemos deshacernos de eso. Ahora sólo tenemos estos círculos
aquí y lo mismo aquí. Podemos seleccionar el rectángulo eliminado o presionar eliminar
aquí, botón de borrar. Y ahora todavía tenemos
el fondo negro. Entonces eso es porque aquí
tenemos este telón de fondo
en este color. Cambiaríamos este color. Entonces cambiemos el color aquí. Vamos a hacerlo rojo.
Veamos cómo funciona esto. Entonces ahora tenemos un
telón de fondo rojo, y las estrellas, estos puntos aquí, estos
círculos siguen siendo blancos, pero con la
línea negra aquí delinean. También podemos deshacernos de eso, pero no voy a estar haciendo eso
aquí porque en el espacio, suele ser negro, así que volvamos a
ponerlo en negro. Ahora tenemos lo
mismo Pero de esta manera, es importante que cambiemos fondo si
golpeamos un planeta aquí. Si el jugador golpea un planeta, entonces el telón de fondo se cambia
a la ciudad para que
podamos tener diferentes escenarios en los que se desarrolla el juego. En el siguiente video, realmente
estaremos negociando.
25. 25 Compra de reparaciones: Bien, vamos a implementar
el trading, para que el jugador pueda
comerciar, vender los recursos
y obtener, por ejemplo, lo primero que queremos
implementar es conseguir una reparación en
reparación adicional aquí. Al inicio, el jugador
tiene tres reparaciones, y luego puede recolectar
recursos y luego intercambiar los recursos para
obtener una reparación más. Para eso, necesitamos un botón, así que vamos a crear un
nuevo sprite aquí Da click en esto, elige un sprite, y aquí en el campo de búsqueda, puedes ingresar un botón, y luego tienes algunos botones aquí. Yo me llevaré este. También puedes llevarte esta.
Realmente no importa, pero hay que considerar
tener un poco de
espacio dentro del botón
para mostrar un texto en su interior. Voy a elegir éste y
aquí lo tenemos y
podemos ir a disfraces aquí
e insertar un texto. Hagamos esto, elija aquí
esta herramienta de texto y luego haga clic en donde debería estar
el texto. Después entramos y reparamos. También podemos cambiar el color
de la fuente aquí a negro. Hagamos esto construir
color a negro, y aquí es un
poco demasiado grande. Hagámoslo más pequeño.
Puedes arrastrar esta esquina aquí y hacerla más pequeña.
Algo así. También podemos poner
aquí otro texto indicando
cuánto va a costar esto. Digamos que cinco
recursos es el precio. Hagamos estos dos más pequeños, ponlos en algún lugar de aquí. Sí, creo que está
bien. Si lo deseas, puedes cambiar el color de
fondo aquí, selecciona la flecha aquí. Este y este se
puede cambiar aquí, así que también puedes elegir
un color sólido aquí. No es un gradiente.
Esto es un gradiente. Esto es sólido, y esto también es un gradiente
de arriba a abajo, y este es un gradiente circular. Entonces como quieras, voy a elegir un color de
fondo sólido aquí. Sí, debería ser
algo muy brillante, supongo, para tener contraste. Creo que está bien.
Y ahora podemos colocar el sprite en alguna parte Quizás aquí, y tal vez el borde debería ser
de otro color. Escojamos sólido
algún tipo de azul, tal vez, tal vez un
poco más ligero. Creo que está bien. Además,
dejémoslo así. También podemos borrar este año. No necesitamos el segundo
disfraz aquí para el botón. Ahora tenemos el botón, y
ahora necesitamos, por supuesto, mostrarlo en el
momento en que se muestra, y eso no es bueno
porque cuando
empezamos el juego, no
debería estar ahí. Entonces vamos al código y luego a
los eventos cuando se hace clic, entonces tenemos que ocultarlo. Entonces eso es under, claro. Y ahora se oculta
cuando iniciamos el juego. Por supuesto, debería
mostrarse cuando
vayamos a esta ciudad aquí
a este planeta, y ahora debería
mostrarse. ¿Cómo lo hacemos? Podríamos hacer un bucle aquí, también bucle para siempre y comprobar, por ejemplo, para que
este viaje se detuvo. Pero no es necesario
tener bucle para siempre aquí. Hay un
mecanismo diferente que podemos usar aquí, y se trata de mensajes. En scratch, puedes
enviar mensajes de un sprite a otros sprites
a todos los demás sprites, y puedes tener
diferentes mensajes, y esto está bajo A partir de aquí, Cuando
recibo el mensaje uno, transmito el mensaje uno, y transmito el mensaje
uno y espere. Estos tres bloques aquí
son sobre mensajes, y esto es importante
aquí porque esta es una muy buena manera de enviar un mensaje a otros
objetos del juego. ¿Qué mensaje queremos enviar? Queremos enviar el mensaje de que aquí
debe mostrarse
la pantalla de trading. Por el momento, solo
tenemos desapareciendo de
todos los sprites de todos estos cohetes
planeta rocas de fondo, implementados con esto para evepe
y con este cheque para y con Pero también podríamos
hacer eso, claro,
para este nuevo sprite para
este sprite de para este nuevo sprite para
este sprite botón y chequear parada de
viaje y si la parada de
viaje es una, entonces podemos mostrar el sprite, pero hay una manera mucho más fácil en mi opinión de usar el mecanismo de
mensaje Necesitamos enviar un mensaje si se
debe mostrar
la pantalla de trading y también, entonces se
debe mostrar el botón. Entonces aquí estamos configurando la parada de
viaje a una, y esto hace que
todos los demás sprites aquí desaparezcan, excepto
por el botón Aquí exactamente en este caso aquí, en este si después o antes de
establecer Travel stop a uno, podemos transmitir un mensaje. Difundir un mensaje
significa que podemos enviar un mensaje a
todos los demás sprites Y si un sprite como el
botón, por ejemplo, quiere recibir un mensaje, entonces podemos usar este bloque
cuando reciba el mensaje uno No quiero usar mensaje uno porque el nombre no
es tan bueno, vamos a crear otro
mensaje. Es muy fácil. Haga clic aquí en este menú desplegable en esta flecha y
luego nuevo mensaje. Llamémoslo mostrar pantalla
de trading. Este es el nombre del mensaje, y luego podemos ponerlo aquí
después de Establecer parada de viaje a uno. Cada vez que el
cohete golpea el planeta, estamos estableciendo una parada de
viaje a una, y estamos transmitiendo
este mensaje aquí. Ahora en el botón, podemos
tener este bloque aquí, cuando recibo, no mensaje uno, sino mostrar la pantalla de trading.
Estos son los eventos. Cuando recibo este mensaje de la pantalla de
comercio del espectáculo, entonces puedo mostrar el
sprite muy fácil Cuando se hace clic en go,
el sprite se oculta. Cuando se recibe este mensaje, entonces se muestra el sprite También puedes hacer clic
en estos bloques aquí y hacer que se ejecuten
cada vez que los hagas clic. Entonces cuando hago clic en
esto, se oculta. Cuando hago clic en esto, se muestra. Entonces esa fue una buena prueba, pero vamos a probarla en el juego. Entonces aquí tenemos nuestro cohete, y necesitamos encontrar un planeta. Hay uno, y ahí
tienes el botón también. Bien, cambiemos el nombre del
botón para comprar reparación. Así que de esta manera podemos identificar mejor
el botón
aquí en esta lista. Ahora tenemos este botón, ¿
y qué hacemos
con el botón? Por supuesto, el jugador
tiene que hacer clic en el botón. Y luego las reparaciones
que queden se incrementarán en uno, y los recursos
disminuirán en cinco. Entonces cada reparación cuesta
cinco recursos. Vamos a poner en práctica eso. Primero,
necesitamos otro evento, cuando se hace clic en este botón Vayamos a eventos cuando el spride hizo clic.
Aquí lo tenemos. Si el jugador hace
clic en este botón, entonces necesitamos
aumentar las reparaciones, incrementar las reparaciones en uno
y disminuir los recursos Hagamos esto aquí
bajo variables. Podemos hacer esto, cambiar
las reparaciones dejadas por una. Esto incrementará las reparaciones
en uno, incrementadas. Y entonces tenemos que
disminuir, claro, los recursos porque el
jugador tiene que pagar por ello. Entonces cambia
los recursos en menos cinco, para que decrementemos
los recursos en cinco Entonces probemos esto en el juego. Nuevamente, reinicié el juego. Y ojalá
haya un planeta ahí está. Y luego hago clic en
este botón aquí y vemos reparaciones izquierda
es ahora cuatro era tres,
cuatro, y los recursos
son menos cinco. Entonces menos cinco no es bueno
porque entonces estás endeudado, pero así no es como funciona
esto aquí. Tienes que tener los
recursos para comprar la reparación. Entonces tenemos que verificar
si esto es posible, si el jugador tiene
suficientes recursos. Vamos a ir bajo control
si y tomemos esto si entonces s bloquear y ponerlo alrededor de
estas dos cuadras aquí. De esta manera, estos dos bloques
estarán en el caso si entonces. Así. En el caso contrario, ¿qué podemos hacer en el otro caso? Podemos decir algo. T's unders, di hola,
cambiamos el hola. No tienes suficientes recursos. Por 2 segundos,
tal vez sea suficiente. Ahora necesitamos la condición aquí. Las condiciones están bajo operadores. Tenemos que verificar
si el número de recursos es mínimo de cinco. Comprobemos si hay
variables mayores que , y luego recursos. Si los recursos son
mayores a cuatro, cinco a cinco o más, entonces podemos simplemente comprar la reparación o el
jugador puede comprar la reparación. Si este no es el caso, entonces decimos que no
tiene suficientes recursos. Alternativamente,
también puedes usar esto menos de. Hagamos esto también. Si los recursos son menos de cinco, eso significa cuatro o menos, entonces podemos decir, intercambiemos eso,
arrastren eso. Pon eso, y ahora
tenemos que intercambiar estos dos. Si los recursos
son menores a cinco, entonces digamos no
tienes suficientes,
necesitamos separar estos dos, no
tienes suficientes,
y en el caso. Nosotros hacemos el comercio. Entonces puedes
hacerlo así o al
revés así. La ventaja aquí es
que tienes los cinco, y aquí también tienes los
cinco, así que eso es mucho más fácil. Aquí, tienes que restarle
uno al precio, y aquí puedes usar
el precio directamente Para que puedas hacer
realmente lo que quieras. También podemos establecer otra
variable al precio, y luego podemos
reemplazarlas con la variable.
¿Nosotros hacemos eso? Eso lo haremos en
el siguiente video. Pero ahora vamos a probarlo en el
juego si esto realmente funciona. No estoy recolectando
ningún recurso, así que mis recursos son cero ahora, no lo suficiente, deberíamos conseguir esto no
tienes suficientes recursos. Ahora voy a recoger algunos
Vamos a recoger cinco. Dos, tres Ahora tenemos cinco, y ahora necesitamos un planeta. Ahí está. Entonces
tenemos exactamente cinco, y después de la compra,
deberíamos tener cero, y funciona, y las reparaciones que
quedan son cuatro ahora. Entonces eso parece
funcionar. Entonces necesitas mínimo de cinco aquí
para comprar la reparación. Y claro, si tienes diez, también
puedes presionar el
botón dos veces como jugador, y luego obtienes dos
reparaciones, así que eso es fácil. Entonces en el siguiente video, tendremos aquí una
variable de precio, un precio por la reparación. Y luego lo usaremos en este lugar aquí en esta
ubicación, y también en esta, por
supuesto, y de esta manera
podemos usar un operador más aquí.
26. 26 Variación del precio al azar: Queremos sustituir este valor
constante aquí de cinco. Este es el precio
de la reparación, por lo que cinco recursos para una
reparación con una variable. Entonces vamos a las variables, hagamos una variable, claro, y esta vez podemos,
configurarla solo para este srt, porque los otros sprites no la necesitar porque este
es el botón de compra,
y solo el botón de compra tiene que
saber el precio en este momento, así que la hacemos una variable
local aquí Entonces llamémoslo precio de reparación, y para este sprite solamente Y ahora podemos usarlo aquí
dentro de este botón sprite. Y por ejemplo,
no se puede usar aquí en este sprite planeta
porque no está disponible
aquí bajo variables Solo ahora está disponible aquí en esto por botón de reparación sprite Entonces aquí está, precio de reparación, y necesitamos
fijarlo al precio. Así que digamos cada vez que
mostramos la pantalla de trading. Así que cuando recibamos este
mensaje mostrar la pantalla de trading, podemos establecer el precio aquí para que tal vez la próxima vez que
mostremos el flujo de trading, el precio pueda ser diferente. Pero pongámoslo
a cinco. Por ahora. Por lo que fijamos el precio de reparación a 55
recursos de los que podemos deshacernos. Y ahora podemos usar
esta variable aquí. Y en lugar de usar este cinco aquí y este
cinco de allá, este menos cinco,
ahora podemos usar la variable. Entonces volvamos a arrastrarlo. Aquí. Entonces, si el número de recursos es
menor que el precio de reparación, entonces el jugador no
tiene suficientes recursos, por lo que se
mostrará este mensaje. Y ahora necesitamos, en el otro caso, disminuir los recursos
por el precio, pero no así, claro, así que no podemos simplemente poner eso
aquí porque eso está mal,
cambia los recursos
en más cinco. Entonces tenemos que
cambiarlo por menos cinco. ¿Cómo lograrlo? Vamos a
arrastrar esto una vez más. Y luego vamos a los operadores, y aquí tenemos este operador de
multiplicación Entonces tomemos esta. Entonces multiplicamos el
precio con una constante, y esta constante es menos uno. Entonces tenemos el precio de reparación establecido cinco veces menos
uno es menos cinco, y eso
es exactamente lo que hay aquí como una constante. Entonces pongamos eso aquí
y ahora esto debería funcionar. Entonces estamos fijando el precio
a cinco aquí en este caso. Estamos comprobando
esto menor que aquí. Y si el jugador tiene
suficientes recursos, estamos disminuyendo el número de recursos por precio de reparación, y lo conseguimos con esta
multiplicación con menos uno Bien, así que probemos esto. No debería haber
ninguna diferencia. Entonces esto es
una especie de refactorización aquí, pero usaremos
esa refactorización a nuestra ventaja estableciendo el precio aquí a
un precio aleatorio Entonces probemos esto primero. Entonces primero
recogeré los recursos. Recopilemos esta
vez quizá seis o siete antes de
ir al planeta. Esta vez es más difícil. Ahora tengo cinco, uno más. Aquí. Ahora necesitamos un planeta. Ahí está. Y ahora puedo comprar una reparación, y esto funciona. Queda un recurso, y tenemos cuatro reparaciones. Entonces esto funciona. Y ahora
puedo cambiar esto aquí a, digamos diez o dos, lo que quiera, y no
tengo que cambiar estas
dos ubicaciones aquí. Simplemente también funcionarán. Entonces esa es la ventaja. Y de esta manera, también podemos
establecer esto a un precio aleatorio. Así que solo podemos reemplazar los dos aquí por pick random uno a diez. Tomemos uno, 25 aquí
o uno, dos, seis, tal vez. Uno es quizá un
poquito demasiado poco, así que tomemos dos, dos a seis, así que el precio siempre
será de 2-6. Entonces probemos esto. Ahora solo vayamos por
el planeta. Sé que primero necesitamos
recolectar recursos, digamos cinco a las. Así que probablemente podremos Por esto. Bien,
también podemos recolectar más. Ahora tenemos siete, y eso siempre
debería ser suficiente. Así que comprar reparación
precio de reparación se establece en seis ahora. podemos ver aquí porque
aquí bajo variables, ahí está esta casilla de verificación aquí, y si la desmarca,
se ocultará Si lo reviso, se
mostrará. Sabemos que necesitamos seis
recursos para comprar una reparación. Tenemos siete, así que compremos uno. Y ahora nos
queda un recurso y cuatro reparaciones. Entonces eso está funcionando El único problema es que el precio
no es correcto aquí, entonces hay cinco recursos en este texto aquí
y este texto está, claro que está arreglado
porque está en el disfraz. Entonces aquí tenemos estos
cinco recursos, y no es variable. Y aquí deberíamos estar mostrando el valor
del precio de reparación variable. Bien. Lo que podemos hacer es trasladar esto aquí a este lugar. Entonces primero, vamos a
aferrarnos a él. Tenemos diferentes opciones de
visualización aquí, normal, lectura, gran deslizador de
lectura u ocultarlo. Así que sólo podemos sacar la lectura grande.
Esto es muy grande. Entonces podemos simplemente
ponerlo tal vez aquí, y luego podemos
deshacernos de este texto aquí. Simplemente borra ese texto aquí
en el disfraz de sprite, pon eso tal vez en el
medio ligeramente arriba Eso está bien. Ahora también podemos hacer eso un poco
más pequeño aquí en el exterior 12. Eso se ve mejor. Y aquí tenemos el valor
de la variable, y tal vez deberíamos
poner algo de texto al frente para que el jugador sepa que este es el precio de la reparación. Entonces hagamos otro sprite
solo para mostrar esto aquí. Sólo se puede pintar. Así que vamos a poner
aquí el texto. Precio colon, tal vez sí, eso es creo que k.
el tamaño está bien, así que pongámoslo en
el centro aquí. Pero el problema es que necesitamos
un fondo para eso, vamos a arrastrar un rectángulo aquí, y de esta manera, el
rectángulo está al frente. Pero primero, vamos a
cambiarlo a blanco aquí, así que el relleno debe ser blanco. La saturación
necesita bajar a cero. Bien. Pero un problema más, está encima de nuestro texto aquí. Entonces tenemos que cambiar. Tienes estos botones
aquí, adelante, atrás, adelante atrás. Entonces lo metemos en la parte de atrás. Así que da click en este botón. De esta manera está realmente en la parte de atrás. Por así decirlo el fondo es el rectángulo y el
precio está por encima de eso. Por lo que también podemos seleccionar el
precio y ponerlo al frente. Esto es lo mismo. Entonces nada cambió aquí. Pero ahora tenemos el precio, pero es un poco
demasiado grande, claro. Hagámoslo más pequeño. Aquí necesitamos algo de espacio
para esta variable. Hagámoslo así, tal vez todavía un poco demasiado grande, podemos hacerlo más pequeño aquí también cambiando el tamaño aquí. Vamos a ponerlo a 80, tal vez, todavía un poco demasiado
grande, algo así. Entonces paramos el juego aquí. Pon este botón aquí, pon el precio aquí. Y luego encima de eso, podemos poner eso aquí. Pero el problema aquí
es que no se puede cambiar el fondo de esta pantalla aquí de la variable display. Así que tiene que ser así. Pero podemos mostrar el precio
con este nuevo sprite aquí. Y pongamos eso
un poco arriba, para que quede centrado aquí. Bien, entonces eso se ve bien. Pero ahora tenemos que
mostrar este sprite también, y también tenemos que
mostrar la variable Entonces, primero vamos a
deshacernos de la variable. Entonces desmarcamos esto aquí, o tal vez deberíamos
hacerlo en el código, eso es
mejor, claro Porque necesitamos
inicializarlo, estar escondido aquí. Entonces vamos primero a Sprite one, y cuando empecemos el juego, tenemos que escondernos porque el cohete no
ha aterrizado en este planeta, así que lo escondemos, es
lo mismo que para
el botón de aquí, y aquí viene algo
complicado porque
podrías arrastrar esto aquí
al sprite de precio, pero no voy a hacer eso, y
hay una razón para eso Aquí está el problema
con las variables locales y esta copia de un
bloque a un sprite diferente Entonces si arrastras esto aquí, Este conjunto de precio de reparación
dos escoge al azar 226 a este precio texto
sprite aquí. Hagamos esto. Verás que
aparecerá aquí, claro, es una copia, pero también
hay este precio de reparación variable
local aquí. Scratch también creó una variable
local aquí. Aquí tenemos dos variables locales. Uno está aquí. Y uno está aquí, y tienen el mismo nombre.
Ese es el problema aquí. Entonces se podría decir,
Bien, precio de reparación, eso es lo mismo que este, pero no lo es, y
aquí está la prueba. Voy a mostrar el precio de reparación aquí, y aparece por aquí. Y si hago lo mismo aquí, aparece aquí junto
al texto del precio. Se trata de dos
valores diferentes, también, cuatro y dos, porque
hay dos variables distintas. Cada uno es local al sprite. Entonces esto es local para esta novia, este precio de reparación, y esto
es local a este spride Entonces, ¿qué significa eso? Si pongo aquí el
precio de reparación a un número aleatorio, este precio de reparación seguirá
siendo el mismo. Entonces si lo pongo aquí
a otra cosa, por ejemplo, podemos
fijarlo a, digamos, a cero o a menos
uno tal vez para que
podamos ver que
realmente es este valor aquí, y empiezo el juego. Vemos aquí tenemos dos. Entonces, si golpeamos un planeta, entonces podemos ver que este precio de reparación de texto de
precio es menos uno, y este es cuatro. Este sigue siendo menos uno, y este de aquí es cuatro aleatoriamente establecido
por este bloque de aquí. Entonces aquí realmente hay
que tener cuidado. Si arrastras algo
con variables locales, un bloque que está usando una variable local o
configurando aquí en este caso, entonces estará
creando o scratch, estará creando una nueva variable local
en el otro sprite Pero estas no son
las mismas variables. Ambos son locales
para cada sprite. Esto es un problema aquí, vamos a deshacernos de éste, eliminar la variable de precio de reparación.
No necesitamos eso. Pero tenemos que mostrar esto aquí
en el botón de comprar reparación. Así que cada vez que mostramos esto aquí, cuando recibo mostrar la pantalla de
trading, necesitamos mostrar
esta variable aquí. ¿Cómo mostramos y
ocultamos variables? Esto es aquí, estas dos cuadras. Mostrar precio de reparación variable, ocultar precio de reparación variable. Entonces cuando G es click, ocultemos esto porque al inicio del juego, no
queremos eso. Y cada vez que recibo
mostrar la pantalla de trading, el mensaje, mostrará el precio de reparación variable
aquí, esta variable local. Aquí, el texto del precio
sólo se mostrará y se ocultará. Necesitamos agregar aquí este evento cuando reciba la pantalla de
comercio del espectáculo, entonces solo
nos mostramos aquí. Eso es, o eso debería
ser, probémoslo. Voy directo al
planeta y aquí lo tenemos. El precio es de cuatro. No tengo ningún recurso recaudado y no
tienes suficientes
recursos se muestra. Eso está bien.
Recolectemos algunos recursos. Al menos cinco, diría yo, tal vez más si los hay. Sí, ya tengo tres. Cuatro, y tal vez dos más. O choque. Hay uno más, y ahora necesitamos un planeta. Bien, entonces aquí
lo tenemos recursos ocho. Así puedo comprar dos
reparaciones. Vamos a comprar uno. Ya tenemos cinco. Y
compremos otro, y ahora me quedan dos
recursos, y no tengo suficientes
para comprar uno más. Entonces las reparaciones que quedan son cuatro
porque tuve el choque. Así que eso es ahora tengo cuatro, pero compré dos, así
que eso es todo correcto. Bien, así es
como puedes hacer el precio de la
reparación aquí sea aleatorio. Por lo que siempre se elige
2-6 un número aleatorio. Entonces esto se vuelve un
poco más impredecible, cuál será el precio,
cuántos recursos necesitas. Entonces, si el jugador va a este planeta y luego no
tiene suficientes recursos, entonces eso es mala suerte, claro. Y entonces el jugador
necesita volver a viajar por
el espacio y recolectar más recursos para luego
regresar al planeta. Pero el problema es que
no hay manera de volver a viajar. Entonces eso es lo que tenemos que
implementar en el siguiente video.
27. 27 Corrección del código de fondo: En este video, quiero
corregir un error que
acabo de darme cuenta que presentamos antes,
y lo
introdujimos cuando
cambiamos el vestuario de
los sprites de fondo Así que aquí hemos eliminado
este rectángulo. Ese fue
el fondo para
esto para las estrellas,
el rectángulo negro, y lo hemos borrado porque aquí
teníamos este telón de fondo, el fondo negro, este, y entonces no
necesitábamos el otro. También ves que esto
no está correctamente en el centro. Pero ese no es el problema aquí. El problema es que aquí hemos cambiado este disfraz y con
borrar este rectángulo aquí, hemos cambiado el tamaño
de este sprite aquí Ese es el problema aquí. Si esta posición y no
es correcta, entonces este sprite de fondo no se restablecerá a
esta posición aquí Yo intencionadamente he hecho mal
este valor aquí, así que no es el valor correcto, y verán
lo que esto causa. Sólo para el primer sprite
de fondo. Yo he hecho esto. El
otro ya lo corrigí. Se puede ver que el primer
fondo está atascado aquí. Aquí se puede ver una estrella
de este fondo, y no se restablece. Eso significa que no
va a entrar en esto si y posición menor a
menos 350. ¿Por qué no? Debido a que no se puede cambiar la posición más de lo que
podemos comprobar cuál es el valor, -320, no se puede
establecer por debajo de eso Sólo puedo fijarlo en -500. Pero si hago eso,
automáticamente volverá a -320. No es posible
cambiar y por debajo de ese valor. Esta condición aquí siempre
será falsa, y no se restablecerá. Por eso tenemos que
cambiar eso. Tenemos que ajustarlo
al tamaño del
sprite. Hagámoslo. Aquí tenemos menos 320, tenemos que comprobar si
está por debajo de -319 Y luego también tenemos que
restablecerlo a rojo 20. Comprobemos si esto
soluciona el problema. Choque. Pero parece que realmente está arreglando el
problema porque podemos ver que el primer
sprite de fondo se está moviendo correctamente y se
restablece correctamente. Eso está bien. Error arreglado, y siempre
tendrás estos bugs que
necesitas depurar, es
decir, corregir errores. Para corregir errores, primero
hay que encontrar el error, y ese es el proceso de
depuración Primero encuentra el error, trata de aislar los casos
donde ocurre el error. Y luego arreglas el error, y eso es depurar Scratch no es realmente compatible con la depuración
ya que otros lenguajes, otros
lenguajes de programación o entornos pueden hacer eso
porque no es capaz establecer puntos de interrupción
donde se puede detener el script y luego
inspeccionar las variables Pero puedes inspeccionar
las variables, claro, mostrándolas aquí. Entonces es por esto que
puedes bajo variables, hacer que estas variables se muestren
aquí con una casilla de verificación. Así que siempre podemos mostrar aquí
el valor de la
variable travel stopped, y podemos ver si
esto es correcto. Entonces también podemos mostrar la posición y del
sprite, por ejemplo, así que tenemos que ir al movimiento, y aquí tenemos la posición x y la posición y,
y también la dirección No necesitamos eso
por el momento. Pero aquí, y posición, puedes comprobarlo, y luego también
será visible aquí. Y luego se puede ver la
posición y de fondo uno. Y entonces verás que si llega al fondo aquí, se
restablecerá nuevamente
a la parte superior. Eso se trata de arreglar el error. Eso me acabo de dar cuenta en este
momento, pero durante la codificación
durante la programación, siempre
habrá la
necesidad de depurar también Entonces esta fue una introducción
a la depuración más o menos, pero no había
intención de hacerlo Antes sólo era un error. Pero así es como
lo arreglas, y también de nuevo, cómo puedes establecer estos
límites aquí, estos -319 Si lo haces mal,
algo como esto aquí, entonces este fondo se quedará
atascado y no se restablecerá. Y entonces puedes ver cuál es
el valor mínimo
de este fondo, y luego puedes usar
este valor aquí menos 320 para hacer esta condición aquí, por lo que debería ser uno más. Un píxel, por así decirlo, más que esta posición extrema, y luego puedes usar esto. Y luego estableces lo
mismo que aquí en el negativo como una y positiva para restablecer el fondo aquí. Y también hay una cosa
más que podemos hacer para que sea un poco
más fácil aquí en nuestro cerebro. Para que podamos intercambiar esto aquí. Entonces con el conocimiento de que esta posición Y siempre
será un mínimo de -320, podemos intercambiar esto
aquí con un igual Entonces, si la posición
y es igual y luego menos 320, entonces restableceremos
el sprite aquí Esto es más fácil, pero solo
podemos hacer esto porque esta posición y
del sprite es siempre -320 si se establece por debajo de eso Siempre se restablece, por así decirlo, a este valor
mínimo aquí. Por lo que siempre
asumirá este valor. Si usáramos una variable aquí
y siempre la
cambiaríamos por menos dos, entonces podríamos aterrizar en
algo como -321, y entonces esta condición
no se cumplirá Pero como este es realmente un caso especial aquí
con la posición x, podemos hacerlo así,
y entonces no tendrás
que agregar uno a este límite aquí. Entonces es solo si la posición y
está en el mínimo de -320, entonces ve a esta posición
inicial aquí Entonces probemos esto. Y
veremos que también funciona. De esta manera, puedes usar el
mismo valor aquí, 320. Esta vez es -320, y aquí es positivo, 320, y es un
poco más fácil
28. 28 Sal de la pantalla de negociación: R Ahora que tenemos la pantalla de
trading funcionando, tenemos que salir de ella de
nuevo, claro. Entonces vayamos a la pantalla. Nuevamente, aquí tenemos la pantalla de
trading, podemos comprar. Si tuviéramos suficientes recursos, hubiéramos
podido comprar aquí, pero no lo haremos así que tenemos que salir de esta pantalla para
poder viajar nuevamente por el espacio para recolectar
recursos y luego realmente comprar reparaciones aquí en este
tipo de tienda, que es. Bien, vamos a deshacernos de
esta posición aquí. Lo primero. Entonces,
¿dónde tenemos eso? Es BG uno, así que atrás tierra uno, y aquí está la posición. Estás ahí abajo,
desmarca la casilla de verificación, y luego se
va. Parada de viaje. Tampoco necesitamos eso. Así que vamos a quitar la casilla de verificación aquí. Retire la marca de
la casilla de verificación aquí. Entonces ahora esto también se ha ido. Y para la salida, necesitamos un botón, claro. Entonces tenemos que pintar
otro botón. A lo mejor, no pintar. Vamos a usar un botón preestablecido aquí. A lo mejor este servirá. Entonces solo borra este. Este es el correcto, y
ahora podemos personalizarlo. Entonces al menos tenemos que poner aquí
un texto que diga salida. Hazlo un poco más bonito. A lo mejor hacer el color, el texto color negro aquí, y ponerlo en el
centro o tal vez aquí, un poco por encima del centro. Eso está bien. Y también el color, el color de fondo
aquí debería ser otra
cosa, tal vez duración. Sí, creo que eso es mejor,
algo así, y también la frontera aquí, esto es un gradiente
por el momento. Vamos a hacerlo sólido aquí, y entonces tal vez solo negro
en este caso, está bien. Y entonces tenemos que
hacerlo un poco más pequeño. Bien. Entonces creo que eso debería estar bien. Y aquí cambiamos
el tamaño también al 80%. Bien. Bonito. Vamos a colocarlo por aquí para
que el jugador pueda ver claramente que este es el botón para salir de
esta pantalla de trading. Bien, vamos al
código aquí al guión. Y necesitamos un evento, claro, cuando se hace clic en
sprite Cuando se hace clic en este sprite,
¿qué hacemos entonces? Por supuesto, necesitamos
establecer la variable. necesario establecer la
variable de recorrido detenido, por lo que el recorrido establecido se detuvo 20. Esto hará que
casi todo vuelva
a aparecer aquí
y se mueva de nuevo. Intentemos si esto
ya hace algo. Por lo que inmediatamente vamos
a un planeta aquí. Primero vemos, ahí está, e intentamos la salida. Bien, entonces vemos que las
rocas se mueven de nuevo, las estrellas se mueven,
los planetas se mueven. El cohete no se mueve, o al menos no es visible. Entonces vamos y además el
fondo no es visible. Primero arreglemos el chip de
cohete aquí. ¿Por qué no se mueve
la cadera del cohete? Porque está atascado
en este bucle para siempre. Y entonces lo hará justo si la parada de
viaje vuelve a ser, cero, solo será
control de jugador y prueba rocosa. Y aquí no hay nada
que vuelva a mostrarlo. Bien. Entonces tenemos que demostrarlo. Así que pasa a looks y luego show o ya lo tenemos aquí, para que podamos deshacernos de eso
y usar este programa aquí. Y ponlo aquí en esto si la parada de
viaje es igual a cero. Entonces lo primero que hacemos
ahí es show y cada vez que pasa por este bucle y
stlop de viaje es cero Nosotros lo mostramos. Realmente no importa que
lo demostremos varias veces. Es casi un no, no hay operación. Entonces esto debería estar bien. Así que vamos a retroceder eso. Y ahora cada vez que esa parada de
viaje está en este bucle cero
para siempre, se muestra
el cohete.
Eso debería estar bien. Probemos esto.
Hay un planeta, y salimos, y luego
tenemos de nuevo el cohete. También esto está funcionando. Tómate un tiempo para que
todos los cohetes y las estrellas bajen, pero está bien.
Creo que eso es bueno. Lo que falta
aquí es, por supuesto, el fondo
también necesita
mostrarse siempre que la parada de
viaje sea cero. Eso también es fácil. Quita
eso aquí, ponlo fuera, y luego ponlo de nuevo
aquí en este viaje
parada es igual a cero, lo mismo para el
segundo fondo. Entonces muéstralo cada vez que
pase por el bucle, cada iteración, ese stop de
viaje es igual a cero Entonces los antecedentes también deberían
estar bien ahora. Vamos a probarlo. Por supuesto, todo lo que
haces tienes que probar. Entonces solo haz un pequeño cambio y luego prueba si este pequeño
cambio realmente funciona. Entonces así es como lo hago. Si haces muchas,
muchas cosas y
cambias muchos bloques insertas ahí
y
cambias de valor ahí,
entonces pruébalo , y luego te
das cuenta de que ya nada funciona. Esto no es tan bueno. Entonces cambia un poco y luego
prueba este cambio. Esa es la mejor manera de hacerlo. Bien, así que hagámoslo. Los antecedentes también deberían funcionar. También debería reaparecer si hacemos
clic en salir. Sí, lo es. Pero lo que aún falta es que
el telón de fondo no se cambia. Entonces tenemos que cambiar aquí a
este primer telón de fondo aquí. Bien, ¿dónde hacemos eso? También, en este sprite. Vamos a cambiar el nombre del
sprite aquí para salir o simplemente salir. Nosotros lo haremos. Establezca la parada de viaje a cero, y luego también podemos
establecer el telón de fondo aquí, cambiar telón de fondo, dos,
telón de fondo uno y probarlo. También podemos probar si podemos comprar algo con los
recursos y luego salir. Ahora, aquí es demasiado caro. No podemos comprar reparación,
pero salgamos. Y ahora vemos que todo está vuelta a la forma en que estaba
antes, a excepción de, tenemos la reparación de compra Y
el botón de precio aquí, así que tienen que ir, y también
el botón de salida tiene que ir. ¿Cómo lo hacemos? ¿Eso es
un poco diferente? Yo sugeriría volver a
usar un mensaje, así que difunde un nuevo mensaje aquí. Así que tenemos mostrar la pantalla de comercio, y necesitamos ocultar la pantalla de comercio. Así que crea un nuevo mensaje
de alta pantalla comercial, y de esta manera podemos reaccionar. En este sprite, también
podemos reaccionar. Entonces, cuando reciba
ocultar la pantalla de comercio, entonces simplemente
ocultaremos el sprite aquí Entonces, escóndete así. Y también, necesitamos
mostrar el botón de salida. Esto es algo que no
hemos hecho hasta ahora. Así que cada vez que reciba
esta pantalla de intercambio de
tomas, quiero mostrar el sprite aquí Para que tengamos el manejo de
este mensaje de la
pantalla de comercio de Ocultos
y también el mensaje de la pantalla de
comercio de mostrar, y tenemos que hacer lo mismo aquí para
el texto del
precio y para la reparación de compra. Así que solo puedo copiar
esto cuando reciba altura de pantalla comercial
alta al texto
del precio y también
al botón de comprar reparación. Entonces esto también hará lo
mismo aquí en los
otros Sprites. Bien. Y también, lo que tenemos que
hacer es lo que se hace aquí, cuando vaya haga clic, oculte, o tomemos este
, cuando vaya clicado, ocultarlo y copiarlo
al botón de salida aquí Entonces de esta manera, también este botón de salida se oculta
cuando comienza el juego. Empecemos el juego.
Sin botón de salida. Aterrizemos en un
planeta. Aquí está. Ahí tenemos el botón de salida, tenemos el botón por reparación, y el texto del precio. Entonces no tenemos recursos.
No importa. Simos, y aquí podemos volver a
reunir recursos. Bien. Lo que aún
falta es, por supuesto, esta variable necesita
ser ocultada también. Entonces tenemos que hacer eso porque
es una variable local. Tenemos que hacer eso en el botón
por reparación aquí. Hagámoslo. Variables,
Variable de alto Siempre que recibo
ocultar pantalla de negociación, Ocultar precio de reparación variable. Entonces volvamos a probarlo. Salir, y ahí lo tenemos. Así que ahora podemos cambiar
entre este modo aquí, el modo de viaje y
recolección, y este modo de comercio aquí. Así que puedo comprar en realidad
dos reparaciones aquí, salir y cobrar más recursos. Para que pueda comprar más reparaciones aquí.
Vamos a intentarlo de nuevo. Puedo comprar uno más, y luego no me quedan
más recursos, y luego salir, y
puedo continuar el juego. Así que muy agradable, podemos
salir de la pantalla de trading. Podemos entrar en la pantalla de trading. Entonces tenemos estos dos modos viajar y coleccionar
y el modo de comercio, que es muy agradable.
Y lo estamos haciendo Al usar una variable aquí, como has visto, esta variable de stop de
viaje, que siempre se comprueba en el
loop de juego controlador para cada sprite, y lo estamos haciendo
también con mensajes Entonces tenemos esta pantalla
comercial alta y mostramos los mensajes de la pantalla
comercial
que se usan aquí. De esta manera, no necesitamos
ese bucle de juego para siempre para cada sprite que no
sea necesario También se llama
ocupado esperando aquí. Entonces si estamos en este modo aquí, parada de
viaje no es cero, sino una, Estamos aquí
en este concurrido bucle de espera. Para siempre y luego otra cosa esconderse
y esperar con solo
esperar, esperar, esperar todo el tiempo. Y aquí, este no es el caso. En realidad
no estamos ocupados esperando. Solo estamos esperando en este caso una notificación
aquí para un mensaje, y luego estamos actuando sobre la recepción de
este mensaje aquí. Y eso es un
poco diferente. A diferentes métodos para lograr el mismo objetivo
o similar, tal vez. Pero aquí también tenemos un loop de juego de control y
esto es más fácil
comprobarlo aquí en el bucle que hacerlo
a través de una
recepción de mensajes aquí. Bien. Entonces ese es nuestro juego. Creo que es un juego muy bonito. Puede que no sea muy
difícil por el momento, pero puedes
modificarlo un poco Eso se pone más difícil, tal vez no tantos planetas, tal vez más rocas
y menos recursos. Podemos, por supuesto, también agregar una mejora aquí
para nuestro chip de cohete, así que tal vez el chip de cohete
pueda disparar rayos láser o algo así y luego destruir los meteoritos, las rocas de aquí Y entonces tal vez las rocas, también revelan algunos recursos más, no
sé, tal vez
planetas ocultos o no sé. Podrías hacer eso, y también
puedes actualizar, por supuesto, la pantalla de trading aquí para que no solo
puedas comprar una reparación, sino que también podrías hacer una actualización a tu
cohete aquí para que tal vez luego
puedas disparar a un láser algo más o misiles
o algo así. O también puedes
asentarte en planetas. Entonces, si tienes, digamos, 50 recursos pueden ser capaces de
asentarse en este planeta, y entonces también puedes cosechar recursos en el planeta
y con el paso del tiempo, esto realmente podría ser
darte más recursos, para que puedas asentarte en
más planetas y así sucesivamente. Pero por el momento, este es
nuestro estado final de este juego. Entonces puedes,
por supuesto, extenderlo. No es tan difícil extenderlo. Entonces, por ejemplo, si quieres vender o dejar que el jugador
compre otra cosa, solo
necesitas copiar esto aquí y luego hacer
otra variable, tal vez el estado de actualización
del chip cohete, por ejemplo. Y entonces hay que
verificar, claro,
tal vez aquí en el control del chip del
cohete, se puede comprobar si hay espacio
para la clave espacial. Si se presiona la tecla de espacio, puedes disparar este rayo láser, y si este
rayo láser choca con una roca, la roca simplemente desaparecerá, o puedes entonces después, si entramos en animaciones, también
puedes hacer una explosión, tal vez animación,
algo así. Bien. Pero eso es todo
para este juego aquí, en la siguiente sección, comenzaremos un nuevo juego, y esto requerirá que exploremos más
funcionalidades aquí en scratch porque hay más Así que no solo tienes
estas variables aquí, sino que también tienes listas, y esto cubrirá
ahí en este próximo juego, y también haremos uso
de más bloques personalizados, y también
habrá animaciones.
29. 29 Nuevo juego Controla el personaje principal: Este será nuestro nuevo juego, y será un juego de aventuras. Al igual que algunas viejas aventuras de tal vez
apuntar y hacer clic, tenemos un personaje principal, y este personaje principal
se llama Avery porque tenemos en scratch un sprite
preestablecido llamado Avery, que es una chica que también
tiene Estaremos usando este sprite, y así Avery va
en esta aventura, y el jugador puede
controlar a Avery con las teclas del cursor y luego
interactuar con objetos, recogerlos y resolver acertijos con la
ayuda de Lo que tenemos que hacer primero es, por
supuesto, crear un nuevo proyecto. Denle el nombre de la aventura de Avery. Ya he hecho esto aquí. Entonces necesitamos crear
nuestro primer sprite. Normalmente, tienes este gato. Ya he
quitado el gato aquí. Vamos a agregar Avery. Aquí tenemos a Avery de
pie y en dos poses. Vamos a revisar los disfraces. Esta pose y esta, cambiemos el orden aquí. Puedes arrastrar esto aquí. Tengamos primero al Avery de
pie, y luego esto puede ser
hablar de Avery como un segundo Necesitamos más sprites aquí, más disfraces, no más
sprites, más disfraces, y podemos insertarlos
aquí, elegir un disfraz, y luego tenemos estos disfraces para
caminar Seleccionemos el
primero de él, y luego el segundo, y luego el tercero
y el cuarto. Ahora tenemos aquí el aviario
ambulante,
y aquí tenemos el de pie cada aviario y el aviario hablante Vamos a mover el
aviario hablante aquí hasta el final. Primero tenemos el
pie cada uno, luego el aviario ambulante, y el último disfraz es
el aviario hablante Con la ayuda de estos disfraces, haremos la
animación de caminar, por supuesto, y también de pie y hablando. Eso es todo para los
disfraces por ahora, y vamos a revisar el código. Hagamos que el jugador
controle al personaje, nuestro aviario principal Primero, vamos a
eventos, por supuesto, cuando se hace clic, y necesitamos
un bucle para siempre aquí Este será nuestro bucle de juego, y aquí comprobaremos
los controles, y los controles son las teclas, la flecha
izquierda y la flecha derecha. Vamos a conseguir un si aquí. Esto comprobará
la flecha izquierda. Entonces vamos a la
tecla de detección presionada y aquí
desde el menú desplegable, elegimos flecha izquierda, y luego también
ya podemos dulicar esto y hacer uno
para la flecha derecha Entonces, ¿qué hacemos?
Estamos cambiando x para este sprite en cierta cantidad que el personaje se
mueva en esta dirección Así que ve al movimiento y cambia x por. Aquí, esta será la izquierda así. Digamos que movemos x por, o cambiamos x por menos tres,
irá a la izquierda, Duplicamos esto, y
aquí lo movemos por o cambiamos x por más tres, k Ya podemos probar esto. Veamos cómo funciona esto. Empecemos. Y somos
capaces de mover al personaje. Bien, a continuación estaremos
cambiando la orientación, así que Avery debería estar mirando hacia derecha cuando se
haga clic en la flecha derecha o se presione,
y por supuesto, a la izquierda si se presiona la flecha izquierda Tenemos que mover la orientación de Avery del personaje principal, y esto lo hace un bloque
que también está en movimiento, claro, y este es este
punto en dirección Podemos decirle a scratch que
oriente este personaje hacia la dirección correcta o hacia la izquierda y
también otras direcciones, pero en este caso, solo
necesitamos derecha e izquierda. Hagamos esto. Si se presiona la flecha hacia la izquierda entonces
apunta en dirección 90 grados, eso debe ser -90 grados, así puedes cambiarlo
aquí a -90 En el otro caso, apunte
en dirección 290 grados, si se presiona la flecha hacia la derecha. Entonces, si haces clic aquí, puedes ver que esta es la dirección
correcta aquí. Vamos a probar esto. Y
vemos que no es correcto. Y esto se debe a que no hemos establecido el estilo de rotación correcto, y este es este bloque de aquí. Establecer estilo de rotación. Este es el último bloque aquí. Podemos configurarlo aquí
al principio,
establecer el estilo de rotación
a izquierda, derecha. Por defecto es todo alrededor, y lo configuramos a izquierda derecha. Intentemos esto, y funciona. Ahora podemos voltear el
personaje principal de derecha a izquierda. Y ahora a la animación
en el siguiente video.
30. 30 animación de caminar: I. Ahora queremos agregar una
animación al movimiento aquí. Por el momento, solo podemos movernos y cambiar la orientación
del personaje principal. Pero también queremos una animación,
una animación de caminata, y también tenemos los disfraces aquí para una animación de caminata. Este es el primer marco, por así decirlo, este es el
segundo, tercero, cuarto. Tenemos que recorrer
estos marcos aquí, los cuatro marcos para caminar, los cuatro disfraces para caminar aquí, y esto se puede hacer
en un segundo bucle. Vamos a ir
clicked, luego para siempre. Aquí haremos la animación. Bien, entonces, ¿cómo puedes
hacer una animación? Hay que cambiar el disfraz a uno diferente al
siguiente, por ejemplo. Esto es subestima. Entonces veamos a Undos cambiar el disfraz dos. Una específica,
aquí puedes elegir cualquier disfraz en el
sprite que te guste, o también puedes
decir siguiente disfraz. Entonces, por ejemplo, si tenemos
el disfraz de pie, siguiente disfraz, iremos al
primer disfraz para caminar aquí. Si estamos animando, haciendo la animación de caminar, simplemente
cambiaremos
al siguiente disfraz aquí Entonces si llegamos a este disfraz, tenemos que verificar
esto y luego colocarlo el primer disfraz
para caminar
aquí. Hagamos esto. Primero, solo cambiamos
al siguiente disfraz, elegimos este de aquí, y luego el siguiente disfraz
y este para siempre. Veamos cómo funciona esto. Sí. Obviamente hay
una animación aquí. No es el correcto, pero está cambiando a través de
todos los disfraces aquí. Pero es demasiado rápido, así que tenemos que agregar un peso aquí. Vamos a controlar esperar. Y entonces no
esperamos ni 1 segundo. Eso es demasiado largo. Entonces
digamos 0.2 tal vez. Veamos cómo se ve esto. Se ve bastante bien.
Podemos probar tal vez 0.3. Vamos a probar esto.
Creo que está bien. Aquí tienes la animación, pero el problema es
que no necesitamos la primera aquí, y tampoco necesitamos
la última aquí. Tenemos que verificar en qué
estado se encuentra la animación y luego configurar el disfraz
correctamente. Hagamos esto. Para ello, necesitamos un si
aquí o tomamos un if else. Entonces tenemos que comprobar
en qué disfraz se el personaje en este
momento en el tiempo. Esto se puede hacer también
aquí bajo miradas. Entonces aquí tenemos el
número del disfraz o el nombre del disfraz. Entonces esto es una especie de variable, vamos a arrastrar eso aquí, y verificamos,
digamos el número. Entonces verificamos la igualdad, si el número del disfraz es igual, y luego tenemos que
verificar qué número es
el último fotograma de
animación caminando. Entonces este es el primero, el segundo de pie, tercero, cuarto, quinto. Entonces son cinco. Entonces, si llega a cinco, o si el
traje actual es cinco, el número, necesitamos
fijarlo a un disfraz específico, y ese es el primero. Entonces uno, dos, dos es el número del
primer disfraz para caminar. Bien. Entonces vamos a looks
y luego cambiamos de disfraz. No necesitamos el número aquí. Podemos simplemente fijarlo
a este marco aquí. Supongo que es correcto. Volvamos a
comprobarlo. No, no lo es. Es cada caminata, cada
caminata A, por supuesto. Si llega al
último fotograma de animación, entonces cambiamos al primero. Y el primero
es cada A. caminando Y si este no es el caso, simplemente
cambiamos al
siguiente disfraz aquí. Y claro, tenemos que
esperar también en el para siempre. Para que la
velocidad de animación no sea demasiado alta. Comprobemos esto y
esto parece funcionar bien. Avery está caminando por aquí. También podemos dejarla caminar en
la dirección diferente. Entonces, izquierda y derecha,
todo funciona. Pero ella no para de caminar. Ella camina todo el tiempo, así que la animación
no se detiene aquí. Y esto, tenemos que
ver con una variable. Entonces necesitamos establecer una variable a un valor específico y luego verificar este valor en el bucle
forever aquí. Así que vamos a introducir
una variable de caminar aquí, hacer caminar variable. Y sólo necesitamos eso
para este sprite. Para este spride, solamente, todos los demás sprites tienen
sus propias animaciones,
si las hay, así que solo
lo necesitamos para este Y tenemos que
ponerla, por supuesto, a cero al inicio. Así que ponte caminando o ya
tenía una variable caminando aquí. Vamos a deshacernos de esta, y también vamos a deshacernos
de mi variable aquí. Así que ponga caminar a
cero al inicio. Entonces si estamos aquí en esta flecha izquierda o flecha
derecha presionada, entonces tenemos que ponerla en una. Hagamos esto aquí, lo
configuramos en uno, y también Y entonces tenemos que checar
en este bucle para siempre si
debemos continuar la animación o si deberíamos simplemente esperar aquí. Este año adentro,
puedo alargar eso, necesita estar en otro si. Vamos a esto si, y
necesitamos un si entonces else. Aquí está, arrastra
eso para siempre. Si caminar es igual, necesitamos
un operador igual aquí. Entonces necesitamos nuestro caminar
variable. Si caminar es igual a uno, entonces podemos continuar
e animación. Ponemos eso aquí en el entonces
y yo caminando no es uno, entonces debemos quedarnos quietos. Tenemos que cambiarnos a
este disfraz aquí. Cambia el disfraz a Avery. Creo que es B, hagamos esto. Cambia el disfraz a Avery B, y probemos esto Izquierda, derecha,
todo está funcionando, pero no se detiene aquí. Eso es un problema, claro, tenemos que volver a poner a caminar 20, y ¿dónde hacemos eso? Poner caminando a cero, podríamos hacerlo aquí, pero el problema es que
debería ser condicional. Hay múltiples
formas de hacerlo. Podemos tener un anidado
si entonces else. Vamos a arrastrar estos sifs aquí
fuera del para evepe. De esta manera se vuelve más fácil, y necesitamos usar if
que else para cada uno. Si un else y esto
aquí tiene que ir aquí, y esto tiene que
ir aquí, claro. Si se presiona la tecla flecha izquierda, luego establece esperando a uno, así que eso es lo mismo que antes. Puede deshacerse de esto si entonces. Pero en el caso contrario, verificamos la otra clave aquí, pero no con si entonces, sino también con if then else. Entonces tomemos esto aquí. Arrastre la condición por aquí y arrastre este bloque por aquí. Esto podría ser un
poco complicado porque estamos anidando aquí si las condiciones Primero estamos comprobando
la primera tecla de flecha izquierda. Si se presiona esto, y
si no se presiona, estamos comprobando aquí
en el caso els la tecla
de flecha derecha presionada. Si este tampoco es el caso, nos estamos metiendo aquí
en el caso els de este interior si entonces else. Ahí podemos establecer
caminar a cero porque no se
presionó la tecla de flecha
izquierda porque estamos
en este caso els, y además tampoco se presionó la
tecla de flecha derecha, así que estamos en este caso els. No se presionó ninguna tecla, y podemos establecer
caminar a cero entonces. Entonces pongamos todo eso aquí
en la lupa for eve otra vez, y probémoslo a la izquierda, a derecha, de pie, y funciona Ahora tenemos nuestra animación aquí. Entonces, cómo funciona esto es simplemente
cambiando de vestuario, y si el disfraz está
en cierto punto, en este caso, es el
disfraz número cinco, necesitamos restablecerlo al
primer fotograma de la animación, que es cada
A caminando, y de lo contrario, solo
estamos cambiando
al siguiente, pero solo si caminar es uno, y si caminar no es uno, solo
estamos cambiando
al disfraz de pie. ¿Cómo determinamos si caminar
debe ser uno o cero? Solo estamos comprobando si
alguna tecla fue presionada, así que no cualquier tecla sino la tecla de flecha izquierda
o derecha, si no se presiona ninguna de una, entonces ponemos caminar a cero. De esta manera, tenemos esta
agradable animación para caminar. Ahora tenemos todas las caminatas y
el jugador puede controlar en qué dirección o si debe
quedarse quieta. Creo que esto es lindo? controlar al personaje principal aquí, y continuamos en
el siguiente video.
31. 31 Configuración de la primera habitación: Ya que podemos controlar a nuestro personaje aquí nuestro personaje
principal ahora. Entonces así, tenemos que
prepararnos para nuestro primer acertijo, nuestro primer rompecabezas
en la primera habitación Y hablando de primera habitación, tenemos que elegir un telón de fondo
diferente aquí porque esto simplemente está vacío. Así que vamos a comprobar
lo que está disponible. Y mi idea es que estemos
empezando en una recámara. Así que tomemos tal vez el
segundo dormitorio aquí. Y coloca avery en esta habitación. Vamos a moverla un poco, así que la posición inicial quizá debería ser
algo así como aquí, y como necesita
caminar de izquierda a derecha, no puede subir aquí. Tiene que haber suficiente espacio y no hay obstáculos aquí abajo, y de esta manera, ella puede caminar libremente hacia la
izquierda y hacia la derecha. Arreglemos la
posición inicial de Avery. Podemos simplemente establecer go a x, ir a y aquí, y estas coordenadas son coordenadas
actuales,
así que está bien. Ella siempre está
empezando desde ahí. Si la movemos y luego vamos, se
le restablecerá a esta posición inicial
y de ahí, podrá moverse en su habitación
a la izquierda y a la derecha. Esa es la parte móvil, y
esa es la parte de fondo. Ahora necesitamos objetos para que Avery pueda interactuar con
ellos y resolver un rompecabezas El primer rompecabezas será que la puerta de su
habitación esté cerrada con llave. Necesitamos encontrar una clave y
¿cómo ha sucedido esto? Mi idea era que anoche estaba
sonámbulo y accidentalmente
cerró la puerta y puso la llave debajo de la cama para
que ahora necesite encontrar la llave debajo de su cama y luego abrir la puerta para
salir de la primera habitación Vamos a poner en práctica eso. Para ello, por supuesto
necesitamos una clave. Busquemos un sprite clave. Tecla Enter, y
ahí tenemos una. Afortunadamente, esto es
un poco demasiado grande. Tal vez solo el 50% o el 30%. Sí, a lo mejor está bien. Vamos a mover esta llave a alguna parte. Debajo de la cama,
tal vez en la sombra aquí cerca de la parte superior
de la cama, tal vez. Creo que está bien. Por lo que no es inmediatamente
visible aquí y el jugador tiene que detectarlo
primero y luego recogerlo. Esta es la clave, el objeto para que la primera
habitación resuelva el rompecabezas, y ahora tenemos que pensar cómo el jugador debe
llegar a la solución. Entonces lo primero que haría es que si todos
quieren salir de la habitación, ella debe ir a la
izquierda o a la derecha, y debe haber una puerta, pero la puerta está cerrada, así que ya podemos decidir si la puerta está del
lado derecho o del lado izquierdo. Yo diría que está aquí, así que tenemos que decirle al
jugador que esta es una puerta ahí y la puerta está cerrada con llave. Entonces, ¿cómo hacemos eso? Tenemos que verificar
la coordenada x aquí, y si la coordenada x es
mayor que un cierto valor, entonces podemos dejar que Avery hable Pero hay una
solución diferente a este problema. Podemos hacerlo comprobando
la coordenada x aquí, pero también podemos poner
un objeto aquí, tal vez un objeto con
cierto color aquí. Y entonces si Avery golpea este
objeto o golpea el color, entonces podemos dejarla hablar Probemos la segunda solución. Ponemos un color especial aquí
y si Avery le pega al color, entonces la dejamos hablar Entonces vamos al telón de fondo. Nuevamente, telones de fondo aquí. También podemos borrar el
primero. No necesitamos eso. Entonces cambiemos primero el
color a algo marrón, piensa que debería estar bien, un poco más oscuro, tal vez. Y luego un rectángulo. Entonces pongamos ese
rectángulo aquí. Y esta es, por así
decirlo, la puerta de aquí. Avery podría simplemente
caminar hacia la puerta, y luego tenemos que
verificar de alguna manera si ella golpea
este color aquí Si este sprite está
tocando este color. Ojalá, este color
sea único aquí en la habitación y no se
encuentre en otro lugar. Entonces entonces tenemos que
cambiar el color, claro, pero ese no es
el problema. Eso lo podemos hacer. Pero primero
probémoslo con este color, y luego tenemos que verificar
el toque de un color. ¿Cómo lo hacemos? Sensing, Esta es la categoría correcta aquí, pero estamos en telones de fondo Entonces cambiemos a Avery. Entonces aquí tenemos la
posibilidad de. El color es tocar color o el sprite tocando el color, y este es el correcto Entonces esta puede ser la condición, y podemos poner eso aquí
en una declaración if. Así que vamos a conseguir un si entonces. Es, me toco el color, y ahora tenemos que
escoger el color. Aquí tienes el recogedor de color. Simplemente haz clic en eso,
y ahora puedes elegir un color aquí
desde la pantalla. Tomamos, por supuesto,
el color de la puerta. Entonces ese es nuestro color. Y si le pegamos a eso, simplemente
dejamos que Avery
hable algo Vamos a buscar
primero y saludar, y eso debería estar bien por ahora. Entonces podemos poner
esto en el for velope y cada iteración, comprobaría el
toque de este color, y si toca el
color, dirá hola Probemos esto caminando
hacia la puerta. Hola, y esto funciona. Por supuesto, ella siempre está
saludando ahora, y deberíamos poner
eso en un if else. Nuevamente, reemplazamos eso
aquí por si entonces else. Mueve esa condición por aquí y mueve el
hola por aquí. ¿Y cómo nos deshacemos de
la burbuja del habla aquí? Pongamos eso primero
en el F everop otra vez. Nosotros no decimos nada. Entonces otra vez, di y no hola, pero lo borramos por completo. Entonces no hay nada,
no hay ningún personaje aquí, completamente vacío, y de esta manera, la burbuja del habla desaparece. Bien, intentemos eso. Caminando hacia la puerta. Estamos golpeando la
puerta. Ella dice, hola, y nos estamos alejando de la puerta y el hola se ha ido. La burbuja del habla se ha ido. Además, notamos que
este es el color correcto. Esto es único en esta habitación. Entonces sólo tenemos este
color aquí en la puerta. Esto funciona, y vamos a
cambiar este hola a la puerta está cerrada con llave.
La puerta está cerrada con llave. Debo haberlo cerrado mientras sonambulismo por la noche y poner la llave en alguna parte
larga explicación, pero esto debería ser una pista para el jugador qué buscar Intentemos eso
otra vez, reiniciando, yendo a la puerta,
golpeando la puerta, La puerta está Debo haber cerrado con llave. Hay ortografía confundirlo mientras duermes caminando por la noche
y poner la llave en alguna parte. Corregamos esto
y ahora es correcto. Alejándose de la puerta y
el cuenco del discurso desaparece. Este es nuestro primer
mecanismo aquí, y se basa en
este color conmovedor. Puedes usar esto con colores
especiales que elijas, y luego puedes
sentir una colisión de un sprite con un color y luego decir algo,
por ejemplo, aquí, o también puedes hacer
otra cosa Bien, entonces esa es la pista
para el jugador aquí, y ahora tenemos que verificar cómo
podemos obtener la clave aquí, cómo el jugador puede
recoger la llave Si el jugador tiene la llave, entonces Avery puede abrir la
puerta y salir de la habitación
32. 32 Mostrar información de clave: Ahora vamos a crear el
código para el objeto clave. Aquí tenemos la clave, el sprite, y aquí
tenemos el código Por el momento
no tenemos ningún código, pero lo insertaremos ahora
cuando vaya clicado como siempre Y luego lo que hacemos
cuando vamos clicked. Cuando vaya clicked,
hacemos un para everop. Y comprobamos si el puntero del ratón está
tocando este sprite aquí Vayamos a si más. caso contrario, ponlo
en los cuatro velope, y entonces necesitamos la categoría de
detección aquí Si toca el puntero del mouse, si este sprite está tocando
el puntero del mouse, entonces digamos algo o pensemos algo. Así que piensa. No, no, pero es una clave y en el otro
caso, en el otro caso, no
pensamos en nada para
que esto solo se muestre si el puntero del mouse realmente
está tocando
el sprite de la tecla Vamos a probar eso.
Al pasar el cursor sobre la llave, es una llave, funciona, y si guardo el
punto del mouse, entonces ya no está Eso es lindo. Pero
queremos algo más. Esta burbuja aquí solo debería aparecer si Avery
está cerca de esta llave Si ella está, por ejemplo, aquí, así que a unos
pocos píxeles de la llave, entonces debería mostrar esto. Es una llave si pongo el
cursor sobre la llave, y si ella está como aquí, ejemplo, entonces no
debería estar ahí De esta manera, hacemos que
el jugador mueva al personaje para explorar
los alrededores aquí, y no es solo el puntero del mouse el que necesita
ir a todas partes y buscar algo
para, por ejemplo, recoger
o mirar o usar. Hagamos esto. ¿Cómo lo hacemos? Ciertamente hay múltiples
formas de hacerlo. Usaremos otro
sensor aquí. Entonces tenemos esta distancia
hasta aquí es puntero del ratón. Es un valor por defecto, pero también
podemos elegir Avery, así que voy a sprite aquí Distancia a Avery,
y la distancia a Avery debe estar
por debajo de cierto límite Entonces vayamos a los operadores
y elijamos esto aquí. Menos que, la distancia a
Avery debería ser menor que, digamos, dejémosla como
50 o algo así Podemos ajustarlo posteriormente también. No hay problema, déjalo así. Entonces necesitamos verificar si el puntero del mouse
está tocando la tecla y también que la distancia
a Avery esté por debajo de 50 aquí Y este fin no lo
hemos usado antes, pero esto está aquí también
bajo operadores. Entonces aquí tenemos este fin. Así que vamos a arrastrar eso aquí. La distancia dos es el
segundo operando aquí, y el primero es el puntero
táctil del mouse Entonces tenemos ahora dos condiciones, y ambas deben cumplirse
para exhibir esto. Es una llave. primera condición es
tocar el puntero del mouse, y la segunda es que la distancia a
Avery es inferior a 50 Entonces esta es la
condición completa con este fin aquí, y lo ponemos aquí. Entonces hay que tener cuidado
al insertar esto, entonces el borde izquierdo aquí debería estar alineado con
esto si forma aquí. Entonces está resaltando si lo
pones en el lugar
correcto aquí, y luego puedes soltarlo, y luego tienes si
tocas el puntero del mouse y la distancia a
Avery está por debajo de 50, entonces puedes mostrar esto Es una llave, de lo contrario, no
mostrar nada. Probemos esto. Primero, intentamos cursor sobre la llave
cuando Avery está aquí La distancia es por supuesto, más de 50 aquí, y no está mostrando
nada, así que eso es bueno. Caminemos más cerca Oh, aquí vemos que el
orden Z no es correcto aquí Pero está funcionando, es una clave. Ahora está mostrando,
es una llave, y si muevo a Avery un
poco a la derecha, no
lo está mostrando Eso es lo que queremos.
Avery tiene que moverse cerca de la llave para realmente
recibir este mensaje aquí Es una llave. Eso está funcionando, pero necesitamos arreglar el orden aquí para que la clave esté
siempre en segundo plano, pero eso es fácil
cuando vaya haga clic entonces, necesitamos
establecer esto en la capa posterior. Aquí, ve a la capa frontal, cámbiala por atrás,
así que ve a la capa posterior. Y luego poner eso directamente
después cuando se hizo clic en la bandera. Y ahora eso debería estar bien. La clave debe estar en el
fondo, y funciona. Vamos a pasar el cursor. Es una llave. También del otro lado, está funcionando Es una llave, y si me alejo de la llave, entonces ya no funciona. Eso es lo que queríamos, y
eso es lo que también logramos. Este operador final aquí es nuevo. Entonces puedes combinar
dos condiciones aquí, esta condición de
punto de ratón conmovedor con esta distancia a Avery
por debajo de 50 condición Este de aquí es el segundo operante, y este es el primero Sólo si estos dos son ciertos, entonces mostramos esta burbuja de
pensamiento, y de lo contrario, esta
burbuja de pensamiento desaparecerá.
33. 33 Recoger la clave: Ahora que podemos mostrar aquí
una descripción del
objeto de nuestra clave. Necesitamos poder que
el jugador lo
recoja y
lo ponga en el inventario. Vamos a probar esto. Cuando el
jugador hace clic en la clave, y necesitamos cambiar
a la clave, por supuesto, para eso, entonces algo
debería suceder. Vamos a eventos cuando
este spride hizo clic, y luego tenemos que
hacer algo Primero, necesitamos una
nueva variable aquí. Para todos los sprts para que se
pueda acceder a él en todas partes, no sólo en el spride Lo llamamos clave recogida, y esto será cero si
la llave
aún no fue recogida y se establecerá
en una en este caso aquí cuando
esta novia haga clic, pero también hay que
considerar esto si aquí Entonces necesitamos esto si toca el puntero del mouse
y la distancia dos, no
tocamos específicamente el puntero del mouse. Creo que eso no es necesario
porque la distancia a Avery es esta
condición importante que aquí necesitamos Así que vamos a duplicar este click
derecho sobre esta
distancia a Avery, y lo ponemos aquí primero Y necesitamos un control aquí si entonces Entonces si distancia a Avery, cuando se hace clic en el sprite,
cuando se hace clic en la clave, es menor que 50,
podemos recogerlo, y establecemos Recogió dos o uno, y al principio, necesitamos fijarlo, por supuesto, al
valor predeterminado de cero aquí. Bien, intentemos eso. Aquí tenemos la visualización del valor de
la variable aquí. Clave cogió cero al
inicio, eso es correcto. Y tenemos que intentar dar click
en la clave en este punto. No es posible. Eso está
bien. Eso es lo que queremos. Y ahora podemos ver que es una llave, y ahora deberíamos poder recogerla y aquí
está funcionando. Entonces nuevamente,
reiniciemos el juego. Intentamos dar click sobre la clave. No está funcionando, y en
cuanto se muestre una clave, podemos hacer clic en ella
y recoger la clave. La variable se establecerá en uno. ¿Qué más tenemos que hacer aquí? Tenemos que ir a looks y ocultar primero
el sprite para que desaparezca
aquí de la pantalla Entonces probemos esto
yendo por aquí. Bien. La llave, es una llave, y ahora puedo pinchar sobre ella, y ahora se ha ido, muy bonito. Esta es la parte de recoger
y está funcionando bastante bien. Ahora necesitamos tener
un inventario donde exhibamos todos los
artículos, por ejemplo, esta llave aquí que
actualmente están en el inventario, en el bolsillo, por ejemplo, o tal vez tenga una mochila,
algo así. Entonces necesitamos mostrar todos
los artículos en este momento, solo
tenemos un
artículo aquí, la clave, y esto debe
mostrarse en el inventario.
34. 34 Mover la clave del inventario: Ahora queremos poner nuestra llave
recogida en el inventario. Entonces hagamos un inventario. Debería ser algo así como una mochila o
algo así. Pero en la práctica, creo que es sólo un rectángulo con un color de
fondo, y eso es todo. Vamos a pintar un nuevo sprite. Así que elige pintar aquí, y luego solo hacemos
un rectángulo aquí. Entonces así, ponlo
en el medio aquí. A lo mejor eso es un
poco demasiado grande. Entonces tal vez algo como esto. Ahora no es el color
correcto, supongo. Cambiemos eso a
casi blanco, diría yo. Entonces brillo un
poco más bajo que eso, eso debería estar bien. Podemos retocarlo más tarde. Y además la posición y
el tamaño no es correcto. Entonces pongamos el tamaño aquí a ocho, a ver cómo se ve eso. Y luego vamos a moverlo
al fondo aquí, y podemos ver que Avery o sprite aquí está
un poco demasiado Así que vamos a moverla. Vamos a entrar en su código. Y cuando establecemos aquí la posición
inicial, tal vez
podamos fijarla 250 -50 Veamos cómo se ve esto. Ahora un poco menos que eso. Un poco más B
preciso. Empecemos de nuevo. Sí, tal vez sólo un
poquito más como 42, y ahora tenemos la posición
correcta, supongo. Así que vamos a controlarla un poco. Eso se ve bien. Y también esto puede ser un
poco más pequeño, tal vez. Entonces solo cambiamos el tamaño aquí, vamos a la flecha aquí y luego cambiamos el
tamaño en los bordes aquí, algo como esto, o incluso más pequeño tal vez
algo como Creo que está bien, así que lo
dejamos así. Por ahora, esto es
solo el fondo nuestra mochila, digamos, necesitamos mover la llave, que está aquí a este inventario si el
jugador la recoge. Aquí tenemos el código
cuando el jugador
recoge la llave ahora en
este momento la escondemos, pero en lugar de ocultarla, deberíamos moverla
a la nueva ubicación dentro de la mochila aquí. Vamos a deshacernos de la
piel y en su lugar, tomamos la llave que es
invisible en este momento. No lo hemos inicializado
para mostrar. Entonces, para estar seguros, hagamos esto. Al principio, mostramos nuestra tecla presionándola
aquí en el programa, y luego es visible aquí. Detengamos el juego,
y luego movemos la llave por aquí
al inventario. A lo mejor aquí es un buen lugar. Y luego vamos al
movimiento y vamos a x y, y esta es la posición
actual aquí. Simplemente arrastramos eso aquí
hasta cuando el sprite hizo clic. Ahora lo que tiene que
pasar es o lo que va a pasar es que si el
jugador hace clic en la llave, se moverá de aquí a aquí, así que está en la mochila. Y además esta llave
recogida se establece dos, una. Podemos usar este valor
variable aquí, podemos usar en la puerta si
el jugador golpea la puerta, así que empecemos de nuevo. Y el problema aquí es que no hemos establecido una posición
inicial, así que es por eso que la
clave en este momento, podemos hacer clic en la tecla
aquí en el sprite, y luego parpadea hacia arriba Mira aquí, y
puedes ver que parpadea. Entonces está por debajo de nuestro
inventario derecho. Entonces pongamos ese sprite
en la capa posterior. Entonces cuando vaya clicked
Luego bajo miradas, tenemos esto ir a la capa frontal y esto va
a cambiar a capa trasera aquí Esto va a estar bajo la
llave ahora, debería ser. Veamos dónde está la llave. No, todavía no lo es. A lo mejor también necesitamos, tenemos
esto ir a capa trasera aquí. Deberíamos cambiar también
para ir a la capa frontal. Eso fue un error.
Aquí tenemos la llave, pero no está en la posición
correcta, así que tenemos que volver a colocarla a este lugar debajo de la cama.
Vamos a moverlo ahí. Algo así
aquí. Eso se ve bien. Ir dos x y debe ser
la posición correcta, y esta es la
posición inicial de nuestra llave. Vamos a probarlo.
Ve a la llave, y luego trata de recogerla. Ese es el problema aquí. Aquí no está en la capa
correcta, se muestra sobre ay aquí. Eso es un problema, pero
podemos resolverlo más tarde. Y también tenemos un problema aquí porque la puerta está cerrada, debo haberla cerrado
mientras sonambulismo, que es el color que es
el mismo que la puerta aquí Entonces eso también es un problema. Bueno, ahora vamos a
hacer clic en el Sprite, y esto al menos funciona Por lo que esta llave se traslada a esta ubicación aquí
en el inventario. Bien, primero arreglemos este problema de
capa. Entonces aquí, claro, tenemos que volver a la parte de atrás
porque tenemos que
asegurarnos de que la clave está detrás de nuestro personaje principal aquí. Pero entonces si lo
trasladamos al inventario, tenemos que
asegurarnos de que también
va a la capa superior
a la capa frontal. Así que cada vez que lo
movemos aquí, solo podemos ir a la
capa frontal. Entonces probemos eso. Entonces ahora está detrás de Avery. Todo. Aquí está
este problema de color, pero hagamos clic en él y lo
tenemos en nuestro inventario. Vamos a deshacernos de
este problema de color. Entonces, obviamente, la
llave tiene un color, que también es el
color de la puerta. Entonces necesitamos cambiar el color de la puerta o
el color de la llave. Entonces cambiemos este color
aquí en nuestro telón de fondo. Así podemos acercarnos
un poco aquí. O tal vez sea más fácil cambiar el color de la
llave, así que vamos a comprobarlo. Sí, aquí es un color, todo un color, así que quizá
podamos seleccionar todos aquí. Seleccionar todo es comando A o Control A en Windows y
en Mac es comando A. Así que solo selecciona todo, y podemos elegir un relleno
diferente aquí. A lo mejor es una llave verde,
algo así. Entonces brillo un poco
más oscuro, tal vez esa duración, un poco menos y un poco
diferente en el color, no muy bonito, pero
espero que haga el truco. Ahora no es muy agradable aquí. El contraste no es muy agradable. Así que vamos a hacerlo aún
más oscuro. Ahora es mejor. Aquí tenemos una llave verde. Entonces probemos esto. Todavía
hay una colisión. Oh, lo he seleccionado aquí y
accidentalmente lo he movido
con unas teclas de cursor. Entonces debemos deshacer eso. Cambiemos el código y
luego reiniciemos el juego. Bien, entonces no obtenemos este color o este mensaje sobre la puerta, así que
todo bien. Entonces vamos a hacer clic en la
clave, y aquí está. Bien, ahora tenemos que ir
a la puerta, y por supuesto, sigue cerrada porque no hemos implementado algo
para abrir la puerta. Hagámoslo en el siguiente video.
35. 35 Desbloqueo de la puerta: Ahora que tenemos la llave en nuestro inventario o que el jugador tiene la
llave en el inventario, podemos abrir la puerta, al
menos teóricamente, el jugador podría abrir la puerta, y esto es lo que
implementamos en este video Es bastante fácil. Ya
tenemos la variable aquí, set key picked up to one, así que solo podemos probar para eso. Y para ello, tenemos
que ir al jugador. Y aquí tenemos la parte de color
conmovedor, y en caso de que el jugador toque el
color de la puerta, dice
Avery, la puerta está cerrada Debo tener y así sucesivamente. Y esto es lo que
necesitamos cambiar. Entonces necesitamos verificar o
insertar un cheque aquí. Entonces vayamos al control. Y entonces esto si, y
tenemos que comprobar la variable, por
supuesto, para la igualdad. O mejor que tomemos no si
la n sino si entonces else, si entonces else y
esta comprobación de igualdad. Si es cero, entonces
necesitamos la variable,
si la clave cogida es igual a cero, entonces podemos decir que la
puerta está cerrada con llave. Pero si la clave recogida no es cero, sino una, podemos dejar que el
jugador hable otra cosa. Saluda por 2 segundos
o tal vez sean 3 segundos, y la dejamos decir. Ya que ahora tengo la llave, puedo abrir la puerta. Ahora puedo abrir la puerta
y finalmente salir de mi habitación. Bien. Los segundos
deberían ser suficientes. Y ahora colocamos esto de nuevo
en este si tocando color, este color marrón de la
puerta aquí. Vamos a probar eso. Primero recogemos la llave, o intentemos primero no tener la llave y luego tocamos la
puerta, las puertas cerradas. Eso está bien. Eso está bien. Ahora tenemos que
recoger la llave aquí. Acércate un poco más. Ahora podemos recoger la llave, y entonces deberíamos
poder abrir la puerta. Ya que ahora tengo la llave, puedo desbloquearla y
finalmente salir de la habitación, o puedo desbloquearla. Eso es mejor. Lo que hemos visto es que Avery debe
dejar de caminar Por eso necesitamos cambiar el disfraz
a Avery B al
disfraz de pie para duplicar, y luego también lo hacemos antes de decir aquí esta
frase A ver si esto funciona.
Vamos a por la llave. Ahora sigue caminando. El problema es que esto
aquí hace que el programa se atasque o que el script de aquí
se atasque durante 3 segundos. Entonces esta animación por
aquí sigue progresando, así que por eso esto no funciona Pero lo que podemos hacer es que podemos establecer podemos deshacernos de eso aquí, y podemos establecer la
variable walking a cero, establecer Aquí set walking 20, entonces esta animación aquí en este código aquí no
debería progresar. Probemos esto. Primero
consiguiendo la llave. Eso es lo suficientemente cerca. Ahora tengo la llave y Avery se queda quieta y
dice la frase Eso es lindo. Pero claro, también
necesitamos salir de la
habitación en realidad ahora e ir a la habitación contigua y lo
haremos en el siguiente video.
36. 36 El menú de acción: Antes nos encargaremos
de los vestuarios y Avery saliendo de la habitación
yendo a la habitación contigua Mejoraremos un poco nuestro
inventario para que puedas hacer clic en cualquier artículo del
inventario en este momento, es solo la clave y luego
obtener un menú con comandos que puedas o con acciones que
puedas usar en este artículo específico. Entonces en este caso, es nuestra clave. Para eso, estamos creando
un nuevo sprite aquí. Primero renombramos este sprite aquí porque es
solo frío Sprite uno, simplemente lo
llamaremos
n tree así Entonces otra cosa,
tenemos que arreglarlo. Empecemos de nuevo un juego. Sólo tienes que ir a la llave, y ahora lo que ves por aquí, si hago clic en la tecla, ves un destello aquí, y esta es la burbuja de pensamiento. El problema es
que la burbuja de pensamiento es visible aquí cuando la clave se
mueve al inventario. Tenemos que ocultar la
burbuja de pensamiento si movemos la llave. Vamos a esto si
toca el puntero del mouse. Piensa que es una clave y
si no pienses en nada. Aquí, estamos mostrando la burbuja de
pensamiento, si la p, el puntero del ratón está
tocando la tecla, y luego si se hace clic en el
sprite, necesitamos ocultar la burbuja de
pensamiento Simplemente dulicar esto no
creo nada. Antes de mudarnos aquí
a esta nueva ubicación, no
pensamos en nada y de esta manera, ya no debería
haber flasheo. Vamos a probar eso. Deténgase aquí, y luego haga clic en la tecla y luego
esto ya no parpadea. Esto es ahora, así que vamos a crear
un nuevo sprite para nuestra acción. Esta acción
será la acción de uso para que podamos usar la clave. Y luego si haces clic en el uso, la puerta debe abrirse y Avery desbloquearse y Avery puede
ir a la habitación contigua Dibujemos un nuevo sprite aquí, y necesitamos algún
tipo de rectángulo Supongo, pongamos aquí
un rectángulo. El relleno debe ser blanco, así, y podemos dejar
el borde aquí, negro. Eso está bien. Pero es
demasiado grande, claro. Primero escribamos el texto aquí. Se usará texto, y por supuesto, necesitamos poner el relleno aquí negro
para que
podamos leer el texto. Entonces movemos esto aquí y luego seleccionamos de nuevo el
rectángulo, haciéndolo un poco
más pequeño aquí, todavía demasiado grande. Entonces tal vez algo como esto, y el sprite, por supuesto,
es demasiado grande en este momento Entonces digamos que es 60%. Eso parece estar bien. Entonces movamos eso aquí a este lugar para que simplemente
aparezca aquí cuando se
haga clic en la clave en el inventario Vamos al código. Creo que la apariencia
aquí está bastante bien. Eventos, cuando se hace clic, tenemos que ocultarlo primero porque no
se debe mostrar al inicio Elige esconder y muévelo aquí. Probemos esto, y ya no está. Eso es bueno. ¿Cuándo
debería mostrarse? Debe mostrarse cuando se hace clic en
la clave, pero no cuando
se hace clic en la clave aquí, sino si la clave está
en el inventario Vamos a la llave. Aquí tenemos cuando
este sprite hizo clic, y aquí tenemos que decirle a este
nuevo sprite que Y ya hemos usado
algo así,
cómo decirle a otro
sprite que haga algo Y esto lo podemos hacer con la
difusión de mensajes. Aquí tenemos transmitido el
mensaje uno, y tenemos que poner eso aquí y no
lo llamemos mensaje uno, sino que lo llamaremos
acciones de visualización y de esta manera. También puede ser utilizado
por un segundo botón, un segundo sprite, que
ejecutará una acción Este caso, solo tenemos uno, y vamos a cambiar el nombre de este aquí
para usarlo así. Esta clave necesita decirle al
sprite de aquí que se muestre, así que transmitimos, el mensaje, y vamos al
uso sprite Y aquí necesitamos
recibir ese mensaje. Cuando reciba acciones de visualización, luego mostrar Así que de esta manera con
el clic en la tecla, se mostrará. Intentemos eso,
y está funcionando. Así que cada vez que hago clic
aquí en la clave, esto se muestra aquí. Por supuesto, esto no es correcto. No debería mostrarse si la clave no está en el inventario. Entonces eso es lo que necesitamos
implementar ahora. Y esto es un simple si. Entonces vamos a las variables
aquí, clave recogida. Esta es la variable
que necesitamos verificar, así que ve a operadores. Si la clave recogida es igual a uno, y ahora necesitamos un control
if si entonces y aquí si k
recogido es igual a uno, entonces podemos hacer la
transmisión aquí. A veces no es tan fácil
poner el if alrededor de cuadras aquí. Yo solo lo hago así, y luego me muevo el segundo
si aquí abajo este si. Por favor asegúrate de
tenerlo así, no anidado porque
entonces también solo se ejecutaría o
solo se verificaría aquí si la clave
recogida es igual a una, y eso es,
por supuesto, no correcto Es necesario ponerlo
debajo de esto primero si. Asegúrate de hacerlo así. Entonces, si la clave recogida es igual a uno, entonces podemos transmitir, y luego se pueden mostrar
los comandos de uso. Y cuando el usuario hace clic en el uso, podemos simplemente ocultarlo, tal vez. Entonces vamos a mirar, por
supuesto, y escondernos, y luego necesitamos un evento cuando este sprite
haga clic en ocultarlo Vamos a probar eso. Pasamos a la llave para que
podamos recogerla. Ahora lo tenemos en el inventario, hacemos clic en la tecla, se muestra
el comando use, se muestra
el
botón de acción de uso y hago clic en el botón y se
ha ido, ya no se muestra. Esto funciona. Pero ahora, por supuesto, necesitamos implementar
algo que tú o el jugador necesitan hacer clic
aquí en el botón de uso, y solo entonces la
puerta se puede desbloquear, y solo si Avery está
realmente cerca de la puerta,
entonces el jugador puede
desbloquear la puerta con una llave mediante este uso de llave de uso, y luego la puerta se
puede desbloquear, pero solo si Avery
está cerca de la Entonces vamos a implementar eso
en el siguiente video.
37. 37 Desbloqueo de la puerta con la acción de uso: Por el momento, la puerta
se abre en cuanto se recoge
la llave y Avery golpea la puerta o
toca la puerta, luego se abre la puerta, y queremos cambiar eso La llave es necesaria para
ser utilizada en la puerta. Entonces comencemos de nuevo el juego. Camina hasta la
llave, recójala. Y en este caso, no
haces nada, claro, porque Avery no está
tocando la puerta Y si ahora toca la puerta, se desbloquea
automáticamente, pero queremos que se desbloquee
cada vez que se presiona el uso de la llave cuando Avery
toca la puerta Entonces, ¿qué tenemos que
hacer para eso? Tenemos que ir a nuestro sprite de
uso aquí. Y cada vez que se hace clic en este
sprite de uso, lo estamos ocultando. Eso está bien. Pero también estamos transmitiendo
un nuevo mensaje. Entonces aquí difusión, no, necesitamos un nuevo mensaje aquí, y este nuevo mensaje se
usará clicked Y esto tiene que ser,
por supuesto, recibido por Avery. Vayamos a Avery, y
luego cuando reciba, use clicked, y
ahí es cuando necesitamos
verificar si Avery
toca Así que vamos a introducir una
nueva variable aquí, hacer una variable sólo
para esta novia, y la llamamos tocar puerta, y la pondremos cada vez que se toque
la puerta. Entonces en este caso, lo
estamos configurando puerta que toca
uno, y en este otro caso, si no se toca la puerta, estamos poniendo por
supuesto a cero. Vamos a comprobar si esto funciona. Vamos a la puerta. Tocar puerta es uno, y si
me alejo de la puerta, es cero. Así que eso funciona. Y ahora tenemos que checar aquí en uso clicked cuando
recibo uso clicked, eso significa que el
usuario ha hecho clic o el jugador ha hecho clic en el uso
en el Upright, entonces necesitamos verificar si
estamos Entonces hagamos un si entonces else. No sé si
necesitamos el caso, pero hagámoslo con eso. Y luego cheque de igualdad, y ahora necesitamos nuestra variable. Entonces tocar puerta, si
tocar puerta es igual a uno, Entonces estamos tocando la puerta y estamos recibiendo uso clicked Y en este caso, podemos decir, como ahora tengo la llave, puedo desbloquearla. Entonces movamos eso de
aquí a esto si entonces, y esto debería decir
esta frase aquí. Pero el problema está
en esto para evalue, estamos diciendo nada
aquí todo el tiempo Así que eliminemos eso
temporalmente y luego iniciemos de
nuevo el juego para estar seguros. Al hacer clic en el uso
ahora no debería hacer nada. Entonces eso está bien. Entonces ahora
necesitamos tocar la puerta, tocar la puerta es una, y ahora hacemos clic en el uso, y esto debería mostrarse. Esta la puerta está Desbloqueada ahora. Eso parece funcionar, muy bonito. Reiniciemos el juego, y caminemos hacia la puerta. La puerta está cerrada se muestra, así que eso es k dos. Vayamos sin tocar, y ahora este mensaje, esta burbuja aquí se queda. Entonces eso es un problema.
Así que solo podemos volver a
ponerlo aquí si no
tocamos en el caso contrario, solo
estamos borrando
la burbuja aquí A ver si esto funciona. Empecemos de nuevo,
recogiendo la llave y luego hacer uso de ella
mientras tocamos la puerta. Y esto está funcionando. Y también
puedo alejarme
de la puerta. Y si reiniciamos el
juego y luego solo vamos a la puerta,
debería mostrarse. Esta puerta está cerrada, así que eso también está funcionando. Eso está bien, como es. Pero claro, tenemos que pensar otros artículos que
entran en el inventario. Y esto es fue asumiendo que
la clave se selecciona aquí alguna manera para que la
recojamos y luego haga clic en la clave
y luego haga clic en usar. Pero si tuviéramos otro ítem aquí, digamos que tenemos
algo una manzana tal vez, y hacemos clic en el Apple
y luego hacemos clic en usar, entonces esto no funcionaría porque todo está asumiendo que este uso se hace clic en la clave Tenemos que generalizar
aquí un poco. Si tenemos más de un
artículo aquí en nuestro inventario, necesitamos verificar en qué
artículo se hizo clic y para
qué artículo es esta acción de
uso Yo, por ejemplo, se usa
una manzana, cada necesita comer la manzana y no abrir
la puerta, claro. Eso es lo que no está funcionando en esta situación tan especial
aquí como la tenemos. La lógica es un
poco demasiado específica aquí. Tenemos que generalizar
la lógica aquí. Pero primero, vayamos
a la habitación contigua, y ahí podríamos tener un segundo artículo que
podamos recoger, y tal vez sea tal vez sea
la cocina, la habitación contigua, y ahí podemos encontrar una manzana y
recogerla y usar la manzana.
38. 38 Bloque de habla personalizado: Entonces
falta una cosa más aquí en esta pantalla. Si volvemos a empezar un juego, Entonces vamos aquí,
la puerta está cerrada con llave. Primero tenemos que recoger la
llave. Todo está bien. Pero el problema es que si
luego recogemos la llave, y la usamos, y no
estamos tocando la
puerta, entonces no pasa nada. Este es exactamente este caso aquí, y en este caso, tenemos
que decir algo más. A lo mejor digamos que doblamos esto, y luego decimos algo así como, no
puedo usar esta clave aquí, y esto puede ser por
2 segundos aquí. Hagamos esto, recoja la llave, intentemos usarla sin
tocar la puerta. Y no funciona.
Por qué no funciona. Es porque aquí lo
estamos diciendo, pero el problema está aquí
en nuestro bucle para siempre, estamos en este caso,
no tocando el color. Entonces no tocar la
puerta y en el caso s, aquí no
estamos diciendo nada. Entonces por eso se
borra de inmediato la burbuja del habla.
Ese es el problema aquí. Para resolverlo, quiero
refactorial nuestro código. Refactorizar que teníamos esto
ya es cambiar el código, pero no cambiar
la funcionalidad En este caso, es
como si tuviéramos una flecha, tenemos un bug, por así decirlo, pero aquí no estamos resolviendo esto
en esta estructura, sino que primero hacemos una refactorización y luego podemos resolver
con esta refactorización, podemos resolver fácilmente Hagamos esto. La idea es
tener aquí un bloque personalizado. Ya lo hicimos, hacemos un blog, y a este bloque lo llamamos, habla. También podemos hacerlo así, hablar en minúsculas, y lo que también podemos
hacer es agregar entradas aquí. Entonces podemos agregar un
número o entrada de texto. Podemos agregar una entrada de bleen
o podemos agregar una etiqueta. Entonces, centrémonos en este
primero, agreguemos una entrada. La primera entrada
será el mensaje real. Entonces lo llamamos mensaje, y necesitamos una segunda
entrada a este bloque, que se llama duración, y esta es la duración de
la burbuja de voz que muestran las burbujas de
voz. Entonces tenemos dos parámetros aquí. Entonces primero está el mensaje
que se debe pronunciar, y el segundo es la duración. Así que vamos a hacer clic en, y ahora
tenemos nuestro bloque personalizado aquí. Entonces tenemos esta definición Así que
vamos a moverlo aquí abajo. Entonces tenemos suficiente
espacio para implementarlo. ¿Cómo lo implementamos?
Podemos usar nuestros parámetros aquí. Tenemos mensaje y duración, y podemos usarlo
como una variable. Podemos arrastrar esto
aquí y ponerlo en algún lugar donde también se permitan
variables. Hablemos primero aquí. Así es como se llama también, y vamos a buscar y
conseguir que esto diga hola aquí. Pero aquí no
queremos saludar, pero queremos decir mensaje. Lo que se suministre aquí
como primer parámetro, y veremos
cómo hacerlo
se establecerá aquí, se hablará. Llamemos a este bloque aquí
con este parámetro de mensaje. Entonces aquí, tenemos decir que no puedo
usar el esquí aquí por 2 segundos, y estamos sacando esto de la ls y vamos a mis cuadras, arrastramos el habla
aquí al otro. Y ahora podemos suministrar
dos parámetros. El primero es, como
dije, el mensaje, así que copiamos esto hasta aquí, así que este será el mensaje, y ahora podemos probarlo. Así que solo consigue la llave. Y aquí usamos la llave. Entonces tal vez la hayas visto. Puedo hacerlo de nuevo, e, y ya ves la burbuja, la burbuja del habla, pero aquí se borra de
inmediato ¿Por qué es eso? ¿Por supuesto?
Debido a esto decir aquí. Podemos deshacernos de la opinión. Esto dice que nada borrará o borrará la burbuja del habla aquí. Entonces nos deshacemos de eso
y lo intentamos de nuevo, e, y ahora esto se queda, claro, se queda
para siempre, por así decirlo, o al menos hasta que haya
otro mensaje que hablar. Entonces ella siempre está
hablando de esto ahora. No puedo usar esta clave aquí. Pero podemos por supuesto, usar la clave aquí y ahora
ella está diciendo esto aquí. Y ahora no está
diciendo nada. Aquí, decimos ya que ahora
tengo la llave, puedo desbloquearla y
finalmente salir de mi habitación, y esto se dice por 3
segundos y después de 3 segundos, se borra
esta burbuja del habla. Por eso está
desapareciendo aquí. Pero de todos modos, tenemos que
tener en cuenta la duración aquí para que también podamos reemplazar esto con
nuestro nuevo bloque de hablar. Hagamos esto. Para
que esto funcione, tenemos que esperar Así que esperamos segundos, y estos segundos aquí
son la duración. Así que vamos a arrastrar la duración aquí, el segundo parámetro a esperar. Y luego después de haber esperado el tiempo que se suministró
aquí en los parámetros, podemos decir nada. Parece decir y luego borrar el
texto aquí, así que está vacío. S mensaje, espera la duración que
tenemos de la persona que llama aquí, y luego no digas nada. Aquí, podemos decir 2 segundos
tal vez, y para éste, podemos arrastrar eso
aquí y primero
copiamos este mensaje al
primer parámetro aquí. Y entonces el segundo
será de 3 segundos aquí. Así que ahora podemos
deshacernos de éste y reemplazarlo con
nuestro bloque personalizado. Probemos esto.
Consigamos la llave, y luego la podemos usar aquí, y deberíamos no puedo
usar esta clave aquí, y luego está desapareciendo Entonces eso es esto de aquí.
Pero ahora vamos a la puerta y aquí
podemos usar la llave. Ya que ahora tengo la llave, puedo desbloquearla y
finalmente salir de mi habitación. Eso está bien. Todo bien. Vamos a deshacernos de esto decir aquí y reemplazarlo
también con nuestro bloque. Arrastramos eso aquí, habla. El primer parámetro
es, por supuesto, nuestro texto, y el segundo, tal vez
podamos decir, esperemos 3
segundos porque es una frase larga y
necesitamos 3 segundos para leerla. El jugador promedio podría leerlo en 3 segundos. Probemos esto. pasar por aquí,
si estamos tocando la puerta, la puerta está cerrada, y entonces Avery sigue
caminando, como pueden ver, y no puedo mover a Avery cuando este mensaje
se muestra No puedo moverla. Si
entro más por la puerta, también
estoy teniendo problemas
para salir de la puerta. Entonces esa no es una buena experiencia de
usuario, supongo. ¿Cuál es
el problema aquí? Aquí no está reaccionando a
mis teclas de flecha. ¿Por qué es eso? Porque
estamos esperando aquí. Si llamamos hablar, estamos esperando
esta duración,
y si son 3 segundos aquí,
entonces estamos esperando aquí, estamos bloqueados aquí,
3 segundos, y es por eso que todo
este bucle para siempre
aquí no continúa,
y no podemos entrar en la flecha
si izquierda presionada, si tecla, flecha derecha presionada. Esto no es posible
porque está atascado por aquí, y hay que esperar a que la
duración continúe aquí. Eso no es lindo, pero
hay una manera de sortear eso. Podemos hacer que sea asincrónico. Es decir, no
tenemos que bloquear aquí, pero aún después de la duración, podemos eliminar la burbuja del habla
aquí. ¿Cómo lo hacemos? Estamos trabajando con mensajes de
difusión. Pasemos a los eventos y creemos un nuevo mensaje de
difusión. Si decimos el mensaje,
entonces es, por supuesto, exhibido, y luego tenemos que
esperar en otro evento. Aquí, tenemos un nuevo mensaje
y lo llamo eliminar discurso, y esto nos va a hacer
la espera. Esto va a hacer esto aquí. Pero aquí solo podemos transmitir. Para que entonces podamos reaccionar ante este
mensaje con cuando reciba. Cuando reciba este nuevo mensaje de
eliminación de voz, podemos esperar la duración y luego no decir nada.
Probemos esto. Parece estar funcionando, pero no del todo porque la burbuja del habla se va de
inmediato. Entonces, ¿por qué es eso? Es porque esta duración aquí
no está tomando en cuenta, pero siempre es cero aquí. Porque este es un parámetro
aquí en esta función, en este bloque personalizado, pero no se sabe aquí cuando
recibo remove speech. Tenemos que
transferir de alguna manera este valor aquí, este valor de duración sobre esto cuando
recibo manejador aquí Cómo lo hacemos con
una variable, claro. Hagamos una nueva variable, y la llamamos eliminar
tiempo de voz o digamos duración, o llamémosla duración del
habla. Es más corto, no para
todos los sprites porque
no necesitamos eso para
los otros sprites solo para este sprite solamente, y luego tenemos esta
nueva Y claro,
tenemos que fijarlo aquí. Entonces cuando lo consigamos, duración del
habla, podemos simplemente configurarlo aquí, establecer la duración del habla dos duración al segundo parámetro aquí. Y ahora podemos usarlo también aquí. Entonces nuestra
variable de duración del discurso necesita ir aquí, y esto lo podemos deshacer. Y después de estos segundos de
duración del discurso, aquí
estamos borrando esta
burbuja del habla. Vamos a probar eso. Ahora se borra
después de los 3 segundos, pero no si estamos tocando, si estamos tocando,
siempre se volverá a hablar, así que por eso
no está desapareciendo Pero creo que está bien. Entonces, si no estamos
tocando la puerta, entonces esto desaparece
después de 3 segundos. Y lo que es bueno aquí es que todavía
podemos controlar
al personaje
aunque se
muestre la burbuja del habla. Esto es muy. Aquí siempre tenemos el control. Y podemos mover a Avery todavía, aunque mostramos
la burbuja del habla Y
aquí tenemos el control de la duración, cuánto tiempo se mostrará. Así que eso es muy bonito, y tenemos este bloque personalizado hablar aquí
este bloque personalizado hablar que podemos usar
en todos estos lugares. Y si queremos
cambiar algo, la funcionalidad, si
queremos mejorar en esto, entonces podemos simplemente cambiar
este bloque personalizado aquí, y luego esto se
cambiará para todas las personas que llaman Entonces aquí lo estamos usando. A ver si tenemos
otra opinión aquí. No, no lo hemos hecho, así que está bien, así que hemos reemplazado todas
las ocurrencias de decir con nuestro nuevo bloque personalizado
aquí. Eso es muy bonito. Hemos definido un bloque personalizado
con dos parámetros aquí, mensaje y duración, y ambos
parámetros se utilizan aquí. Lo primero que hacemos aquí es establecer esta variable local a la duración que
se suministró aquí. Entonces estamos diciendo el mensaje que también se suministró aquí, y aquí estamos haciendo
esta transmisión, y estamos haciendo esta
transmisión porque aquí, esto ya no está bloqueando nuestra función aquí,
nuestro bloqueo aquí. Entonces esto es completamente
no bloqueante aquí. Es solo hacer una transmisión y aquí también hay
otro comando. Difundir y esperar,
y esto bloquearía. Entonces podemos probarlo aquí. Entonces estamos moviendo eso aquí, y luego quitamos el discurso. Si lo hacemos así,
quitamos el habla y espera, verás
que ahora sigue bloqueando. Entonces esa no es la forma
correcta de hacerlo. Pero aquí estamos bloqueando
nuestro bucle forever y aquí
no podemos manejar todos los comandos de
teclas. Entonces por eso no es
la solución correcta aquí, así que necesitamos esta transmisión
solo sin esperar. Porque no está
esperando aquí a que este receptor termine. Es simplemente continuar
este bucle para siempre aquí, y todavía podemos controlar a Avery Ese era nuestro nuevo
bloque personalizado con parámetros, y esa es una manera muy
agradable de hacer el código sea más mantenible
y mejor estructurado, y tienes menos esfuerzo
para hacer cambios aquí De esta manera, esta es una buena
práctica en la programación para tener una funcionalidad que se utiliza en muchos lugares en una función, o en este caso,
es un blog personalizado. Puedes suministrar a este
bloque personalizado parámetros aquí, y de esta manera podemos hacer cada discurso sin dejar de ser
capaces de controlarla.
39. 39 Cambiar la habitación: Cambiemos las habitaciones. Y para ello,
necesitamos, por supuesto, un nuevo telón de fondo, así que
vayamos al escenario. Y aquí tenemos los telones de fondo. Sólo tenemos uno por el
momento, la habitación dos. Y ahora estamos
subiendo otro. He generado una
imagen de cocina o cocina con la ayuda de IA con
copiloto, respectivamente D tres. Aquí está, ve a
elegir un telón de fondo, y luego sube telón de fondo. Elige una imagen aquí
desde tu disco duro. He hecho éste
con la ayuda de la IA y podemos usarlo para
este juego. Aquí está. Necesito
redimensionarlo un poco. No tiene el tamaño correcto. Control A o comando A, y después hemos
seleccionado la imagen, y luego podemos
estirarla un
poco y también moverla por aquí,
donde, por ejemplo,
la silla y la mesa no son visibles, ya
no visibles aquí, o tal vez solo esta
parte de la silla, y luego podemos
estirarla un poco. Creo que eso es aceptable. Pero claro, puedes
generar el tuyo propio o pintar tu propio cuadro de una cocina o de donde
quieras obtenerlo. Lo he creado con la
ayuda de la IA. Así puede usted. Pero también puedes, como dije, pintarlo tú mismo o descargarlo de una fuente
diferente y subirlo aquí así
subir telón de fondo y luego simplemente elegirlo de
tu selector de archivos Este fue el buscador porque
estoy en un MC aquí en Windows, tienes el explorador de windows. Para que puedas
subir aquí imágenes. Puede ser un JPAC o PNG
o también puede ser un SVG. Entonces ahora tenemos el
telón de fondo aquí como segundo. Entonces el primero será este. Y, por supuesto, al
inicio del juego, tenemos que
fijarlo en el primero. Así que vamos a entrar en el
código de la etapa aquí. Para que puedas cambiar de
telones de fondo a código. Y aquí también podemos tener
este evento cuando Go clicked, y aquí cambiamos al
primer telón de fondo,
cambiar telón de fondo dos Cocina ahora, recámara dos, así que eso es correcto, así que siempre volvemos a nuestra primera habitación aquí. Y claro, si
hemos resuelto el rompecabezas
para la primera habitación, tenemos que cambiar de
fondo aquí Entonces vamos a Avery, y este es el caso donde se resuelve
el rompecabezas, ya que
ahora tengo la llave, puedo desbloquearla, y finalmente salir de mi habitación Y después de eso, Avery puede cambiar de habitación
e ir a la cocina Y eso es muy fácil.
Cambia el telón de fondo a la cocina. Y así, tenemos el
cambio de habitación. Entonces probemos esto.
Primero resuelve el rompecabezas. Haga clic en la clave. Utilízala. Eso es muy
pronto porque no estamos en la puerta o no
frente a la puerta, y ahora deberíamos usar la llave, y luego vamos a la segunda
habitación, que es la cocina. Aquí podemos mover a Avery
como antes, y ella puede explorar
la cocina aquí Entonces eso no es problema. Pero claro,
necesitamos un objeto aquí, y necesitamos otro rompecabezas aquí, por
supuesto, para resolverlo. Para salir de la casa, tal vez, debería ir a tal vez la escuela
y salir de la casa. Debería encontrar
algo para comer, para llevar con ella a la escuela, tal vez una manzana, o tal vez quiera llevarse su mochila
escolar con ella. Entonces eso es lo
que tenemos que pensar aquí. Entonces primero, necesitábamos
cambiar el telón de fondo, y esto se hace muy
fácilmente con este bloque, cambiar telón de fondo a cocina. Entonces también podemos pasar al siguiente telón
de fondo. Esto también es lo que podríamos hacer. Pero creo que
aquí es más fácil hacerlo así. Entonces, para ir a un telón de fondo específico porque es posible que desee
volver a la otra habitación, y luego tenemos que ir
a una habitación específica. Entonces, deshagámonos de eso. Y solo cambia el
telón de fondo a la cocina. Pero aquí podríamos tener que
hacer otra cosa. Y también, si queremos
salir de esta sala, tenemos que hacer otra cosa. Y es por ello que debemos
definir aquí un nuevo bloque, que llamo ir a Habitación. Y aquí podemos, por ejemplo, tener un número o entrada de texto, que será la habitación a la que acudir. Entonces hagámoslo así y
definamos ir a la habitación
aquí, cambiar de telón de fondo. Deberíamos hacerlo aquí. Y aquí podemos elegir
número o texto. Cambiar el telón de fondo dos. Entonces eso debería estar aquí
en este caso, cocina. Entonces mejor deberíamos cambiarle el nombre a esto. Así que haz click derecho sobre
definir y agrégalo. Entonces aquí llamamos a la
primera sala de parámetros. Eso es mucho mejor.
Entonces tenemos esta sala, que es un texto, el nombre de la habitación, y tenemos que
llamarla aquí, a habitación después de hablar,
y aquí la ponemos a la cocina. Entonces intentemos si esto funciona. Entonces restablecemos al principio. Tenemos que resolver
el primer acertijo. Vamos a la
puerta, usa la llave. Estamos aquí, y funciona. Eso es lindo, así que también podemos
hacer otra cosa aquí. Cambiar telón de fondo
dos, y luego lo que se suministra como el parámetro de la
habitación aquí. Por ejemplo, podríamos
colocar algunos objetos aquí. Vamos a crear un nuevo sprite, y esta vez
será esta manzana aquí Pongamos la manzana. Lo hacemos un poco más pequeño, igual que 60%, tal vez. Ahora eso es demasiado
grande, como 40, 40%. En el código, necesitamos
configurarlo a oculto si ir clic. Entonces vamos a ocultarlo primero. Y entonces podemos colocar
la Manzana en algún lugar. Vamos a colocarlo por aquí y hacerlo un
poco más pequeño, tal vez 30%. Eso es mejor. Entonces reiniciemos el juego, y la manzana se
ha ido. Muy bonito. Y ahora cuando cambiemos
a la cocina, se debería
mostrar la manzana. ¿Cómo hacemos esto? Estamos transmitiendo. Entonces aquí deberíamos transmitir que hemos cambiado de habitación. Vayamos a eventos y
luego transmitamos aquí. Habitación cambiada. Ahora, por supuesto, necesitamos saber qué
habitación es la habitación actual. Estamos estableciendo una nueva variable, y llamamos a esa habitación actual y esa es una variable para
todos los sprites, por supuesto Tenemos que establecer la habitación actual aquí a este parámetro suministrado, establecer habitación actual dos habitación aquí. Ahora podemos usar esa habitación o habitación actual para
mostrar la manzana. Eventos, cuando
recibo cambio de habitación, entonces verificamos con
un control si el si la variable de habitación actual
se establece dos cocina. Habitación actual equivale a cocina. Entonces podemos mostrar la manzana. Probemos esto. Comienza el juego. Recoge la llave, ve a la puerta, y ahora tenemos la
manzana aquí. Muy bonito. Hemos
cambiado satisfactoriamente las habitaciones. Hemos mostrado la manzana, y ese es nuestro código para
vestuarios por ahora. Esto se ampliará, claro, pero por ahora, podemos cambiar de
la sala de inicio, la recámara a la cocina.
40. 40 Cambio de objetos de juego a clones: Ahora que tenemos la
segunda habitación y la manzana, vamos a cambiar
algunas cosas aquí. En el último video, he agregado la manzana como sprite aquí
y aquí en este video He vuelto a quitar la manzana. ¿Por qué? Porque aquí
queremos implementar todos los objetos del juego con clones de
este sprite . ¿Cuál es la
razón detrás de eso? La razón es que entonces podemos manejar todos los objetos de
la misma manera, y también podemos
hacer uso de listas, y cómo lo hacemos, te
mostraré en este video. Primero, tenemos aquí este sprite, la clave, y vamos a añadir
otro disfraz aquí. Y el segundo disfraz
ya está aquí. Es la manzana. Entonces si no lo
tienes, ya, ve a elegir un disfraz y
luego elige la manzana aquí. Entonces tenemos dos disfraces aquí. El primero es la clave,
el segundo la manzana. Y la idea es tener
para cada objeto diferente, tenemos otro disfraz aquí. Bien. Entonces ese es
el primer paso para que aquí tengamos dos disfraces
diferentes. Y por supuesto, al
inicio del juego, necesitamos establecer el disfraz
adecuado. Entonces hagamos eso cuando se haga clic en
esta novia, no
es la función correcta aquí Pero cuando vaya a hacer clic, cuando se hace clic en la bandera, necesitamos establecer el
disfraz adecuado para nuestro primer objeto Entonces cambiemos el disfraz a H, y luego podremos comenzar un juego, y volverá a ser clave, y no hay
diferencia en el juego. Todavía podemos ir a la puerta
y hacer uso de la llave, y aquí falta la manzana,
por supuesto. Pero, ¿cómo mostramos
la manzana aquí? Ahí es cuando los clones
vienen bien, así que vamos a controlar y luego crear un clon de mí mismo. Este es el bloque que necesitamos, y necesitamos crear, por
supuesto, algunos objetos
aquí, algunos clones. La idea de los clones es
que hagas una copia
del sprite en este caso del mismo
sprite de mí mismo, así que esa será la clave Pero también vamos a renombrar
el sprite aquí también. Digamos objeto de juego para que esto sea
más genérico que solo la clave. Bien, así podemos crear un clon de esta clave de este objeto de
juego aquí, y vamos a hacer esto, por supuesto
al inicio del juego. Así que podríamos simplemente crear, digamos dos clones aquí,
y hacerlo así. Y por supuesto, también podemos
hacerlo con un bucle de repetición. Así que repite diez veces aquí. Entonces tal vez sólo podamos
repetir dos veces. Y entonces solo un clon de
crear es suficiente porque estamos repitiendo
esto dos veces, así que tenemos dos clones. ¿Cómo reconocemos
a los clones aquí? Entonces cuando empiezo, no
veo ninguna diferencia. Lo primero que tenemos que hacer es
ocultar el sprite original. Entonces vamos a mirar
aquí y luego escondernos. Entonces estamos ocultando la llave, en este caso, el primer disfraz. Entonces la llave se ha ido.
Estamos creando dos clones. El primer clon será la clave. El segundo clon será
la manzana, claro. Lo que necesitamos ahora es, por supuesto, el suceso cuando
empiezo como clon. Entonces este ¿Qué hago
cuando empiezo como clon? Tenemos que hacer lo mismo que cuando
se hace clic en la bandera. Así que simplemente movemos todo este bloque aquí a cuando empiece como clon, y podamos deshacernos
de este de aquí. Entonces ahora se crean dos clones, y para cada clon, cuando se inicia el clon, esto se hace aquí. Veamos qué le
hace a nuestro juego. Está volviendo a mostrar la llave
. Eso es lindo. Intentemos si podemos recoger
la llave. Eso también está funcionando. Pero vemos que aquí en realidad
la clave sigue ahí. Este es el clon de la clave y no la
primera clave en sí. Por supuesto, porque
el primer sprite, el sprite original aquí está
oculto y no se puede hacer clic en los sprites ocultos, así que esto es por supuesto
un clon Pero la segunda clave aquí
es el segundo clon, claro, pero la segunda, el segundo objeto
tiene que ser la apo. ¿Cómo diferenciamos aquí entre el primer clon y el segundo clon?
Esto es muy importante. Qué usamos para esto, una variable, por supuesto, hagamos una variable aquí, y no tiene que
ser para todos los sprites, sino solo para estos sprites Porque es solo para
este sprite, también
es para los clones Entonces es accesible
también para los clones, y llamémoslo simplemente índice. Y estamos incrementando el
índice aquí en nuestro bucle de repetición. Variables cambian. Entonces cambiemos el índice por uno. Por supuesto, también establecemos aquí el valor
inicial en cero. Entonces el primer índice será uno, y luego se crea el clon, el primer clon, y luego nuevamente, índice se cambia por uno. Entonces serán dos, y luego se crea el segundo
clon. Y para comprobar qué valor está
disponible aquí en nuestro clon, decimos la variable aquí. Entonces digamos hola y
luego índice variable, y veremos qué
índice se muestra entonces. Entonces comencemos el juego. Entonces claro, no se muestra nada porque hacemos el show después de
la S, así que cambiemos eso. Primero tenemos que mostrarlo, y luego podemos decir, de lo contrario, la burbuja, la burbuja del habla no será visible.
Entonces hagámoslo. Y por qué no funciona
porque estamos pensando aquí. Y si no piensas nada, entonces tampoco la burbuja del habla ya
no será visible. Así que vamos primero, deshacernos de esto aquí,
y luego veamos. Entonces aquí tenemos
diez, ¿por qué son diez? Porque aquí hemos establecido la variable
equivocada, así que no es habitación actual, sino que tiene que ser
índice, claro. Así que vamos a intentarlo de nuevo. Y ahora tenemos dos, claro. No vemos al otro. primer clon tiene que decir uno, segundo clon tiene que decir dos, pero claro, son
la misma ubicación, así que por eso eso no funciona. Tenemos que ponerlos en
diferentes ubicaciones para ver si esto realmente funciona. Ir a x e y y tiene que
cambiar dependiendo del índice. El primer clon debe estar
en una ubicación
específica, ubicación y específica, y el segundo debe estar
en una ubicación diferente. Hagamos esto con
los operadores aquí y multiplicamos con el índice. Entonces, vamos a obtener el índice
aquí. Eso no es multiplicar. Vamos a multiplicar aquí índice, y entonces
sólo podemos decir 40, y luego vamos a
y 40 veces índice. Entonces primero, el sprite
debe estar a los 40, segundo debe estar a los 80 Entonces veamos cómo se ve esto. Ahora podemos ver que tienen
ambos índices diferentes. El primero tiene uno,
claro, el segundo tiene dos. Y el segundo debería
ser una manzana y no una llave. Por lo que necesitamos cambiar de vestuario
dependiendo del índice. Entonces el primer objeto, por
supuesto, tiene que
ser el disfraz clave. El segundo tiene que ser el disfraz de manzana.
¿Cómo lo hacemos? Eso es bastante fácil.
Solo vamos a looks, y luego el siguiente disfraz aquí. Entonces en este bucle de repetición, simplemente
pasaremos
al siguiente disfraz aquí, y veamos cómo funciona esto. No funciona porque aquí también
cambiamos de vestuario. Así que vamos a quitar eso. Aquí, cambiamos al siguiente
disfraz y ahora funciona. Entonces el índice uno es el disfraz clave. Yo los dos siguientes es el disfraz de manzana. De esta manera, podemos decir
qué clon es cuál. El primero es la clave, y el segundo es la manzana, y el primero
en la primera habitación, el segundo debe
estar en el segundo cuarto, claro, y esto es lo que
hacemos en el siguiente video.
41. 41 Introducción de listas: Entonces como ahora tenemos nuestros dos
disfraces aquí al inicio, podemos hacer un pequeño
ajuste aquí para estar seguros que el primero
siempre será el disfraz clave. Tenemos que cambiar de
vestuario al inicio. Así que cambia el disfraz
a no a manzana, sino a llave, y tal vez deberíamos
hacer eso después de haber ocultado la llave o el sprite
aquí, el sprite original Entonces probemos esto, y esto debería estar bien. Lo que tenemos que hacer ahora
es asegurarnos de que los dos
objetos diferentes estén ahora colocados en la ubicación correcta
en la habitación correcta. Entonces la primera clave tiene que volver
a pasar por aquí, y la segunda tiene que
ir en el segundo telón de fondo. L et's cambiar a eso
en algún lugar por aquí. Entonces, primero, el primer clon debería ser visible
en la primera habitación. El segundo debería ser visible en la segunda habitación de
esta cocina aquí. Entonces eso es lo que necesitamos
lograr primero. ¿Y cómo lo hacemos?
Estamos introduciendo listas. Entonces, ¿
qué son las listas de listas son como variables? Entonces por eso podemos encontrar
listas aquí sobre las variables. Aquí tenemos hacer
una variable y, aquí, tenemos hacer una lista. Entonces hagamos una lista. Y tenemos algo
parecido para hacer una variable. Podemos nombrar a esta lista
objeto habitaciones, tal vez. Entonces ahí es donde almacenamos nuestros cuartos de inicio para los objetos.
¿Y cómo hacemos esto? Voy a mostrar más tarde. Bien, para todos los sprites, no, no necesitamos
eso para todos los Sprites Aquí sólo lo necesitamos para
el sprite. Entonces Sala de objetos significa
para cada objeto, necesitamos almacenar
donde habitación
va a comenzar el objeto. Bien, aquí tenemos la lista, la visualización de la lista. Puedes alternar eso con
esta casilla de verificación aquí. Entonces, si no quieres que la
lista aparezca en el juego, solo desmarca esta casilla de verificación aquí ¿Qué tenemos aquí? agregar
manualmente artículos
aquí a esta lista. Entonces con este plus aquí. Simplemente puedes agregar
tantos artículos como quieras. Y dentro de cada una de
estas líneas aquí, puedes simplemente escribir algo así como para una
variable, por ejemplo. Entonces igual que este texto
aquí o como un número. Bien, entonces tenemos una lista de
variables, por así decirlo, y esta lista está aquí por aquí, puedes usarla con estas funciones aquí,
con estos bloques. Entonces, ¿qué puedes hacer con una lista? ¿Puedes agregar otra
entrada a la lista? Puede eliminar una entrada en la lista. Puedes borrar la
lista con eliminar todo, y también puedes insertar algo en una
ubicación específica dentro de la lista, en un índice específico. Entonces tal vez puedas insertarlo aquí al final o en
algún lugar en el medio, y esto es lo que hace este
bloque aquí. Además, lo que puedes hacer es
reemplazar un ítem una entrada aquí en la lista en una
ubicación específica en un índice. Además, puedes obtener
un artículo específico de la lista en una ubicación
específica. Aquí está el índice,
y con esto aquí, obtiene el ítem en la posición uno aquí
en este ejemplo, o digamos dos, y podemos ingresar algo aquí y
vamos a verificar el valor. Aquí podemos elegir
diferentes listas. Por el momento,
solo tenemos una lista, así que ingresa esta aquí sala de objetos. Esta lista debe
contener para cada objeto en qué habitación se
debe colocar este objeto al inicio. Si da clic en esto,
puede ver qué valores dentro de la lista en esta ubicación en la ubicación dos en el Índice dos. Da click en este bloque y podrás ver que en la posición dos, aquí está esta cadena. También puedes simplemente
tal vez hacerlo así. Esto es primero, esto es
segundo y este tercero. Y aquí puedes ver, si haces clic en eso,
tienes segundo. Si eliges uno para el
índice, obtienes primero, y por supuesto, si
eliges tres para el índice, obtienes el tercero, y así sucesivamente. Entonces, qué podemos hacer con eso, podemos almacenar en esta
lista en qué habitación debe
comenzar
cada uno de los objetos y debe colocarse en. Hagamos esto, y para ello, necesitamos recibir el
mensaje, habitación cambiada. Así que vayamos a eventos
cuando reciba cambio de habitación. Entonces tenemos que establecer
la visibilidad de nuestro sprite aquí para que sea más
específico del clon Entonces es por eso que
tenemos que considerar, claro, esta lista aquí. Entonces tenemos que cambiar primero
las entradas en la lista. Entonces, la primera habitación de la
llave será recámara, y una segunda es cocina, y un tercer objeto que
no tenemos en este momento. Para que podamos borrar
estas entradas aquí. Bien, tenemos recámara para la llave y cocina
para la manzana, y ¿cómo obtenemos o cómo
verificamos la habitación correcta? Esto es, por supuesto, un
si aquí. Entonces si más, Y comprobamos la
igualdad, entonces esto aquí. Y el primer operante
será si elemento de objeto sala, y aquí por supuesto
tenemos que tomar el índice Por lo que el índice será diferente
para la clave y la manzana. Para la llave, será una. Entonces, el artículo uno del objeto
habitación será recámara, y para el Apple,
será el elemento dos de la sala de objetos,
que será cocina. Y aquí tenemos, claro, para verificar la habitación actual. Y si cambiamos las habitaciones, entonces la habitación actual
cambiará a cocina. Entonces esto es lo que
tenemos que comprobar aquí. Hagamos un poco de
espacio aquí para esto. Oh, no tengo el si entonces mas, sino el si entonces solo, así que tomemos esto aquí. Cambiemos eso y
esto ya no necesitamos. Entonces, si el ítem en el índice de Object room de esta lista
aquí es igual a la habitación actual. Entonces para la segunda habitación,
esta será cocina. Y para la primera habitación, creo que no hemos establecido
habitación actual para la primera habitación. Así que vamos a revisar a Avery. Y al inicio de Avery, cuando se hace clic en ir, ahora, no
establecemos habitación actual aquí Entonces lo que podemos hacer es
ir a la habitación actual. Entonces vamos a mis
cuadras, vamos a Habitación, y al inicio,
vamos a la recámara. Entonces aquí es donde empezamos, así que deberíamos ir ahí, ir a habitación recámara, Entonces habitación actual, será
recámara al inicio. Y así,
tenemos para la clave, tenemos la igualdad aquí. Entonces al inicio,
será recámara, y luego la segunda habitación,
será cocina. Y si esto es igual, entonces tenemos que mostrarnos
aquí, mostrar el clon. Si no, ocultamos el clon. Bien, comencemos un
juego y lo probemos. Y aquí tenemos todavía dos
objetos. ¿Por qué es eso? Vamos a hacer clic en este
sprite aquí objeto de juego, y vemos que este es el original, y también es visible Y aquí esta es la
clave, el primer clon. Este es el segundo clon. Entonces no trabajaba. Cuando recibo un cambio de habitación, entonces esta comprobación está hecha. El índice de ítem de la sala de objetos
es igual a la habitación actual, y mostramos, de lo contrario, nos escondemos. ¿Por qué no funciona?
Porque aquí mostramos cada vez que
creamos el clon, vamos a deshacernos del espectáculo aquí. L et's inténtalo de nuevo. Ahora
tenemos esta clave aquí, y este es el sprite original Y aquí tenemos la manzana, que también está mal. Así que vamos a comprobar de nuevo si
item index object room, y aquí también podemos
deshacernos de este índice de 40 veces. Ya no necesitamos eso. Ambos objetos están en
el mismo lugar aquí. Pero eso está bien porque la primera debería estar
en la primera habitación, la segunda en la segunda
habitación, así que está bien. Entonces abordemos el
primer problema de que el sprite original
sigue siendo visible aquí,
lo cual no es bueno No debería ser visible
porque aquí lo escondemos. Pero el problema es que también
recibe este cambio de habitación, y luego se mostrará. Esto es lo que
tenemos que evitar aquí, vamos a las variables
y hagamos una nueva variable, y yo la llamo vamos a
llamarlo es original, y es sólo para este sprite, y esto es para que el sprite
original sea
capaz de identificarse Vamos a configurarlo aquí al inicio. I original está configurado a uno aquí. Y aquí en el cuando
empiezo como clon, lo
estamos poniendo a cero. Entonces cada clon
tendrá el valor cero, yo es original y el original
tendrá el valor uno. Y ahora podemos hacer un si aquí. Entonces si, y luego ahora otra vez, cheque de
calidad, y
tomamos esto es original. Y aquí solo verificamos
los clones, así que es por eso que
ponemos esto a cero. Entonces si es original es cero, que siempre es el caso, si es un clon,
entonces podemos hacer esto. De lo contrario, no lo haremos. Comprobemos de nuevo,
y la llave ya no está. Entonces ya está bien, pero por el momento, aquí no
se muestra nada. Empiezo como clon. Entonces dupliquemos
esto por el momento. Y ponlo aquí. Entonces si esta comprobación para la
habitación es positiva es verdadera, entonces mostramos el clon, lo contrario, ocultamos el clon. Intentemos esto, y funciona. Entonces aquí tenemos el clon, el clon clave, el
original está oculto, porque aquí lo escondemos. No se mostrará
aquí en este caso porque tenemos este
cheque para original. Y también, cuando
empecé un clon, también
estamos haciendo esto aquí. Entonces aquí tenemos una
duplicación, claro, es más agradable deshacernos de esta duplicación
creando un nuevo bloque Aquí, hagámoslo. nombre del bloque será
la visibilidad establecida, y esto establecerá
la visibilidad, por
supuesto, dependiendo de
esta condición aquí. Así que sólo tenemos que
mover esto aquí a este conjunto de visibilidad bloque
personalizado aquí. Y entonces aquí llamamos set
visibility. En este caso, si
no es el original, entonces establecemos la
visibilidad aquí en cambio de
habitación y también
aquí al inicio, haciendo lo mismo
llamando a este bloque. Así que aquí está la visibilidad establecida, y ahora lo intentamos de nuevo. Y está funcionando. Vamos a deshacernos
primero de esta lista aquí. Aquí es un poco demasiado grande, así que vamos a esconder eso. También escondamos esto aquí. Y primero recogemos la llave. A ver si esto
funciona, funciona. Vamos a la puerta. Usa la llave, y aquí también, tenemos la manzana, así que eso
funciona como se esperaba ahora. Así que ahora podemos cambiar la visibilidad
dependiendo de esta lista aquí. Así que volvamos a mostrar
la lista de sala de objetos, y hacerla un
poco más pequeña aquí. Así que tenemos recámara para el primer clon y cocina
para el segundo clon. Y esta comprobación dinámica, si cuando la habitación cambió, entonces estamos estableciendo
la visibilidad de los objetos del juego aquí usando esta lista aquí y
esto funciona como se esperaba.
42. 42 Colocación de los objetos: Ahora que tenemos la visibilidad
de los objetos correcta, por lo que la manzana será
visible en la segunda habitación, y la clave es visible
en la primera habitación. L aquí, aquí está la clave. Puedo recogerlo y
luego usarlo en la puerta. Aquí tenemos la manzana. Eso está todo bien.
Pero como puedes ver, la manzana no está en la ubicación
correcta aquí, x e y de la manzana no
es correcta. ¿
Cómo corregimos esto? ¿Cómo solucionamos esto
con más listas? Escojamos nuestro sprite de
objeto de juego aquí, y hacemos más listas locales Local significa solo para el sprite, así que elige esto, y el
primero será objeto x. Entonces un mapeo desde el objeto
desde el índice hasta
la coordenada x, y luego por supuesto, una segunda
lista para la coordenada y Entonces Object y para este br y
ahora tenemos dos listas aquí. Podemos hacerlos un
poco más pequeños. En cada lista, necesitamos, por
supuesto, dos entradas
porque tenemos dos objetos. La primera entrada será aquí
la coordenada x de nuestra clave. Comprobemos dónde está esto. Esta debería ser esta
coordenada aquí, 102 e y es -28 Aquí tenemos que entrar -28. Para la manzana, tenemos que revisar. Aquí podemos ir a la
segunda cocina de telón de fondo. Y aquí podemos mover nuestra llave. A lo mejor nosotros primero nos
cambiamos a manzana aquí para
que tengamos la manzana. I. Y colóquelo en algún lugar de aquí. Entonces aquí podemos ver y
es 11 y X es 127, eso es lo que entramos aquí, 127, y aquí la y para
la manzana es 11. Entonces ahora que tenemos
nuestras listas aquí, podemos volver al código. Intentamos empezar de nuevo y ver si es el estado inicial correcto o si has
olvidado algo, no, todo está bien. Aquí tenemos la coordenada, y tenemos que usar
las coordenadas aquí en nuestro definir conjunto de
visibilidad aquí. Si se
debe mostrar el objeto, por ejemplo, debe mostrar
una clave o la manzana, necesitamos ir a X e Y. Motion, ir a x y. Necesitamos obtener estas coordenadas aquí x e y de las
listas que acabamos de hacer. Ir a variables, y
luego aquí tenemos ítem de sala de objetos
que será x aquí, Object x, y no es el ítem uno, sino es índice de ítem. El índice de elemento del objeto x
es la coordenada x. La coordenada y es
de co el índice
de ítem, de objeto a y. Nuevamente, estamos tomando
las coordenadas aquí de nuestras dos listas,
y por supuesto, el número de la entrada
siempre es el índice
igual que para la habitación, y tenemos las dos
listas para x e y. Comprobemos si esto funciona. Empezando en el juego. Y luego recogiendo la llave,
yendo a la puerta. Y está funcionando bien. El Apple está en
la ubicación correcta aquí, todo funciona. Entonces ahora que tenemos
eso, también podemos ocultar estas dos listas aquí y
también esta lista aquí. Si necesitamos las listas, siempre
podemos volver a mostrarlas, y también podemos esconderlas. Entonces si quieres mostrar una lista, solo haz el check
aquí en la lista, y luego si quieres
agregar otro objeto aquí, tal vez, entonces tienes que hacer una nueva entrada en todas
estas listas aquí. Por el momento, queremos poder recoger
el Apple, supongo. Entonces ese es nuestro nuevo reto.
43. 43 Lista de inventario: Para recoger el Apple,
necesitamos hacer otra lista,
y esta lista estará
disponible para todos los Sprites Hagamos una lista
aquí para Sprites, y esta será lista de objetos Y para A Sprites porque entonces el objeto Sprite puede agregar
algo a la lista,
y también el Sprite de inventario puede acceder a Ahora tenemos
lista de objetos y ya está aquí. ¿Qué contendrá esta lista? Contendrá todos los índices
de los objetos que
se encuentran en el inventario. Para recoger un ítem,
al principio, es la clave, necesitamos
agregar una entrada a la lista de
objetos aquí. Cambiemos el nombre de la lista
aquí a lista de inventario. Eso es claro que esta lista es para los objetos
del inventario. Bien. El primer artículo que hay
que recoger es la clave. Podemos ir al código que está recogiendo la llave,
y esto es esto de aquí. Si la clave recogida equivale a una, entonces ésta ya está recogida, así que tenemos que ir aquí. Si la distancia a
Avery está por debajo de 50, entonces configuramos clave
recogida en uno Podemos dejar el
código como es, pero necesitamos ingresar
adicionalmente
una nueva entrada a esta lista o agregar una nueva entrada a
esta lista aquí. Este bloque aquí en T dos lista de inventario es
exactamente para este propósito. Agregar cosa a la lista de inventario, agregará una nueva entrada. Ya puedes probar eso. Si haces clic aquí, ves que esa cosa está realmente agregada
a la lista de inventario, pero no queremos hacerlo. Queremos agregar el índice
de este objeto aquí. Agregar Índice a la lista de inventario, y podemos probarlo aquí. Y vemos que esa cosa
también está aquí todavía en la lista. Entonces lo que tenemos
que hacer es, por supuesto, tenemos que eliminar o borrar la lista al
principio en el inicio. Y esto lo puedes hacer con
eliminar toda la lista de inventario. Empecemos de nuevo. Y ya
ves que la lista está vacía. Y si recogemos la clave, ves que el índice aquí
está en nuestra lista de riesgo. Ahora podemos ir a
la segunda habitación, y aquí también podemos
recoger la manzana. Pero ya ves que no
funciona. ¿Y por qué es eso? Porque la distancia aquí
es a un poco aquí. Entonces tenemos que aumentar eso. Digamos 80, e
intentemos eso. Ahora podemos recogerlo. Entonces aquí, la manzana también
está en la lista, pero ves que la clave no
está en la lista. Y es por ello que necesitamos
modificar el código aquí ale bit. Entonces Aquí tenemos la
visibilidad del conjunto definido, y por supuesto, en la segunda sala, la
clave no es visible, pero la clave debe seguir siendo visible si
está en el inventario. Eso es lo que tenemos que
verificar. Eso es fácil. Vamos al control, y necesitamos ocultarlo sólo si no está
en el inventario. Si entonces y ahora necesitamos
verificar si la
lista de inventario contiene cosa, en este caso, es
por supuesto, de nuevo, el índice. Si la lista de inventario
contiene el índice, luego ocultar, eso no es correcto. Tenemos que probar
para lo contrario. Si no está en la
lista de inventario, entonces podemos ocultarlo. Lo que necesitamos es un no, y este es este de aquí. Arrastre esto aquí, no, y esto tiene que ir aquí. Si no es así, si
no es el caso de que la lista de inventario contenga índice, luego oculte. Vamos a probarlo.
Vuelve a comenzar el juego. Recoge la llave. Y ve a la puerta, usa la llave, y ahora todavía tenemos
la llave aquí visible en el inventario y también la
Apple es visible aquí. Pero el Apple está en
la
misma ubicación que la llave y eso es un problema, y esto lo arreglamos en
el siguiente video.
44. 44 Colocación de objetos en el inventario: Tenemos que colocar nuestros objetos en el inventario aquí abajo
en las posiciones correctas. Por el momento están en
la misma ubicación aquí, y es por eso que no podemos ver la llave aquí o solo
partes de la llave. Entonces necesitan estar en línea aquí, y eso lo hacemos en el
inventario. Así que vamos ahí. Y lo que tenemos que hacer aquí es cada vez que
se recoge algo, esto necesita ser refrescado, así que la colocación de la colocación de los objetos necesita
ser refrescada aquí, y lo hacemos con un evento Siempre que reciba un nuevo evento, y esto se refrescará, para inventario, ¿qué
estamos haciendo entonces? Repetimos y repetimos
está bajo control. Así que repita No diez veces, pero estamos revisando
esta lista de inventario de lista, así que necesitamos saber la
longitud de la lista. Para ello, tenemos un bloque aquí, longitud de lista de inventario aquí. Eso ya es correcto. Y también necesitamos contar
las iteraciones aquí dentro. Entonces necesitamos una nueva variable, pero esta variable puede ser local, así que hacemos una variable solo
para el spot, y la llamamos en índice de
inventario. Y estamos configurando este 120
y al inicio del bucle, lo
estamos cambiando por uno. Entonces en inext ahora
podemos contar las iteraciones
aquí de este bucle ¿Qué más tenemos que
hacer aquí dentro? Necesitamos enviar un mensaje,
una emisión a los objetos que los objetos puedan
colocarse aquí en parte superior del
sprite de inventario aquí porque solo los objetos en
sí pueden hacer eso No se puede colocar un objeto
desde fuera del sprite. Por lo que necesitan recibir un mensaje y luego
colocarlos aquí. Bien, así que vamos a crear un nuevo mensaje, transmitir,
mostrar acciones, nuevo mensaje, y lo
llamamos ir a x porque solo la x
es importante aquí. La y es la misma para
sprite aquí para cada clon. Entonces solo la x debe ser diferente, y podemos hacer eso después de que
hayamos cambiado el índice aquí. Y luego en la clave, podemos recibir esto. Así que cada vez que recibo
ir a x. Sí, tenemos que colocarnos
aquí a esta posición. ¿Y cuál es esta posición? Con este mensaje, no se puede suministrar, proporcionar ningún parámetro. Entonces lo que debemos hacer aquí es
crear otra variable para todos los sprites y llamar tal vez x
actual para inventario, x
actual para el inventario Aquí, por supuesto, antes
de enviar un mensaje, necesitamos aumentarlo. También al inicio
antes del bucle, tenemos que configurarlo, claro. Primero, lo pusimos dos. Podemos comenzar en cero y luego ver qué necesitamos cambiar aquí, o puede que estemos empezando a tal vez
-80, algo así A partir de -80 debería
estar en algún lugar por aquí, y luego aumentaremos con cada iteración
la coordenada x Inventario actual de x, y
luego digamos 40 por 40, usa esta x actual
en el objeto de juego. Así que aquí. Y claro, cuando recogemos algo, entonces necesitamos mandar
esta actualización Si. Entonces aquí solo
insertamos broadcast. Refrescar Ip. Primero
veamos si esto es correcto. Empecemos de nuevo el juego. Recoge la llave y
la llave está por aquí. Abramos la puerta, usemos la llave que funcione, y luego recogemos la manzana. Ahora no estamos lo suficientemente cerca. Ahora podemos recoger la
manzana, pero no está funcionando. corriente x no se
incrementa correctamente, supongo, porque la
corriente x es cero. Aún así, vamos a verificar aquí, cambiar actual x en
cero está bien, creo, porque el valor actual necesita ser cero porque tenemos dos ítems y -80 más
40 más 40 es cero, entonces el cero está bien Pero el problema es que ambos objetos aquí están recibiendo esto y ambos se están fijando a
esta x aquí al final. Entonces ese es el problema aquí, así que no podemos hacerlo cada vez. ¿Qué necesitamos para que
esto se solucione? Necesitamos otra variable. Así que haz otra variable para
todos los sprites, y esta vez, es la corriente en objeto, es el índice de la
corriente en objeto, objeto de
inventario, y necesitamos
establecerla aquí como una variable
global Así que establece objeto
actual inf en el índice Entonces, ¿cómo obtenemos el índice? Lo obtenemos de la lista de
inventario, claro, pero no en el ítem uno de la lista de
inventario, sino en índice. Entonces estamos contando este índice
inf y estamos configurando esta corriente en objeto
al valor en esta ubicación aquí, y este es el índice
del objeto de juego Y aquí tenemos que comprobar si
sólo tenemos que ir ahí o no. Entonces necesitamos el control si y
aquí verificamos la igualdad. Si actual en objeto es índice, entonces vamos y de lo contrario, no lo
hacemos. Probemos esto. Así que eso se ve mejor. Aquí tenemos la llave aquí, la manzana. No está en la
posición correcta, claro. Entonces supongo que -80 no era correcto. Creo que tenemos que
desplazarlo como a -120 tal vez. Sí. Eso se ve mejor, pero la y no es correcta. Entonces tenemos que verificar
la y correcta aquí. Ole mordió a la izquierda
estaría bien. Entonces esto no es necesario. Ir a aquí, pero
la y es correcta. Podemos usar este -160
aquí y ponerlo aquí. Y aquí necesitamos
corregir esto tal vez por diez. Comprobemos esto. Entonces recogiendo la llave, haciendo clic en la llave. La primera vez, haciendo clic en la llave, no
conseguimos un cambio. Y la segunda vez, no
es correcta. Entonces hay algo mal aquí. Comprobemos nuestras variables
aquí, nuestra lista. La lista de inventario incluye dos artículos. Eso es todo correcto. Así que
volvamos a pasar por este bucle. Esto parece ser un problema. Estamos configurando esta
x actual en -130, está bien,
así que lo estamos repitiendo
siempre y cuando vaya la lista y la primera vez este es solo un elemento de
la lista debería ser Entonces estamos configurando el objeto
actual dos elemento en el índice
de la lista de inventario. I index está al inicio cero, y esto no es correcto porque ítem cero de la
lista de inventario no existe, así que esto estaría
supongo vacío aquí La corriente en el objeto está vacía. Esto no funciona,
y luego cambiamos en el siguiente por uno, y
aquí está el problema. Aquí está mal el orden, así que primero tenemos que cambiarlo. Así, y luego podemos
establecer corriente en objeto, y luego cambiamos
la x por 40 aquí, y luego hacemos la emisión. Probemos esto. Ahora funciona, y la posición
también está bastante bien. Yo diría que esta es casi
la misma posición que antes antes de
introducir este bucle aquí. Veamos cómo
funciona esto con la Apple. Usa, y ahora podemos recoger la manzana y
aquí no funciona. Es la misma posición. Veamos cuál podría
ser el problema aquí. Volvemos a pasar por el bucle. Estamos configurando x actual a
esta posición inicial -130. Entonces repetimos esto y cambiamos el índice por
uno, eso está bien ahora, y actual en objeto
debería estar bien ahora, y luego cambiamos x
actual en 40. Y luego hacemos la transmisión. Entonces la segunda vez
que recogemos el Apple, este evento
volverá a ser enviado y recibido aquí Luego configuramos de
nuevo actual x inf dos -130 Y aquí está el problema. No vamos a poner en
índice a cero otra vez. Entonces esto de aquí no es correcto. Vamos a arrastrar eso aquí
y ponerlo por aquí. Entonces cada vez que
vemos el mensaje, tenemos que restablecer este índice
inf a cero, y luego aquí
se cambiará a uno, y luego debería funcionar Entonces intentemos esto de nuevo. Ahora, Apple, y esta vez
funcionó muy bien. Primero está la clave y segundo lugar Apple y en
una distancia muy agradable. Eso está bien. Y aquí
también podemos recoger más artículos. Si tuviéramos un tercer artículo aquí, este se mostrará aquí. Esto es muy, y podemos
agregar objetos arbitrarios
al juego que pueden ser recogidos y mostrados en
esta lista de inventario.
45. 45 Corrección de descripciones de objetos: Ahora que tenemos un mecanismo
universal para recoger objetos, también
necesitamos un mecanismo
universal para las descripciones
de los objetos. Cuando iniciamos el juego, tenemos esta descripción de la clave. Es una llave, y si la recojo, entonces la puedo usar aquí
en la puerta así. Pero para el Apple, aquí no
tenemos
tal descripción. Si flotamos, ponemos el
puntero del mouse aquí sobre la manzana, no
vemos ninguna descripción Para la descripción,
nosotros, por supuesto, o para ambas descripciones, necesitamos ahora otra lista. Vamos a las variables
y hagamos una lista. Aquí hacemos una lista, para todos los sprites, no,
para este sprit solamente Porque las
descripciones solo son necesarias en los propios
objetos. Entonces lo llamamos solo descripciones porque esta es una descripción
localista, no
necesitamos poner
nada más aquí Entonces la descripción es suficiente, descripción para el
sprite, por supuesto En fin, esto es sólo para
el sprite. Y si miramos aquí, tenemos juego objeto
colon descripción, Así que eso debería estar bien. Añadimos dos entradas aquí. El primero es que es una llave, y el segundo, es una manzana. Por supuesto, puedes poner
algo más aquí, un texto más descriptivo, pero quiero
que sea breve aquí. Primero, es una clave para
la clave, claro, y la segunda es para la manzana, y diferenciamos entre
estas dos por el índice aquí. Uno es un Índice uno
es siempre la clave, y el Índice dos es
siempre la manzana. Bien, entonces no
necesitamos exhibir esto. Podemos ocultar esto y
también lista de inventario, no
necesitamos mostrar
esto y también los otros y también los otros que podemos ocultar para que podamos ver la pantalla
completa aquí. Lo que hacemos con la
lista debe ser claro. En lugar de esto
aquí, es una clave, simplemente
sacamos la descripción de la lista
de la nueva descripción de la lista. Entonces aquí tenemos este
ítem uno de descripción, y en nuestro caso, no
es el ítem uno, sino el índice de descripción del ítem. Y aquí solo reemplazamos
este texto fijo, es una clave con este. Vamos a comprobar si esto
funciona en el juego. Es una llave, sigue bien. Pero para estar seguros tenemos que
comprobar si está funcionando también para la manzana. Y no lo es. ¿Por qué no? Porque aquí
tenemos esta condición de
que la distancia a Avery debe ser de al menos
50 o debe ser inferior a 50 Entonces podemos aumentar eso aquí y ver si esto
funciona y ahora funciona. 50 está demasiado cerca A se centra quizá por aquí en alguna parte
y 50 es más pequeño que
eso, es difícil
llegar a esta distancia. Lo colocamos en 80 lo
mismo que aquí y de esta manera, podemos exhibir aquí es
una manzana, pero también podemos ver que en
cuanto la metamos
en el inventario, ya
no podemos ver las
descripciones. Esto es lo que
necesitamos arreglar también que después de
ponerlo en el inventario, aún
puedas ver
la descripción que va a ser agradable y esto es lo que
hacemos en el siguiente video.
46. 46 Mostrar la descripción en el inventario: Todavía tenemos el problema de que la descripción del objeto no es visible si pasamos el cursor sobre el
objeto en el inventario Cuando recojo la llave aquí,
coloco el cursor sobre la llave
en el inventario No se muestra nada, y esto debería ser posible. Arreglemos esto. Es bastante fácil. Solo tenemos que reorganizar
esta parte del for evepe aquí en el
objeto clave o en el objeto Para que eso funcione, hay que
considerar también si la
llave o el objeto, en este caso, fue
recogido o no. Tenemos que pensar en nada sólo en caso de que estemos
lejos del objeto, y además el objeto
no esté en el inventario. ¿Cómo lo hacemos? Vamos a
separar esto de aquí. Y vamos a insertar
otro de esto si entonces, así. Tenemos dos si entonces
bloques anidados aquí. El primero, el exterior
sólo contendrá un puntero táctil
del ratón. Por lo que todo
dentro solo se ejecutará si el
puntero del mouse se está tocando, y esto es, por supuesto, también el requisito previo para la visualización
de la descripción aquí. Si el puntero del ratón no
está tocando, entonces no pensamos en nada. La segunda condición debe ser un poco
diferente a la anterior, aquí
teníamos este final, y ahora necesitamos otra operación
lógica. Este es el bloque o aquí. Una de estas dos condiciones
necesita ser satisfecha. Una es, por supuesto, la
distancia a Avery, necesita estar por debajo de los 80 O el objeto debería
estar en el inventario. Si el objeto está
en el inventario, entonces se recoge la clave, que no es el mejor nombre
porque no es sólo la clave, debería ser algo
más general porque también la manzana
podría estar en el inventario, pero podemos
encargarnos de eso más adelante. Primero, tenemos que verificar
clave recogida es igual a uno, y es por eso que podemos duplicar
esto y poner esto aquí. Si solo consideramos
esta condición aquí, o bien
es clave
recogida igual a uno, por lo que el objeto está en
el inventario o
la distancia a
Avery está por debajo de 80 Esto lo podemos verificar después de que estemos seguros de que el puntero del mouse
está tocando el objeto. Si el puntero del ratón está
tocando el objeto, y esta condición
aquí también es cierta, entonces podemos pensar que
la descripción, y esto es o la
clave recogida es uno o la distancia
a Avery está por debajo de 80 De esta manera debería
funcionar. Vamos a comprobar esto. Aquí está funcionando y ahora lo
tenemos en el inventario. Vamos a flotar aquí. Es una llave. También está trabajando aquí
en el inventario. Entonces vamos a comprobar si
también está trabajando con la Apple. No debería haber diferencia. Es una manzana. Eso está bien. Y si flotamos aquí
en el inventario, también
es una manzana. Muy bonito. Y esto es lo que
queríamos lograr
para que en todas partes
obtengamos esta descripción, excepto si no
se recoge el objeto, y Avery está demasiado
lejos de él De esta manera no es tan fácil,
y Avery tiene que
moverse para examinar el entorno aquí para
que el jugador realmente camine por ahí para ver todos los objetos disponibles
aquí en esta pantalla
47. 47 Corrección de la lógica del juego: S. Ahora tenemos que ajustar nuestra lógica de juego
a la lista de inventario. Por el momento, el problema es que podemos resolver el
primero o el jugador puede
resolver el primer problema haciendo clic en usar aquí cuando se hace clic en
el sprite, se hace clic en
el botón de uso, luego emitimos Ue click, luego emitimos Ue click, y esto se recibe en
el sprite de Avery en el sprite de Avery Entonces se comprueba
para tocar puerta, y aquí se decide si el jugador puede
ir a la habitación contigua, cocina en este caso, o responder con esta
frase aquí. No puedo usar esta clave aquí. Esto es muy específico para la
clave y el primer rompecabezas, y tenemos que ajustarlo a la lista de inventario porque no solo
tenemos la clave, sino que también tenemos la manzana
luego en la segunda habitación, y la Apple por supuesto es
un poco diferente. Podemos usar la manzana, pero tenemos que definir lo
que eso significa usar la Apple, y no podemos usar la clave para
resolver la segunda habitación aquí. De esta manera, tenemos que ajustar
la lógica en Avery para que
sepamos qué ítem se hizo clic aquí y qué ítem
se debe usar, por ejemplo Pero primero, necesitamos
corregir una flecha aquí, y esto se puede encontrar
aquí en objeto de juego. Cuando este sprite hizo clic. Si está en el inventario, si la clave recogida equivale a uno. Lo primero que tenemos que
cambiar tal vez es que esta clave recogida
no es el nombre correcto para esta variable
porque no es solo la clave, sino que también puede ser
la Apple, por supuesto, u otro objeto
que agreguemos más adelante. Esta variable necesita cambiar. También este es otro problema. Esta es una variable global aquí. Pasamos a variables
y comprobamos esto aquí, podemos ver que esta
no es una variable local. Es una variable global, y así no podemos
usarla así. Debido a que recogido tiene que ser una variable local para
cada objeto de juego, tiene
que ser un valor separado. La forma en que se usa
aquí, esto no es cierto. En realidad, tenemos que cambiar
esto aquí un poco también porque esto es un si entonces y también
esto es un si entonces. Eso significa que si la clave
está en el inventario, transmitimos
acciones de visualización, está bien. Pero si también Avery tiene una distancia que es
menor a 82 la clave, por ejemplo, en el inventario, entonces esto también se
ejecutará, y esto es incorrecto Te muestro a lo que me refiero. Empezamos el juego, y
ajustamos esto a, digamos 120, así la
distancia puede ser mayor aquí, y yo estoy recogiendo
la llave primero Ahora bien, si voy con Avery a la clave justo encima de la clave aquí y
estoy dando click en la clave, entonces vemos que hay otra entrada en la lista de
inventario agregada Entonces este código aquí se ejecuta, y esto es incorrecto porque no
podemos ejecutar este código si la clave o el objeto aquí ya está
en el inventario. Entonces eso significa que tenemos
que cambiar eso aquí. A y si entonces else. Vamos a arrastrar eso aquí. Si ke recogido es igual a uno, luego transmitir acciones de visualización, que podemos dejar como es, pero necesitamos reemplazar el control aquí a
un if then else. Podemos simplemente arrastrar eso
de aquí a aquí. Éste viene al entonces
caso y esto lo podemos poner aquí. Podemos deshacernos de Pero ahora hemos perdido este suceso,
pero eso no es problema. Puedo volver a agregar esto aquí
cuando este lado hizo clic. Si la clave variable
recogida es igual a uno, entonces mostramos la
acción, está bien. Si no, si el objeto
no está en la lista de inventario, entonces podemos hacer de esta
la comprobación de distancia, y si se cumple la
comprobación de distancia, entonces podemos agregarla a
la lista de inventario. Vamos a probar eso.
Si soluciona esto, entonces recogemos la llave aquí. Podemos hacerlo sin que esto se le agregue otra vez
al eventualista Entonces esto no se ejecuta aquí. Siempre sólo se
ejecuta esto y no estos dos. Entonces antes era el problema que esto y esto se ejecutara. Ahora sólo uno de estos. Bien. Esto lo arreglamos,
y podemos retroceder esta distancia aquí a
algo más pequeño, así que 80, creo que estuvo bien, y el 120 fue solo para hacer el punto aquí que
esto era una flecha aquí. Esto es fijo. Ahora bien,
lo que tenemos que hacer es solo nuestra lógica de juego, como ya te dije,
esto tiene que cambiar. Esto tiene que ser
una variable local. De lo contrario, los diferentes objetos del
juego serán todos recogidos si uno
de ellos es recogido. Por el momento, esta
es una variable global, y necesitamos reemplazarla por una variable local. Así que vamos a arrastrar esto aquí y reemplazarlo con una
variable diferente. Hacemos uno nuevo. Esta vez decimos solo para
esta novia, esto es importante para que esta sea una variable local
y para cada clon, para cada objeto de juego, este será un valor
separado aquí. Solo llamémoslo
recogido, no llave recogida, sino recogida, y esto significa que realmente está
en el inventario. Llave recogida,
podemos deshacernos de y recoger Podemos poner aquí. Aquí también tienes objeto de juego. Esta es una variable local
recogida igual a cero en este momento. Ahora necesitamos reemplazar
todas las ocurrencias de clave recogida
con esta recogida. Aquí, aquí tenemos uno. Ahora bien, aquí no podemos
establecerlo así. Tenemos que elegir de
este desplegable recogido. cualquier otro lugar aquí, también, esto funciona o debería
funcionar, al menos, así que no más clave
recogida aquí en este sprite, pero como era una variable
global, también
se comprueba
aquí en Avery Aquí, la llave recogida. Por supuesto, esta no puede ser
la variable local recogida porque no se puede acceder a ella desde fuera del objeto de
juego aquí. Esto es algo que tenemos que
reemplazar por otra cosa. Y aquí podemos tomar este bloque. La lista de inventario contiene cosa. Esta cosa debe ser, por supuesto, el ID de la
clave del objeto del juego, y esta es una. Si inventorista contiene uno, el índice del objeto
clave del juego, entonces no necesitamos
esta igualdad aquí Sólo necesitamos esto aquí. Si el eventualis
contiene la llave, entonces podemos decir que
la puerta está cerrada Debo haber cerrado con llave. No, es diferente.
No está aquí. Si no contiene uno, entonces la puerta está cerrada con llave. Necesitamos un no aquí. Esto es aquí, este bloque, y arrastramos esto
aquí al no, y luego arrastramos esto
no de vuelta al si. Si no, inventoralis
contiene uno, uno es el índice, el por así decirlo, ID del objeto clave, entonces esta oración debe
pronunciarse durante 3 segundos De lo contrario, caminar
se pondrá a cero justo, esa fue una ocurrencia
de clave recogida. No estoy seguro de si
hay alguna otra. Creo que debe haber. Comprobemos el uso. No, este no es el caso, y aquí tampoco se usa. Entonces creo que realmente hemos reemplazado cada ocurrencia
de esta variable. Entonces podemos tratar de
borrar esa variable. Así que haga clic derecho aquí. En la clave recogida, eliminar, y no hay advertencia, así que eso significa que probablemente
hemos eliminado todas las apariciones
de clave recogida. Intentemos resolver de nuevo el
primer acertijo. Debería funcionar. Recoger
la llave funciona, utilizarla. No puedo usar esta
clave aquí es correcta. Entonces vamos a la puerta. Usa la llave de la
puerta, eso también funciona. Ahora tenemos la manzana, podemos recoger la manzana. Intentemos usar el Apple, y luego Avery dice, aquí no
puedo usar la clave Esto es algo que tenemos
que ajustar, claro. En el primer paso, hemos
reemplazado esta variable clave
recogida por esta variable
local aquí. Esto era necesario
para que no
usáramos la
variable global porque
necesitamos valores separados para cada uno de objetos
del juego aquí para
cada uno de estos clones. O aquí, podemos deshacernos de esto. Esta fue la primera refactorización o la primera fijación
de la lógica del juego Pero claro, tenemos que hacer más porque si usas la clave, debería
haber un resultado
diferente que si usas la manzana aquí. Por supuesto, tenemos que definir
cuál es el rompecabezas aquí. ¿Qué
necesita hacer el jugador aquí o tener aquí para
ir a la habitación contigua? Además,
aquí hay un pequeño problema si volvemos a empezar el juego, dejamos aquí esta habitación. Y entramos a la habitación
contigua aquí del mismo lado, lo cual no tiene ningún sentido. Entonces debemos entrar aquí a
la habitación, así que tenemos que trasladar a
Avery de aquí a
aquí para que entre a la cocina
por el lado izquierdo Y esto lo hará
en el siguiente video.
48. 48 Colocación de Avery en el lado correcto: Hagamos que Avery entre por
el lado correcto de la habitación de la
habitación contigua Por el momento, es
el lado equivocado. Porque si recogemos aquí la llave y dejamos la
habitación por la puerta, terminamos del lado derecho, o al menos Avery no se mueve Entonces por eso se queda
aquí del lado derecho, pero necesita ir
al lado izquierdo. ¿Cómo cambiamos eso?
Eso es bastante fácil. Aquí tenemos nuestro
definir ir a habitación, así que nuestro bloque personalizado va a habitación, y esto necesita
otro parámetro. Haga clic derecho sobre esto definir aquí, elija en él, y aquí luego
podemos agregar una entrada. Vamos a agregar una entrada
y llamarlo lado. Y esto será un número
o un texto, y podemos decir, digamos que es un texto,
así podemos hacer click en, y ahora tenemos
otro parámetro. El segundo es el lado aquí, y esto lo podemos usar aquí en
nuestra función en nuestro bloque. Entonces para verificar por el lado, tenemos ya sea a la izquierda o a la derecha,
no hay otras posibilidades. Vamos a controlar si entonces else, y tenemos que comprobar si el lado
es el texto a la izquierda o a la derecha. Precisamente, sólo tenemos que
comprobar si el lado está a la izquierda, y de lo contrario, es correcto. Entonces revisamos lado. Puedes arrastrar este
parámetro aquí, lado a esto si yo lado, y luego revisamos el texto que
queda aquí, y de lo contrario, es correcto o
algo más que izquierdo, y luego vamos a una ubicación
diferente aquí. Si se deja el sitio, entonces vamos al movimiento
y elegimos conjunto x dos, y aquí tenemos que verificar
la coordenada derecha aquí, para el valor correcto para x, y en el otro caso, tenemos que elegir
uno diferente para que en el lado izquierdo, cada esté en
algún lugar en menos, yo diría que tal vez
realmente menos esto, y en el otro caso, en el derecho caso lateral, podemos dejarlo así. Esto tiene que ir a alguna parte de aquí, creo que esto estaría bien justo antes de
la transmisión aquí. Si se deja lado, entonces pon a Avery a
la izquierda en -197, y si no, luego ponla al lado derecho
en x es igual Ahora tenemos que llamarlo con el parámetro correcto aquí con
el segundo parámetro derecho, y esto es aquí,
ir a sala cocina, y aquí tenemos que entrar a la izquierda. Para que podamos si la
segunda habitación aquí, la cocina tiene que
dejarse del lado derecho. Entonces podemos ir a la habitación
cualquiera que sea la habitación que pueda ser, y luego en el
lado derecho está la salida, y luego también en el lado izquierdo debería estar la habitación contigua, tal vez. Pero vamos a ver. Aquí
en este bloque, en esta convocatoria de este bloque, podemos elegir en qué lado
debe entrar Avery a la habitación Intentemos si esto funciona. Comienza el juego, recoge la
llave. Esto ya lo sabemos. Si ahora uso la llave, Avery debería ir a la
izquierda, y eso es correcto Todo está funcionando. También podemos tratar de poner aquí justo para probar
el otro caso. Entonces debería ser lo
mismo que antes, y Avery así que más o menos
permanecer en la misma posición x Sí. Eso también está funcionando. Entonces Avery estaría de este
lado, pero, ella no está mirando hacia la derecha el lado izquierdo aquí en este caso, pero creo que está bien. No necesitamos cambiar eso. Volvamos a poner a la izquierda aquí, así que ambos lados están trabajando y
Avery está del lado derecho, que es el lado izquierdo aquí Bien, continuemos
en el siguiente video.
49. 49 Adición de la mochila: Para avanzar en la
lógica del juego aquí y también para completar
nuestro segundo rompecabezas. Necesitamos agregar otro objeto, otro objeto de juego, que
se utilizará para resolver
el segundo rompecabezas. Para que Avery salga de casa para ir a
la escuela, necesita la manzana, por
supuesto, para tener
algo de comer en la escuela, y también necesita su
bolso para la Tenemos que agregar la
maleta, y para eso, tenemos que agregar un
nuevo disfraz aquí Vayamos al
objeto de juego, disfraces. Tenemos la clave como la primera, la manzana como la segunda, y la siguiente
será la satchel, pero esto tenemos que
pintarnos nosotros mismos Entonces hagámoslo. Quiero que sea
bastante simple aquí. Escojamos rectángulos aquí, y tal vez como relleno, podemos poner algo como marrón, tal vez así, y un
poco más oscuro, algo así Y hacemos nuestro primer rectángulo aquí, algo así, y luego hacemos un
segundo rectángulo aquí, y luego elegimos la herramienta de selección aquí para
ajustarlo un poco. Eso no fue tan agradable. Bien. Entonces el contorno o el borde es un
poco demasiado grueso. Hagámoslo dos pixeles aquí. Algo así.
Sí, eso se ve bien. Y entonces tal vez algo
para cerrar la taletera aquí. Nuevamente, dos rectángulos,
éste y éste. Esto tenemos que mandar a la
parte de atrás aquí. Vamos a deshacer eso. Esto tenemos que
mandar al frente. Primero seleccionemos esta
. Envíalo al frente. Ahora está bien, y el relleno debe ser algo así como gris. Entonces digamos que la saturación es cero, y eso es un
poco demasiado ligero. Así que vamos a hacerlo más oscuro,
algo así. También para el otro,
escojamos el gris. También o vamos a usar el selector
de color aquí. Entonces el cuentagotas aquí,
elige el mismo color. Ahora podemos
ajustarlo un poco. Ponlo en algún lugar del centro, y también esto
en algún lugar del centro. Bien. Creo que eso
debería estar bien. Por supuesto, siempre puedes
hacerlo más bonito,
pero para mí, esto está bien, así que todo el mundo debería ver un maletín o una taletería
aquí, Eso es lo que se supone que sea. Cambiemos al código ahora. Y qué tenemos que agregar aquí
para
agregar nuestro nuevo
objeto de juego, el satchel Tenemos que hacer visibles
nuestras listas. Entonces descripción, necesitamos una nueva descripción
para la satchel También necesitamos la lista de sala de
objetos porque queremos decir
que en la segunda habitación, la sala de cocina, la maleta será y debe ser visible Entonces, deshagámonos de esta exhibición
recogida aquí. Y también necesitamos
object x y object y Bien, hagamos
primero una nueva entrada, agreguemos una nueva entrada aquí en
game object object room. Entonces el tercero es el satchel, y eso
también debería estar en la cocina Entonces tenemos que entrar aquí a
la cocina. Y el índice del
tercer objeto
de juego de la satchel será de tres También aquí,
descripción del objeto del juego en esta lista, necesitamos agregar otra entrada, y decimos que es tu
bolso, y eso es suficiente También aquí, necesitamos
colocarlo en algún lugar de la cocina. Entonces agreguemos otra
entrada aquí y también aquí. Y ahora tenemos que verificar la posición correcta
aquí para el Satchel Bien, entonces lo que
podemos hacer es hacer que este juego sea objeto
aquí, este derecho visible. Así que solo haz
clic aquí en show sobre este I, y ahora lo tenemos visible, y podemos moverlo
a la ubicación correcta. Para que podamos mover eso por aquí. También podemos poner a Avery un
poco a un lado aquí. Y vemos que aquí es un
poco demasiado pequeño. Entonces tenemos que volver al
disfraz y reajustar eso. Pero tomemos las
coordenadas aquí. Entonces tenemos 219 para x. Entonces ingresa eso aquí. Y para y, tenemos -70 e ingresamos eso aquí en
juego objeto objeto y. He creado erróneamente
una cuarta entrada No hay problema, borre eso. ¿Bien? Entonces ahora hemos ampliado todas las listas
con nuestro Satchel, sala de objetos de juego, descripción del
objeto de juego, objeto x y objeto y
Bien, entonces ahora necesitamos verificar si ya
estamos creando
suficientes clones aquí,
y aquí podemos
repetir aquí para dos. Bien, entonces ahora necesitamos verificar si ya
estamos creando
suficientes clones aquí, y aquí podemos
repetir aquí para dos Por supuesto, podemos
poner tres aquí, y eso está bien, pero
para ser más flexibles. Entonces la próxima vez
que
agreguemos un objeto, aquí no tenemos que
cambiar nada. También podemos usar length
of y luego una lista, y yo diría length of object room porque esto es algo que necesitamos
agregar, por supuesto aquí. Siempre necesitamos agregar la entrada aquí en la sala de
objetos para que el objeto aparezca cada vez que el objeto cada vez que se ingresa
la habitación, así que estamos tomando la
longitud de esta. Aquí elegimos sala de objetos. Y esto será
automáticamente ahora tres. Entonces cada lista ya
tiene tres entradas. Entonces también es posible
usar la descripción del objeto del juego
o uno de estos, pero tomemos esta lista aquí y la longitud de esta
lista para crear los clones. Bien, entonces ahora
deberían crearse tres clones, y podemos desmarcar
todas estas listas aquí para que podamos volver a ver nuestra pantalla de
juego aquí, y empecemos otra vez un juego Y aquí no podemos ver
la Satchel, claro. Tenemos que ir a la habitación contigua. Entonces recojamos
la llave y la usemos, y aquí podemos ver que
la manzana está ahí, y también la maleta está
ahí es un poco demasiado pequeña, como dije, así que necesitamos
agrandarla un poco Esta es una maleta muy pequeña,
así que no creo que sea la adecuada, así que cambiemos el tamaño un poco de
eso Pero veamos si podemos
recogerlo, y está funcionando,
y aquí también se puede ver
que el orden es dinámico, así podemos recoger la manzana y
la manzana estará entonces al
lado de la maleta. Si lo hacemos al
revés, podemos reiniciar el juego. Y rápidamente hazlo de nuevo. Y aquí también podemos
recoger el Apple primero y el satchel segundo Entonces aquí tienes el orden correcto en el que
recogiste los objetos, y esto será dinámico. Bien, hagamos la taletera
un poco más grande. Entonces vamos a disfraces. El disfraz satchel se
alejan un poco, y luego seleccionamos todos Así que solo arrastra este
rectángulo aquí, y has seleccionado
todas, todas estas subformas aquí. Y entonces sólo podemos
agrandarlo un poco así y ponerlo de
nuevo en el centro, tal vez un poquito
más. Así. Vamos a probarlo. Sí, está bien. Creo que eso es lo suficientemente grande. Tal vez un poco
más grande estaría bien. Pero creo que está bien porque si aquí lo hacemos más grande, y luego tenemos que
hacerlo aquí también, entonces es del mismo tamaño. De lo contrario, tendremos que redimensionarlo cuando se recoja, y creo que eso no
vale la pena el esfuerzo aquí Así que déjalo como está. Entonces ese es el tamaño y la manzana es entonces también
el tamaño correcto. Ahora tenemos el tercer objeto, y en teoría, el jugador
puede resolver este rompecabezas. H o ella solo necesita
recoger la manzana y la maleta,
y entonces Avery puede salir de la
habitación del lado derecho aquí Por supuesto, tenemos que
verificar el inventario si la maleta y la manzana están
en el inventario, y
entonces ella puede irse Y si no, entonces no puede
salir de esta sala de cocina.
50. 50 Colocación correcta del uso de button: En este video, se trata de
seleccionar objetos de artículos en la lista de inventario en esta área aquí para que
luego podamos luego, usar estos objetos con la
ayuda de este sprite aquí, con la ayuda del sprite de uso Cómo es por el momento, si aquí nos deshacemos de todas
estas listas, esconderlas todas y
recoger la llave. A la habitación contigua,
tenemos todos los objetos. Ahora primero la clave,
luego la Apple, luego la Satchel aquí, y todo está funcionando
con la descripción, pero si hacemos clic aquí en
la clave, por ejemplo, o si haces clic en la Apple, o si haces clic en la Satchel, no
hay diferencia Y si ahora hago clic en la
Satchel, por ejemplo, y luego uso, entonces
Avery está diciendo, no
puedo usar la clave ere Entonces eso es, por supuesto, incorrecto
porque no sabemos qué objeto aquí se hace clic
antes de que se haga clic en el uso Además, te diste cuenta de que, si hago clic en el Apple
o el Satchel, Entonces este uso novia aquí no
se mueve a
esta ubicación aquí, pero debería estar en algún lugar
por aquí para el Satchel, o si hago clic en la manzana, entonces debería estar en algún lugar
por aquí encima de la manzana, pero siempre está en
este lugar Y esto es lo
que queremos corregir primero. Entonces este botón de acción aquí, este brite tiene que moverse
al objeto que se hizo clic antes o que se seleccionó aquí en el inventario.
Entonces hagámoslo. Entonces vamos al objeto de juego y
cuando se hace clic a esta novia, y si ya está
recogida aquí, hacemos una emisión de acciones de exhibición Y esta
transmisión se recibe aquí Entonces cuando recibo acciones de
visualización, entonces este botón de aquí, este botón de uso, este
botón de acción se acaba de mostrar. Y necesitamos también
algo más para pasar aquí. Necesitamos mover esto o
al menos cambiar la coordenada x aquí para que este botón esté justo encima del artículo de inventario
que se seleccionó antes. Bien, entonces, ¿cómo hacemos eso? Necesitamos otra
variable para eso. Y esta variable contiene el índice del objeto en el
que se hizo clic Entonces para todos los sprites, esto es necesario aquí Y podemos llamarlo
seleccionado en objeto, por lo que seleccionamos objeto de inventario. Y cada vez que se
hace clic en un objeto en la lista de inventario, lo
configuramos en este índice Así que vamos al lugar donde se hace clic en
este objeto de juego
y se encuentra en la lista de inventario Esto es aquí, donde
hacemos la transmisión. Y aquí también necesitamos
establecer nuestra nueva variable. Así que establece el objeto If seleccionado aquí, y esto necesita ser
establecido en el índice. Index es, recuerda, Index es
el ID de este objeto de juego. Entonces para la llave, será una, para la Apple, serán dos, y para el estilo, son tres. Entonces ahora que hemos
establecido esta variable, podemos usarla aquí
para establecer la coordenada x. Establecer la coordenada x
es este bloque, establecer x dos, y
lo hacemos antes de mostrarlo. De lo contrario, lo haremos podríamos ver un movimiento y no
queremos eso. Antes de mostrarlo, establecemos
la posición x correcta. Por el momento, esto es -75, y lo que tenemos que hacer es
agregar espacio adicional o agregar espacio x
adicional a
esta coordenada aquí que el botón de acción se mueva con un elemento
seleccionado aquí Tiene que haber un offset y luego se le agrega algo a eso. Vamos a los operadores, y luego tenemos que
agregar algo. Pasemos de -75 primero. Tal vez tengamos que
corregir esto más tarde. Ponlo aquí, establece
x dos -75 plus, y luego por supuesto,
necesitamos de alguna manera considerar el objeto seleccionado Pero no directamente,
necesitamos esto aquí. Número de artículo de cosa
en la lista de inventario. Entonces pongamos eso aquí. Número de artículo significa el
índice para el número, que pertenece a la
cosa en la lista de inventario, y la cosa es,
por supuesto, índice aquí. Y como no tenemos el índice del
objeto de juego que se selecciona, tenemos que tomar seleccionado
en objeto aquí. Y para la llave, esta
será una, como dije, para la Apple dos
y una rancia tres, pero esto
dependerá del orden
en que el jugador
recogiera los objetos Y esto es importante. Entonces, si el Apple, por ejemplo, está
en el tercer lugar de la lista de inventario, y el Apple es el
objeto inf
seleccionado, el objeto inf seleccionado será dos, ya que el Apple tiene dos
como índice como ID,
y el número de artículo de dos será tres cuando la
manzana esté al final Así que vamos a comprobar esto. Entonces estamos recogiendo
el primer artículo aquí. Y necesitamos
usarlo, claro, y está bien aquí porque -75 es la
posición correcta para este año
además esta será una ya que inf
seleccionado será
el único objeto en
la lista de inventario Entonces este número será uno, entonces es -75 más uno, -74 Ya podemos ver aquí seleccionado en objeto es uno,
así que eso es correcto, y vamos aquí recogiendo, primero
vamos a recoger
la maleta aquí, y luego recogemos la manzana Entonces la lista de inventario
será así. primera entrada es una, la
segunda entrada es tres y la tercera es dos.
Así que vamos a comprobar esto. Lista de inventario, podemos
mostrar uno, tres, dos. Entonces esto es correcto porque la clave tiene el
ID, el índice uno, el satchel tiene el índice
tres o el ID tres, y el Apple tiene el ID dos Hasta el momento tan bueno. Pero claro, esto no es correcto aquí porque esto es sólo
uno, dos, tres. Esto no es suficiente para poner el botón de usar acción
en otro lugar. Podemos probar tal vez tal vez
veamos una diferencia. Sí, podemos ver una diferencia. Es solo un píxel, pero puedes notar que aquí está
un píxel a la izquierda, y luego un píxel a la derecha, y otro píxel a la
derecha si escojo la manzana. Se puede ver que se mueve ligeramente. Está bien, pero tenemos que
multiplicar esto aquí con 40 porque 40 es la distancia entre los
objetos en la lista de inventario. Vamos a los operadores
y al operador de multiplicación aquí Ahora tenemos que multiplicar
esto aquí con 40. Y luego vuelve a ponerla aquí. Es -75 más 40
veces y luego una,
dos, o tres,
dependiendo de la posición aquí Probemos esto. Creo que ya
veremos una diferencia.
Sí, está por aquí. Bien. Veamos qué viene
si hacemos clic en el Apple, el Apple es el
último, y está por aquí. Y el estado está por aquí,
la clave está por aquí. Parece funcionar, pero esta
compensación aquí no es correcta. Y esto es porque siempre nos
multiplicamos con al menos
uno y nunca con cero, así que siempre hay -75
más 40 por lo menos Entonces es por esto que necesitamos
cambiar aquí esta compensación, dos -115, que es -75 -40.
Eso debería funcionar mejor. Deberíamos ver la diferencia
aquí mismo con la llave. Así que eso funciona muy bien. Utilízala. Y ahora podemos ir a la
manzana y a la maleta y vemos que siempre está al centro, de alguna manera centrada sobre el
objeto al que se le hizo clic antes Aquí está justo encima de
la boletería sobre la manzana y sobre
la llave aquí mismo Esto funciona, puedes encontrar
sintonía un poco para que tal vez no esté aquí, sino un poco a la izquierda aquí que siempre esté
centrada aquí, se pueda mover eso un
poquito tal vez así. Y vemos ahora está centrada aquí sobre la manzana también
y la satchel también Creo que esto es lo suficientemente bueno, y el jugador ya puede
ver para qué sirve este uso. En este caso, es, claro, para la llave porque
está justo encima de la llave, aquí está para la
manzana y aquí para la maleta. Eso
debería estar bien. Pero el problema es que,
si uso la satchel, Avery sigue diciendo,
no puedo usar la llave aquí Esto es lo que debemos
abordar en el siguiente video.
51. 51 Visualización de diferentes mensajes para cada uso de objetos: Hemos visto que esta lógica aquí también se aplica
a otras habitaciones. Si hago clic en usar en la Apple
o hago clic en usar en el Satchel, entonces también esto
se hablará aquí No puedo usar esta clave aquí. ¿Qué hacemos al respecto? Necesitamos otro cheque aquí. Aquí se resuelve el rompecabezas para la primera
habitación, así que debemos verificar la
habitación antes de hacer eso. Vamos a controlar si entonces
y pongamos eso por aquí. Así, se ve eso en gris, cómo va a ser, y
es así. Vamos a los operadores, y tenemos que verificar
la habitación. Aquí la igualdad. Ahora necesitamos la sala de conteo. Si contar habitación es igual a dormitorio, que es la primera habitación, entonces podemos hacer estas comprobaciones. De lo contrario, aquí no hacemos nada. Intentemos esto y
deshagámonos de la
lista de inventario aquí. Ocultar. Recoger la llave
debería funcionar todavía. U y luego estamos
en la habitación contigua. Ahora recogemos la
manzana y la cartera. Y aquí si usamos la
cartera, no se muestra nada. Si usamos la manzana, no se muestra nada, y
también lo mismo para la llave. Entonces la llave no hace nada. Si lo uso en la segunda habitación. Si lo uso en la
primera habitación, esto funciona, y si lo uso en
la segunda habitación, aquí
no se hace nada. Entonces eso está bien. Pero claro, tenemos que hacer algo cuando estamos
en una segunda habitación, los jugadores en la
segunda habitación y se usa
la cartera y
la manzana Entonces al menos deberíamos exhibir algo o hablemos
alguna vez algo. Bien, así que esto es fácil porque solo revisamos
la habitación actual. Otro si entonces,
primero vamos a arrastrar eso aquí, y podemos clonar
esta condición aquí, así que sólo con el botón derecho del ratón
haga clic en Dublicate Y ponlo por aquí. Si la habitación actual es cocina, estamos en una segunda habitación,
y ahora podemos decir algo, así que duplique esto, por ejemplo. Por supuesto, ahora podemos verificar qué objeto se está
utilizando en este momento. Pero por ahora, solo hablamos, aquí no
puedo usar este objeto. No puedo usar este objeto aquí, y luego ponemos esto aquí debajo del otro si
habitación actual es igual a dormitorio, así, muévelo
un poco. Bien. Entonces si la habitación actual es recámara, entonces tenemos la vieja
lógica para la primera habitación, y si la habitación actual es cocina, entonces solo decimos, no puedo
usar este objeto aquí. Podemos ser más específicos después, pero por ahora, intentemos. Esto no debería cambiar
nada aquí. Pero aquí, después de haber
recogido los dos objetos, ahora
podemos usar y Avery está
diciendo esta frase aquí Es la misma frase para
ambos objetos, claro, o incluso para
la llave, es lo mismo. Por supuesto, ahora podemos verificar
el objeto seleccionado. Entonces eso es en viable
seleccionado en objeto. Esto es esto de aquí. Podemos
hacer otro si entonces aquí. Y comprobar la igualdad. He seleccionado objeto es y
luego la idea del objeto. A lo mejor si es
uno, es la clave, y podemos decir algo así como
he usado la llave todo listo, por ejemplo, pon eso aquí y podemos duplicar
esto. Guarde eso. Si son dos, entonces
es la manzana. Podemos decir algo
por la manzana. Mueve eso un
poco. Yo mejor. Digamos que será mejor que
no la coma aquí, sino que la lleve conmigo a
s, algo así. Otra vez, boca derecha. Entonces para el Satchel, por lo que este será el caso donde el objeto info
seleccionado es tres Tengo que llevar eso a la
escuela, así como así. Al final, esto
significa que no se puede utilizar ninguno de los objetos
de la segunda habitación. Entonces para resolver el rompecabezas aquí, lo
hacemos muy fácil. Solo tienes que recogerlos, y luego puedes irte
a la derecha de aquí. Y claro, puedes pensar un rompecabezas diferente aquí donde tienes que usar la manzana en, por ejemplo, la cartera, y luego puedes dejar
algo así Podemos extender eso, tal vez no. Pero primero probemos esto aquí. Entonces para cada objeto, aquí
hay un
mensaje diferente dependiendo de cuál
se seleccione. Bien. Entonces primero, la clave, claro, Úsalo. Eso está bien. La manzana y la cartera.
Primero, usa la llave. Ya he usado la llave y aquí,
Apple, será mejor que
no la coma aquí,
sino que la lleve a la escuela. No es suficiente. No puedes leer eso, así que
hagámoslo 3 segundos aquí. Utilízala. Será mejor que no me la coma
aquí, sino que la lleve conmigo. Eso está bien. Y usa el Sach Tengo que llevar eso a la
escuela. Esto es. Ahora tenemos que encargarnos de que
Avery salga de esta habitación aquí. Por el momento, esto no
es posible si intenta salir la habitación del
lado derecho. No es posible. Entonces esto tenemos que implementar, y tenemos que verificar si tanto la cartera como la
manzana están en el inventario,
y luego Avery puede salir de
la habitación y puede salir de la
casa para ir a la
52. 52 Comprueba las condiciones de salida: Necesitamos ajustar
las condiciones de salida
para las dos habitaciones que tenemos. Para la primera habitación,
ya tenemos un cheque. Esto es aquí, si toca color, entonces asumimos que Avery
está tocando la puerta, y luego verificamos
si tiene la llave, si no tiene la llave, entonces decimos que la puerta está cerrada Debo haberlo cerrado mientras
sonambulismo y luego ella cogió la llave y la usó en el mientras estaba parada
en la puerta, entonces ella puede salir de la habitación Entonces lo primero que tenemos que
hacer es refaccionarlo un
poco porque este es un bloque
bastante largo aquí, así que necesitamos extraer
esto si aquí Así que vamos a arrastrar eso si fuera, si toca color, lo arrastramos aquí y lo ponemos en
un bloque personalizado. Entonces hacemos un bloque y
lo llamamos check bedroom exit, así como así sin
ningún parámetro aquí. Entonces ponemos eso aquí. Y entonces necesitamos un si, y verificamos
la habitación actual. Entonces si la
habitación actual es igual a recámara, Entonces necesitamos la variable de
habitación actual aquí. Y aquí ponemos recámara. Entonces podemos llamar a nuestra salida de recamara de cheque de
bloque. Bien. Y esto lo ponemos aquí
en el bucle F alguna vez más. Entonces esto no debería cambiar
nada porque acabamos refactorizar aquí este check
en este bloque personalizado Bien, así que vamos a comprobar si esto realmente no está cambiando nada. Y parece, funciona. También esto no está haciendo nada aquí si Avery
intenta salir de aquí Aquí no se dice nada. Esto es lo que tenemos
que comprobar, claro, si Avery intenta salir de aquí Tenemos que verificar el estado
para salir de esta habitación aquí.
¿Cómo lo hacemos? Nosotros solo verificamos el
puesto aquí de Avery. Bajo movimiento, tenemos
esta posición x aquí. Vamos a arrastrar eso, y
definimos otro bloque. Revisar salida cocina. Y aquí podemos
tener también si entonces, comprobamos si la posición
es mayor que la exposición
mayor que digamos 200 tal vez y entonces
podemos hablar algo Primero digamos o hablemos. Usamos nuestro
bloque personalizado hablar aquí, porque de esta manera
no bloqueará nada. Solo dulicar
esto, ponlo aquí, y nosotros no puedo irme sin mi taletero
y algo de comer, y los segundos deberían estar Primero verifiquemos esto. Tenemos que ir a
la segunda habitación, claro, y ahora
directo a la salida. Por supuesto, no está
funcionando. ¿Por qué no? Porque no lo hemos llamado. Así que vamos a duplicar esto aquí. Ponlo justo debajo de la
otra habitación si actual. Y entonces
habitación actual equivale a cocina. Entonces llamamos aquí a nuestro nuevo bloque. Así que revisa la salida de la cocina. Oh, ahora veo que es un orden
diferente aquí, revisa la salida de la recámara, y
revisa la salida de la cocina. Pero en fin,
dejémoslo así. Entonces si la habitación actual es cocina, verificamos el estado de salida para la cocina, que aquí
se define. Y por el momento, simplemente
no es posible
salir de la habitación aquí. Vamos a intentarlo de nuevo. Desde el inicio, Bien, quien puede ir y ahora no puedo irme sin mi mochila
y algo de comer Sí. Entonces eso es correcto ahora. Pero claro, aquí tenemos que
revisar la mochila
y la manzana Si ambos están en el inventario, entonces Avery puede
salir de la cocina Podemos salir de la casa
y luego ir a la escuela. Este es un sencillo. Hagamos esto, haz un poco de espacio aquí. Dentro de esta exposición si
mayor a 200, podemos poner otra si
pero ahora es si otra cosa, así que tenemos que comprobar
si hay variables Si la lista de inventario contiene, y necesitamos verificar
dos cosas, y es por eso que necesitamos
el bloque final aquí. Primero está la
lista de inventario contiene, y luego tenemos dos, que es el índice o el
ID para el Apple, y aquí necesitamos nuevamente la lista de
inventario contiene tres, que es la satchel Si ambos están en el inventario, entonces podemos decir
algo y de otra manera, decimos que no puedo irme como antes. Duplicemos
esto también y aquí. Solo podemos decir por el momento, está bien, creo que decirlo, ya
puedo irme a la escuela, y probemos que esto funcione. Empecemos de nuevo.
Usando la llave. Escojamos la manzana. Escoge la mochila, y
ahora ya podemos irnos. Ya puedo irme a la escuela. Por el momento, ahora Avery
podría salir de la habitación. Podríamos cambiar de habitación aquí, pero creo que por ahora está bien. Ella dice, ya puedo irme, y si no tienes a los
dos recogidos aquí, la manzana y la
bandolera, entonces dice, no
puedo irme sin mi
taletero y algo de comer Eso me parece
genial porque esta es la solución para
nuestra segunda habitación, y de esta manera, el jugador puede
resolver el segundo rompecabezas, lo cual es bastante fácil. Sólo hay que recoger dos
objetos y luego irse. Pero claro, siempre
se puede complicar que
el jugador tenga que combinar
tal vez dos elementos juntos,
tal vez crear otro
elemento a partir de él, o poner la manzana tal vez en la boletería,
algo así, o tal vez tengas que
usar la manzana en un cuchillo para cortar para
cortar la manzana, y luego la puedes
llevar a la escuela A lo mejor esa es la solución, pero aquí tienes el
patrón de cómo hacer esto.
53. 53 Nuevo juego Jump 'n Run: Bien, estamos aquí
para comenzar nuestro próximo juego, y este próximo juego
será un juego de carreras de salto. Entonces tenemos a este gato aquí, y nos quedamos con un gato. Este gato saltará. Se irá en plataformas. Recogerá mermeladas,
estrellas, lo que sea, y esta es la
oportunidad de obtener nuestro control de salto y
control de carrera aquí en cero. Hasta ahora acabábamos de hacer nuestra nave espacial controlable
por el jugador Y también Avery era
controlable izquierda, derecha. Pero se trata de saltar, de animación, de gravedad. Entonces comencemos. Primero, lo que necesitamos
es un piso, un suelo. Entonces pintemos algo aquí. Vayamos al escenario
y luego retrocede, y aquí podemos tomar este rectángulo aquí
para hacer el piso. Entonces solo haz un rectángulo,
algo así. A lo mejor cambiamos el color. Entonces algo así
y el color
será como marrón tal vez o
hagámoslo verde, un poco más oscuro, así que eso
podría ser algún tipo de hierba. Entonces eso está bien. Ahora tenemos el terreno, y también tenemos un
esquema aquí o
puedes decidir deshacerte
del esquema
seleccionando este año. Entonces podemos hacer eso, y entonces no
tienes el esquema. Pero por ahora, creo que
tomamos el negro como contorno. Ahora, tengo que hacerlo
un poco más fuerte, tal vez así y un poco más ancho,
algo así. Aquí tenemos el suelo,
y aquí tenemos al gato. El gato es un poco demasiado grande. Diría, así que solo
vamos a seleccionar el gato, y luego podemos
cambiar el tamaño al 50 así que 50%, lo que parece bien. Entonces dejémoslo así. Y aquí podemos echar un
vistazo a los disfraces. El primer disfraz es el
gato en esta posición aquí. El segundo es una especie
de gato saltador, entonces esto es lo que podemos usar
en la fase de salto entonces. Hablando de saltar, estableceremos aquí
nuestra primera
posición de partida del gato, así que arrastremos al gato tal vez por aquí,
y a partir de ahí, el gato caerá al suelo,
caerá al suelo aquí, caerá al suelo aquí, cada vez que se haga clic en la marcha, cada vez que comience el juego Así que vamos a los eventos, y luego cuando comience haga clic.
¿Qué hacemos aquí? Por supuesto, necesitamos un bucle de
juego, así que un para siempre. Esto lo podemos arrastrar aquí, y necesitamos establecer la posición
inicial
del gato para que cada vez que
reiniciemos el juego, el gato esté
en esta posición, así que arrastre vaya a x e y aquí, y las coordenadas deben
ser las coordenadas actuales. Entonces podemos empezar, pero no va a pasar nada porque acabamos de establecer esta posición aquí, podemos arrastrar al gato
lejos y luego comenzar, y se
reposicionará aquí a la posición
inicial Entonces, ¿cómo hacemos que el gato
caiga de ahí al suelo?
Eso es bastante fácil. Tenemos que cambiar y
del gato, y no por diez, sino por algo
como tal vez cinco, pero de esta manera va a subir, así que es menos cinco, y el gato bajará. Entonces, al cambiar aquí, automáticamente cae, pero por supuesto que aquí cae
debajo del suelo. Entonces eso es lo que debemos
evitar, claro. Pero por ahora, el gato
acaba de caer aquí. Pero aquí no hay señales de
gravedad de aceleración. El gato tiene una velocidad constante, lo cual, por supuesto, no es bueno, pero primero hagamos que nuestra detección de
colisiones funcione con el suelo. Entonces, ¿cómo podemos verificar
la colisión
del gato con el suelo
aquí? Eso es bastante fácil. Tenemos que ir a la detección, y aquí tenemos
este color conmovedor, y este color tiene que ser, por
supuesto, este verde que tenemos. Así que haz clic en este cuentagotas aquí y selecciona el
verde del suelo Entonces ahora tenemos el color
correcto. Y necesitamos un control
aquí si entonces. Entonces, si toca el color, ¿
qué hacemos? Por el momento, podemos
simplemente detener el guión aquí. Entonces esto está deteniendo el juego
completo como lo es. Detener todo saldrá inmediatamente de todos los scripts y no hará nada más. Entonces entonces todo se detiene y ya no
se ejecuta ningún script. Entonces también este velop ya
no va a correr. Entonces esto
evitará por completo que el gato se caiga. Ojalá. Entonces
veamos si esto funciona. Entonces si el gato está
tocando este color, entonces detén el guión
aquí, detén el código. Veamos si esto
funciona, y funciona. Y echemos un vistazo
más de cerca aquí. Podemos ver que el
pie del gato aquí está dentro de la zona verde, y eso es, por supuesto, no lo que queremos, así que
tenemos que arreglarlo después. Pero por ahora, tenemos
al gato que cae. Y luego se detiene cada vez
que golpea el suelo aquí. Pero claro, esto es
un poco tarde, así que el pie necesita
estar sobre el suelo, claro, así que tenemos
que pensar en una solución para eso. Pero por el momento,
lo siguiente que implementaremos
será la gravedad.
54. 54 Simula la gravedad: Entonces el gato
ya está cayendo como podemos ver aquí, pero no es realista porque no tenemos nada
como la gravedad, lo que aceleraría
la velocidad aquí. Entonces esto es solo una velocidad uniforme, que, por supuesto,
no es físicamente correcta. Bien. Pero, ¿cómo simulamos
la gravedad? Muy fácil. Cambiamos y por, en este caso, menos cinco aquí, y esto
es un cambio constante, y necesitamos que este
cambio constante sea cambiado, que sea dinámico, y esto debe ajustarse
en el for evolut Muestro lo que quiero decir,
pero antes de hacer eso, vamos a introducir una
variable a la que
llamamos velocidad o mejor llamamos velocidad y porque
queremos también una velocidad
para la dirección x. Entonces lo llamamos velocidad y, y sólo por esta
spride, claro, porque esta novia
está haciendo la moción Bien. Ahora tenemos velocidad y Ahora la ponemos al inicio
del
juego a un cierto valor. Así que vamos a configurarlo en
uno, no a mi variable, sino a la velocidad
y aquí, y podemos borrar o borrar
esta mi variable aquí. No necesitamos eso.
Y por cierto, deberíamos nombrar nuestro juego de
saltar y correr. Entonces lo llamamos saltar por ahí, no muy creativo,
pero claro,
puedes nombrarlo de otra manera, pero yo lo llamaré
así aquí. Bien. Entonces ahora si hemos establecido la velocidad y en uno,
necesitamos usarla, por
supuesto, y la usamos
aquí en esto para
evolut en lugar de esta
constante menos cinco Así que vamos a arrastrar la velocidad y
aquí al cambio y
y, y tenemos cambio y velocidad y. así podemos establecerlo en menos
cinco y luego intentarlo de nuevo. Entonces nos deshacemos de esto aquí también, escondemos el despliegue de velocidad y para que podamos ver caer
al gato. Ahora el gato vuelve a caer. No hay cambios, pero ahora tenemos la posibilidad de introducir una estimulación por gravedad.
¿Cómo lo hacemos? Cambiamos la velocidad y, por una cierta cantidad en cada iteración aquí
en la evolución cuatro Entonces al final,
podemos cambiar la velocidad y por menos, digamos 0.5. Empecemos con esto
y veamos cómo funciona esto. Esta es una gravedad bastante
fuerte aquí. Entonces el gato realmente está
cayendo rápido. Pero creo que está bien. También
podemos cambiar esto a, por ejemplo, menos
uno y luego probarlo. Entonces está comenzando lento y luego cada vez más rápido
muy rápido. Puedes experimentar un
poco con los ajustes aquí, así que cambia eso y cambia
la velocidad inicial aquí. Pero se puede ver
que esto es más realista que tener una
velocidad uniforme aquí todo el tiempo. Una velocidad constante no es natural. Entonces esto es una especie de simulación para la aceleración aquí, para la gravedad de la Tierra. Y creo que esto es un
poco demasiado lento. Entonces tal vez comencemos con menos dos. Sí, creo que está bien. A lo mejor deberíamos
empezar un poco más rápido así
y luego
hacerlo un poco
menos. Probemos esto. Ahora, eso es demasiado lento. Vamos a
hacerlo un poco más alto. Eso es demasiado rápido. Se puede ver el gato está atrapado en
el suelo aquí. Entonces tal vez eso estuvo
bastante bien aquí. Siempre podemos ajustarla después
porque tenemos
esta variable aquí, así que puedes ajustar
estos dos valores aquí. O podemos, por supuesto, poner aquí
también una variable
para este valor, que podamos hacer una nueva variable
y llamarla gravedad. Y tal vez debería
ser para todos los sprites, porque la gravedad debería ser
la misma para todos los sprites, no solo para este Entonces digamos para
todos los sprites aquí, y luego podemos establecer la
gravedad aquí -0.5 y luego poner gravedad aquí en
este cambio velocidad y por gravedad. Vamos a intentarlo. No debería ser la diferencia. Entonces aquí se puede
ver explícitamente de una manera muy agradable que el gato se está hundiendo en el suelo porque la
velocidad es mucho mayor ahora, y la
detección de colisiones es lenta, por así decirlo, el gato está
cayendo al suelo de esta manera Entonces esto es lo que abordamos
como el siguiente problema, pero no es muy
difícil hacerlo, pero podemos hacer uso de otra característica de los
bloques personalizados cuando lo hacemos. Entonces, el siguiente video será sobre tirar al gato del suelo
nuevamente hacia la superficie, y para ello, necesitamos una
nueva característica para los bloques.
55. 55 Excavación del gato: Entonces el gato se está cayendo. Está bien, pero está
atascado en el suelo. Entonces, ¿qué podemos hacer al respecto? La respuesta es que podemos
desenterrarlo de nuevo. ¿Y cómo
lo hacemos con una repetición? O, en este caso, es repetir hasta Así que arrastra esta repetición
hasta bucle aquí. Y ahora necesitamos una
condición aquí. Y para esta condición,
volveremos a usar el
color conmovedor. Tan conmovedor color. Si este sprite está
tocando el color, y debe ser del mismo
color que el suelo Así que escoge el color
del suelo. Debe ser de este color. De lo contrario, no va a funcionar. Y repetimos hasta tocar el color. No, repetimos hasta
no tocar el color. Esto no aquí bajo operadores, este verde no, necesitamos
usarlo no tocando color. Arrastra eso al no aquí y esto no
necesita ir aquí. Esto, necesitamos repetir
hasta no tocar
más el color para que el gatito esté realmente fuera del suelo. Algo así tal vez. Y entonces podemos detenerlo para que
este bucle no continúe aquí. ¿Qué hacemos hasta que el
gato esté fuera del suelo? Tenemos que moverlo, por
supuesto, fuera del suelo. Y esto es cambiando
la y por supuesto. Necesitamos cambiar y por uno
porque uno está hacia arriba, así que necesitamos cambiar y en este bucle siempre y cuando
esté tocando el color, así que cuando ya no esté tocando
el color, entonces este bucle saldrá, y el gato está en la superficie. Entonces esa es la teoría, y ahora tenemos que
ponerla en alguna parte de aquí. Y claro, tenemos que hacerlo aquí en esto si toca color. Si toca color, entonces
el gato ya está dentro del suelo dentro de
esta zona verde aquí, y tenemos que ir hacia arriba
cambiando y por uno. Paso a paso,
vamos de nuevo hacia arriba. De bajar, caer
al suelo, volvemos a subir hasta que el gato
ya no toca este color. Entonces después de eso, después de que
el bucle haya salido, entonces paramos todos, y el gato
debería estar en la superficie, sin tocar más el color. Vamos a probarlo y se
puede ver que está funcionando Así que es lentamente,
enfatizo, poco a poco
saliendo del suelo otra vez, y luego deteniéndose
en la superficie. Entonces de esta manera, esto es
bueno porque se puede ver el procedimiento
aquí, lo que está haciendo. Entonces el gato es un píxel
por un píxel yendo hacia arriba hasta
llegar al
punto en el que no está tocando
el color verde aquí. Ya más. Entonces esto está funcionando, pero no es muy agradable para el jugador porque
esto es visible. Este levantamiento del gato es
visible a la superficie. Entonces tenemos que hacer
algo al respecto. Y esto es posible con
la ayuda de un bloque personalizado. Entonces hacemos un bloqueo. Y lo llamamos arreglar Y. Esto es para arreglar la corneta y, que es un
poco demasiado baja para estar en la superficie del color
de este rectángulo Pero no hagas clic en K
ahora mismo porque necesitamos
marcar esta casilla aquí, correr sin pantalla, actualizar. ¿Qué significa eso? Ya lo
podemos ver. Entonces marca esta casilla, haz clic en OK, y luego pondremos esto aquí, esta repetición hasta dentro de
nuestro bloque define aquí. Así que define fix y Entonces vamos a reparar la posición
y aquí para el gato, y a esto lo llamamos por supuesto, siempre que el gato esté tocando el suelo o esté
tocando el color aquí. Vamos a probar esto. Y vemos que ya no vemos este
levantamiento del gato. Entonces esto soluciona nuestro problema. Pero ¿por qué? Como puedes ver si
vuelves a hacer clic en Editar. Esta es la casilla de verificación que
hemos marcado ejecutar
sin actualización de pantalla, y esto es exactamente
lo que se supone que significa Entonces no se puede ver nada de lo que se hace aquí
dentro de este bloque personalizado. Entonces todo lo que se hace aquí no es refrescar
la pantalla. Entonces eso significa que este
levantamiento aquí no es visible. Y esto es exactamente lo que
necesitamos para este procedimiento aquí. Y además, hay otra
ventaja en esto, y la ventaja
es que es mucho más rápido sin actualizar la pantalla. Entonces este bloque aquí o este
código aquí dentro se ejecuta mucho más rápido que todo el código que está aquí en
este bucle forever, por ejemplo, porque no
hay necesidad refrescar la pantalla
para dibujar la pantalla. Y en scratch,
hay una velocidad de fotogramas, una velocidad de fotogramas fija de
30 fotogramas por segundo, se
realiza una actualización de pantalla 30 veces por segundo, y todo lo que hagas aquí
activará una actualización de pantalla, y por eso no puedes
alcanzar cierta velocidad aquí. Por lo que se limita a estos
cuadros por segundo, 30. Pero si usas un bloque personalizado aquí con esta casilla de verificación aquí, ya no
estás limitado. Todavía hay un límite aquí
porque no puedes bloquear toda
la CPU de tu computadora aquí mientras haces esto
aquí dentro del bucle, pero es mucho más rápido que
con la actualización de pantalla. Entonces podemos ver aquí que el gato está completamente sólido
en la superficie del suelo, así que no hay que hundirse
y volver a subir Y esto es muy bonito
porque de esta manera, un lado, es más rápido, y por otro lado,
no se puede ver nada en la pantalla que se haga
aquí dentro de este bloque. Muy importante. Entonces si tienes algo que hay que hacer muy rápido y con rendimiento
más rápido
entonces, por ejemplo, la actualización de pantalla normal, entonces puedes hacerlo aquí dentro un bloque personalizado con
esta casilla de verificación aquí, ejecutar sin actualización de pantalla. Como dije, todavía hay un límite a lo que se puede hacer, en cuanto al
rendimiento, pero aquí, esto es mucho más rápido, y no se pueden ver los efectos hasta que se termine este bloque. Entonces después, claro, este bloque terminó,
entonces podrás ver los efectos en la pantalla. Pero aquí dentro, por ejemplo, si y se cambia por uno, este cambio aquí no se
renderizará a la pantalla, sino que se continúa aquí en este bucle hasta que se sale de este
bloque Bien, entonces ahora tenemos la
caída del gato, y sí,
y el gato está parado en tierra
firme sin
hundirse en un barro o algo así Entonces esto es agradable, y ahora podemos implementar
los controles para mover
al gato a izquierda y derecha, y también, por supuesto,
para saltar.
56. 56 El gato salta: Antes de hacer los controles
aquí para la parte de salto, necesitamos cambiar de vestuario. Entonces, si el gato se cae, tenemos que poner este disfraz, que ya está ahí, el primer disfraz inicial, pero hay que hacerlo explícito. Entonces cuando se hace clic en go, entonces se
debe escoger el disfraz adecuado, entonces es disfraz, que es
este tipo de gato saltador Y si el gato realmente está
golpeando el suelo, deberíamos cambiarnos a un disfraz
diferente aquí. Si toca color, entonces arregla y, y antes de eso, podemos cambiar el disfraz
aquí por el primero. Y probemos si esto funciona. Y vemos que funciona en
cuanto el gato está
golpeando el suelo, cambia a este otro
disfraz por el primer disfraz. Bien, entonces esto está funcionando, y ahora necesitamos agregar
controles para el salto, y esto es con la
barra espaciadora, yo sugeriría, así que tenemos que poner
un si aquí, si, y luego tenemos que verificar
que se oprime la tecla espaciadora. Así que esto está aquí bajo detección, y tenemos esta
tecla de presionar el espacio. Ya es espacio aquí, pero también puedes saltar con una tecla
diferente si quieres, así que tal vez flecha arriba, algo así, pero aquí estoy
usando la tecla de espacio. Entonces pongamos eso aquí
en el para evelop. Entonces tal vez aquí, y
tenemos que alargar eso. Así que asegúrate de que todo el
código que ya
está ahí no esté posicionado
aquí dentro de esto si porque necesitamos
poner algo más aquí. Entonces se presiona la tecla espaciadora, entonces hacemos algo de otra manera, o después de eso, hacemos el resto aquí que
ya hicimos antes. Bien, ¿qué hacemos si
el espacio se mantiene presionado? Esto es sorprendentemente fácil. Necesitamos una velocidad para ser
más rápidos de lo que es ahora en estos momentos esto es algo
desconocido un valor aquí, así podemos mostrarlo así. Entonces, deshagámonos de la gravedad. Eso nos hace falta. Es una constante, así que no necesitamos
mostrar eso. Y aquí tenemos el -16.5. Este es el valor en este momento. Entonces, si el gato
cae, alcanza esta velocidad, y entonces ya no cambia. Pero creo que
todavía hay un problema. primer problema es que
ahora el juego se detuvo, así que ya no podemos interactuar con el gato ni
con el código aquí. Así que tenemos que quitar
esa parada todo aquí. Así que guarda eso.
El otro problema es que no estamos poniendo la
velocidad y a cero. Esto debemos hacer. Si
vas aquí a arreglar y, y entonces podemos hacerlo
aquí atrás después de
la repetición hasta que aquí atrás después de
la repetición hasta cambiemos la velocidad y a cero. Entonces debería ser cero aquí. Pero sigue fluctuando. Y esto se debe a que aquí
siempre estamos cambiando la velocidad. Entonces cambia la velocidad y por gravedad. Pero no hablemos de
eso por el momento. Entonces hay algo que
tenemos que hacer aquí si se presiona el espacio de teclas. Entonces eso es lo que necesitamos
implementar aquí. Este es un
método muy fácil para el salto. Necesitamos simplemente establecer la velocidad
variable aquí, velocidad y, a un cierto valor. Digamos ocho, por ejemplo. Y lo que esto hace es que
restablece la velocidad y a ocho. Entonces ocho es hacia arriba. Y esto hace que y
del gato se incremente
a este ocho, y luego la gravedad lo cambiará, luego retrocediendo paso a paso, dos vuelven a bajar. Entonces veamos cómo funciona esto. Entonces el gato está cayendo
y pre espacio, y el gato está saltando. Entonces esto ya funciona, y esto es simplemente
fijando la velocidad y, dos, ocho aquí en este caso. Y con este ocho, se puede
decir lo alto que está saltando, así que quizá pongámoslo en 16. Y entonces podemos ver que aquí
es un salto muy alto. Es demasiado alto, así que creo que ocho es razonable.
Ahora, ese es un buen salto. Siempre se puede ajustar después, claro, y ocho es una
buena relación calidad-precio, creo por ahora. Entonces, ¿qué hicimos aquí? En realidad, acabamos de
introducir aquí, el cambio de
vestuario, claro, que no es tan importante
para la parte de salto, pero esta es la parte
importante aquí. Si presiona el espacio de teclas, entonces establece la velocidad y en
ocho, y eso es todo. Y claro, la gravedad se
encargará del resto. La velocidad ocho aquí está provocando que
la captura vaya más alta. Pero entonces otra vez, aquí, la gravedad siempre se
resta de la velocidad y. entonces la velocidad será entonces
negativa o cero, y cero, estará en
la cima del salto Aquí en alguna parte de aquí. Este
punto, será cero, y luego la velocidad volverá a
ser negativa, y luego el gato
vuelve a caer. Siempre que la velocidad y es positiva, entonces el gato va subiendo, y si la velocidad es cero, no está haciendo nada, y si la velocidad es
negativa, baja. Entonces eso no es nada
más que hacer para el salto o tal vez solo una cosa
más, tenemos que hacer. Tenemos que cambiar de
nuevo los disfraces al segundo. Así se ve y luego
cambia de disfraz. Y si se presiona el espacio de teclas, entonces podemos cambiar
al segundo disfraz aquí. Entonces probemos esto. Y
cada vez que saltamos, el gato va
al siguiente disfraz o este disfraz de
salto o caminata. Y esto está funcionando muy bien. Bien, ahora que hicimos
eso, necesitamos, por supuesto, controlar
al gato en el espacio horizontal,
así que yendo a
la izquierda y a la derecha. Y también, si estamos saltando, necesitamos controlar también
al gato en el aire. Entonces eso es lo que hacemos
en el siguiente video.
57. 57 Mover el gato a la izquierda y a la derecha: Muy bien, así que vamos a mover
el ct a la izquierda y a la derecha. Esto es lo que falta
ahora para el control del gato. Hagamos esto. ¿Qué necesitamos? Necesitamos esto si aquí. Copiemos eso, doblemos esto. Y verás que doble consigue todo el bloque aquí,
el resto del bloque, así que vamos a deshacernos de
esta parte inferior, y ahora necesitamos
no la tecla de espacio,
sino la tecla de flecha derecha. Por supuesto, aquí estamos haciendo otra
cosa, no cambiar de vestuario y
no establecer velocidad y Hablando de velocidad y, necesitamos algo más aquí. Hacemos una nueva velocidad variable x. Esto es lo que necesitamos
para el movimiento x en la
dirección horizontal aquí. Para todos los sprites, claro, solo para el sprite de gato, y podemos usar eso Primero, tenemos que
inicializar esto. velocidad x está al principio cero porque el gato no
debe moverse al inicio, y luego podemos
configurarlo en otra cosa si se presiona
la tecla para el movimiento izquierdo o
para el movimiento derecho. Para la
tecla de flecha derecha, necesitamos cambiar, necesitamos establecer la velocidad x en
algo así como cinco tal vez, y cinco es la dirección correcta. Dubicate esto y me presiona
la flecha izquierda,
entonces es menos cinco Menos cinco estaría
entonces a la izquierda, y necesitamos, por supuesto, cambiar x también, no solo y. Así que vayamos al movimiento, cambiemos x. No por diez, pero tenemos
esta nueva variable aquí, velocidad x, y tenemos que
ponerla en velocidad x aquí. Cambiar x por velocidad x, cambiar y por velocidad y. Suena lógico y lo es, y ahora necesitamos
insertar esto aquí en el espacio correcto
al lugar correcto aquí. Entonces eso debería estar justo debajo
del espacio de teclas if presionado, y esto se alarga un poco, así que podríamos tener que
refaccionarlo más adelante Pero por ahora, lo intentamos. Si presionamos la tecla de espacio,
entonces saltamos, y esto significa que se establece la velocidad
y, y si se presiona la
tecla de flecha derecha, entonces la velocidad x se establece en cinco, se presiona la tecla de flecha
izquierda, luego establecemos la velocidad
x en menos cinco, y luego cambiamos
x por velocidad x tal como lo hicimos para
la dirección y. Eso es. Vamos a probarlo, y podemos ver que podemos controlar al gato con
la tecla del cursor. Ahora estoy presionando a la derecha, ahora estoy presionando a la izquierda. Pero ya ves un problema porque el
gato no se detiene. Ahora no estoy presionando ninguna tecla en absoluto, y el gato sigue moviéndose. Ahora no se mueve
porque está en el borde derecho, pero vamos a comprobar por qué es
así. Estamos estableciendo la velocidad x
en cinco o menos cinco, y al principio con
ponerla a cero. Pero si en esto para everop, lo
establecemos en valor distinto de cero, no
se restablece a cero.
Eso es lo que tenemos que hacer. Establecimos la velocidad x en cero
al final del bucle forever. De esta manera,
pasa por el bucle y fijando la velocidad
x25 o menos cinco, si se presiona alguna tecla,
izquierda o derecha, y luego cambiando x por velocidad x, y luego
poniéndola a cero nuevamente Si en la siguiente iteración se presiona
ninguna tecla, entonces permanecerá cero, y el gato se detendrá Probemos esto. Funciona, así también podemos detener al gato. En realidad, eso es todo.
Nada más que eso. Podemos mover al gato a la izquierda, derecha, con
las teclas de flecha izquierda, todas a la derecha. Pero el problema aquí es que el gato siempre se
enfrenta a la derecha, lo cual por supuesto no es correcto. Si presionamos a la izquierda,
debería de cara a la izquierda, de, esto también podemos arreglar, pero lo hacemos en
el siguiente video.
58. 58 Orientar la dirección correcta y corregir el salto doble: En este video,
arreglaremos dos cosas. El primero, ya lo he
insinuado en el último video. El gato no está orientado
en la dirección correcta. Si paso al gato a la derecha, está bien, pero si lo
camino hacia la izquierda. Debe mirar hacia el lado izquierdo. Pero esto es fácil porque
ya teníamos esto con Avery. Avery también necesitaba girar a la izquierda
y a la derecha. Hagamos esto. Ya sabemos cómo hacerlo. Lo primero que tenemos que hacer es
establecer el estilo de rotación
a izquierda-derecha. Este es este bloque
aquí en movimiento. Así que cuando vaya haga clic. Establecer el estilo de rotación a la izquierda.
Eso es lo primero. Entonces necesitamos dos
dependiendo de la dirección, por
supuesto, dependiendo de
la flecha izquierda o derecha. Tenemos que apuntar en la dirección
correcta aquí. Pongamos el punto en
dirección 90 grados aquí. Ahora ese es el lugar equivocado. No espacio, sino flecha derecha, y luego apuntar en
dirección flecha izquierda. Tenemos que darle la vuelta a eso
-90 grados, y así, deberíamos estar bien Probemos esto, y está funcionando como ya funcionó
en la aventura de Avery Esto no es ninguna sorpresa aquí. Entonces ese es el primer reto y el primer problema
que hemos resuelto ahora. Entonces el segundo problema que tenemos que
arreglar es el problema del salto porque el jugador puede saltar tantas veces también en el aire, como quiera. Entonces eso no es bueno. Cómo arreglarlo es muy fácil. Tenemos que recordar que ya
estamos saltando. Si ya estamos en el aire del gato
ya está en el aire, no
volvemos a saltar. Entonces necesitamos otra
variable aquí, una variable local solo para
este derecho, y la llamamos saltar
y necesitamos ponerla por supuesto a cero
al inicio del salto, y luego tenemos que
configurarla en otra cosa cuando saltemos. El espacio de teclas presionado
establece saltando a uno. Y si golpeamos el suelo aquí, lo
volvemos a poner a cero. Aquí si toca el color verde, entonces lo ponemos a cero otra vez. Probemos esto primero.
Aquí tenemos saltando. Está empezando con cero, y ésta es una. Si golpeamos el suelo,
es cero, así que eso funciona. Para evitar que el
jugador pueda saltar dos veces, necesitamos esto si aquí
y operadores igualdad. Y ahora comprobamos aquí nuestra variable de salto recién
creada. Si ya es uno, no
deberíamos hacer nada. Si es cero, entonces podemos saltar. Entonces aquí está. Tenemos que
poner esto aquí, arrastrar eso a esto entonces. Y luego lo
arrastramos nuevamente a la tecla
if presionada aquí
para la tecla de espacio. Entonces, si se presiona la tecla de espacio, entonces verificamos si hay saltos, así que saltar debe ser cero, y luego podemos establecer
saltar a uno, podemos cambiar de vestuario, y podemos establecer la velocidad
Y en ocho aquí. Entonces el gato saltará, de lo contrario, el gato no saltará. Vamos a probar esto, y
sólo puedo saltar una vez hasta que golpee el suelo, luego
puedo volver a saltar. Así que eso es lindo.
El gato puede saltar, pero solo así de alto
y no más alto. Bien. Ahora tenemos un buen
control de nuestro gato. Pero por el momento, solo
tenemos este avión aquí, el suelo, y esto
no es muy emocionante aquí, y no hay reto. Tenemos que saltar sobre
una nueva plataforma, tal vez o necesitamos
poder caer de una plataforma
al suelo. Entonces esto no es muy atractivo. Entonces tenemos que arreglarlo.
59. 59 Corrección de la detección de colisiones: Bien, para que podamos
mover al gato, el gato está cayendo, y tenemos detección de colisiones, como puedes ver aquí, el gato no
está atascado en el suelo. Pero hay un problema, y
para mostrarte ese problema, necesitamos cambiar un
poco el telón de fondo aquí para que introduzcamos otro
obstáculo, otra plataforma. Lo primero que quiero hacer es
deshacerme del contorno
porque creo que es mejor ver todo y razonar sobre la detección de
colisiones, por ejemplo, si no
tenemos un esquema aquí. Así que da clic en Contorno
y selecciona este año, y el esquema se ha ido. Y ahora hacemos otro
rectángulo por aquí, quizá quizá eso sea un
poco demasiado alto. El gato debería poder
saltar sobre la plataforma. Entonces algo como esto, y
para asegurarnos de que el gato sea realmente capaz de
saltar sobre la plataforma, aumentaremos un poco la
fuerza de salto aquí. Aquí, fijamos la
velocidad y a ocho, y me gustaría
aumentarla a, digamos diez, Así que intentemos
si esto es realmente alto. Sí, está bien,
pero no es lo
suficientemente alto para la plataforma. Entonces hagámoslo 12. Y de esta manera, esto
debería ser fácil para el gato
subir a la plataforma. Y se puede ver que
la detección de colisiones está funcionando aquí también, por lo que el gato no está cayendo de la plataforma ni
a través de la plataforma. Pero si me voy del borde aquí, entonces está cayendo. Bien, hasta ahora tan bien. Pero ahora veamos el problema. Si voy por debajo de la plataforma
aquí con un gato y luego salto, vemos que el gato es realmente teletransportado
a través de la plataforma Y para explicar eso, esto es bastante fácil porque
aquí hacemos este arreglo y, siempre
estamos arreglando la y en una dirección,
y esto está arriba. Así que siempre en cuanto
el gato esté tocando el, el color de fondo aquí, entonces estamos arreglando
y subiendo. Y claro, aquí en
este caso, esto está mal. Tenemos que bajar aquí. Si el gato está saltando desde abajo contra la
plataforma, esto está mal. Entonces lo que tenemos que
hacer es arreglar esto aquí. Lo que podríamos hacer es decidir si
necesitamos subir o bajar para la corrección
para esta fijación
aquí comprobando la velocidad y,
si la velocidad y está por debajo de cero, entonces podríamos hacer la
corrección hacia arriba, y en el otro caso, si es más de cero, entonces podríamos hacer la corrección
en la otra dirección. Pero esto lleva a
algunos problemas más si consideramos también el movimiento
horizontal. Entonces, por ejemplo, el gato
ahora puede simplemente subir
aquí así. Si puedes ver eso, solo
necesito
ir a golpear el borde derecho
o el borde izquierdo aquí. Entonces el borde derecho del gato está golpeando el borde izquierdo
de esta plataforma aquí, y automáticamente va
arriba, por así decirlo. Entonces esto también está mal. También hay que considerar aquí
el movimiento X, el movimiento en dirección
horizontal. Bien, tenemos que cambiar un
poco la estrategia aquí. Entonces esta estrategia es que
estamos arreglando y en
cuanto notemos que El
gato está tocando el color, y voy a cambiar la
estrategia ahora que
voy a ir en pasos en
la dirección correcta, en la
dirección de velocidad amplia, por supuesto. Y luego por cada píxel, comprobamos si el gato
toca el color, y si toca el color, entonces retrocedemos un paso. Entonces esto es un
poco diferente. Aquí estamos retrocediendo
del gato atascado en el
suelo o en la plataforma. Entonces vamos en este caso, vamos subiendo hasta que el gato ya no esté
tocando el color, pero quiero cambiarlo para
que podamos decir que el
gato debe moverse, digamos cinco pasos
o tres pasos. Y para cada paso, buscamos el toque, y si es tocar, entonces no estamos haciendo el paso, estamos retrocediendo un paso
en la otra dirección. Entonces vamos a ver cómo hacer eso. Primero, tenemos que
cambiar esto aquí, repetir hasta que tenga que repetirse. Así que vamos a arrastrar eso aquí lejos. Y ahora vamos bajo control. Arrastramos este año
, repetimos hasta. Y ahora tenemos que
decir cuántas veces se debe repetir
esto y esta es la cantidad de pasos que
queremos dar en esta ronda. Tenemos que detener el guión aquí. De lo contrario, es hacer
este bucle interminable aquí y no hacer nada en el
bucle. Eso no es tan bueno. Entonces, si estás experimentando tartamudeo
y todo es lento, entonces es posible que quieras
detener el juego aquí Con este código aquí, es posible que obtenga un rendimiento lento
de todo el navegador aquí, así que asegúrese de
detener el juego entonces. Bien. ¿Cuántas veces
debemos repetir esto? El número de veces
depende de la velocidad y. Necesitamos cubrir esta
distancia, velocidad y. Por ejemplo, menos tres aquí. Por supuesto, aquí no se puede
hacer menos tres, pero necesitamos valor
absoluto aquí, y hay un bloque para eso. Aquí podemos tomar el
valor absoluto de Speed y. Oh, este era el bloque equivocado aquí. Tenemos que hacer repetir esto, repetir diez, y luego tenemos que
establecer esto aquí. ¿Qué es absoluto? También puedes elegir
diferentes funciones aquí funciones matemáticas. Si la velocidad y es menos,
digamos menos tres, esta será tres, y si la velocidad es tres, entonces esta también será tres. Es deshacernos de
este menos si hay uno porque no podemos
repetir este bucle, claro, menos tres veces, pero necesitamos
repetir tres veces. Entonces, ¿qué tenemos
que hacer en este bucle? Entonces vamos paso a paso en la dirección de
velocidad de velocidad y,
y necesitamos hacer
una comprobación aquí si velocidad y está por encima de
cero o por debajo de cero. Entonces vamos a conseguir esto si entonces y
el operador mayor que. Y luego dudamos
la velocidad y aquí. Si la velocidad y es mayor que
cero, entonces hacemos algo, o si vamos a hacer otra si
aquí, Duplicar esta, y luego por debajo si la velocidad y está por debajo de cero, así
que esa es esta. Bien. Entonces acelero
y está por debajo de cero, entonces hacemos otra cosa. ¿Y qué hacemos?
Cambiamos y por uno. Entonces si está por encima de cero, entonces lo cambiamos por uno, si está por debajo de cero, entonces lo cambiamos por menos uno. Y si es cero, entonces no cambiamos y en absoluto. Bien. Entonces esto va en la dirección correcta y y el
número correcto de pasos aquí. Entonces esto debería funcionar. Nos hemos deshecho de este año, así que no está funcionando. Entonces el gato se está cayendo por
el momento . No es un problema. Esto es porque aquí
no lo estamos corrigiendo. Así que sólo nos estamos moviendo
en la dirección aquí. Pero también, necesitamos
deshacernos de este año, así que cambia y por velocidad
y Entonces esto es el doble. Deberíamos sustituir esto por fix y. Así que esto no es sólo
en caso de tocar. Entonces esto tenemos que deshacernos tenemos que hacer esto en lugar
de este cambio y por velocidad x Así que esto podemos eliminar. Vamos a quitar eso. El nombre de este bloque es, claro,
ya no es correcto, así que podemos cambiarlo. Agrégalo y luego muévalo. Podemos simplemente llamarlo movimiento, tal vez. Creo que está bien y
asegúrate de que tienes esta casilla de
verificación seleccionada, ejecuta sin actualizar la pantalla. Ahora esto es movimiento, y por el momento, solo se mueve en la dirección amplia, pero está bien, y aquí no se moverá al color de
fondo. Esto es lo que es el objetivo. Tenemos que verificar, por supuesto, si el gato está tocando el
color y luego retroceder. Bien. Entonces ahora en el velop F apenas
nos estamos moviendo
con velocidad y aquí, y estamos comprobando si esto
está por encima de cero o por debajo de cero, y estamos haciendo paso sabio
aquí para que por cada paso, podamos comprobar si el sprite
está tocando el color Bien, ¿qué hacemos si
esto es tocar el color? Este gato está tocando el color. Necesitamos otro si aquí. Pon eso abajo, y
luego si toca color, entonces hemos ido demasiado lejos, claro, y
necesitamos retroceder, así que tenemos que ir a la ubicación y
anterior. Entonces aquí es donde introducimos otra variable,
otra variable local. Entonces hagamos una variable solo
para este derecho, y lo llamamos viejo valor pus. Entonces este será el viejo
valor de pus antes de la mudanza. Entonces, antes de cambiar aquí y, necesitamos recordar
la y actual Así que hagamos este conjunto No gravedad, sino valor de pose antiguo, nuestra variable recién creada aquí, y la configuramos en, vamos al movimiento, y
luego aquí abajo, tenemos esta posición y. Así que pon eso aquí. Establezca el valor de pose antigua
a la posición y. Entonces queremos recordar esta posición y
antes de cambiarla. Entonces, o lo cambiamos
por uno o por menos uno. Y entonces si estamos sintiendo que el gato está
tocando el color, ya es demasiado tarde.
Está tocando el color. no queremos, así que
volvemos a la vieja posición aquí. Así que vamos a establecer y establecer y a la posición
anterior en este caso. R Entonces este es el respaldo. Entonces notamos que
estamos tocando el color, y luego restablecemos esto
al antiguo valor que establecemos aquí al inicio
del bucle de repetición. ¿Bien? Y hay otras
cosas que tenemos que hacer. Tenemos que poner el salto, y tenemos que cambiar de
vestuario aquí. Así que pon el salto a
cero porque ya
no estamos saltando
porque
golpeamos algo, golpeamos la plataforma
o el suelo, y cambiamos el disfraz
al gato de pie. Entonces intentemos si esto funciona, si esto realmente funciona, y vamos a deshacernos de todas estas
variables aquí. Así que esconde todo aquí, y veamos si esto funciona. Bien, hasta ahora
funciona parece funcionar. Y el movimiento en la dirección
horizontal sigue funcionando, claro, porque no lo
hemos cambiado. Y ahora vamos a comprobar si podemos
saltar contra esta plataforma. Oh, estamos atascados. Entonces
no está funcionando del todo. El gato está atascado aquí. ¿Por qué es eso? Porque no
hemos puesto la velocidad y a cero. Entonces esto es lo que ya
tenemos aquí. Entonces pongamos eso aquí
si toca color, entonces necesitamos establecer
la velocidad y a cero. Entonces el gato ya no se
mueve, y simplemente se caerá. Vamos a probar eso. Esto es mejor, y esto parece
funcionar muy bien. El gato puede saltar muy alto ahora, pero creo que está bien. Siempre podemos ajustar eso
aquí con la velocidad establecida y a 12, y tal vez podamos establecerla en 11. Comprobemos eso.
Eso también está bien. Pero aún hay un problema. Entonces veamos si
podemos saltar aquí. Así que el gato se puede
meter por aquí. Se puede ver porque esto es causado por el movimiento
horizontal. Entonces tenemos que
encargarnos también del
movimiento horizontal aquí. Necesitamos reemplazar
este cambio x por velocidad
x con la misma
lógica o similar a la de este año. Entonces tenemos que hacer
todo también para
la x para la velocidad x
y la dirección x.
60. 60 Corrección de movimiento horizontal: Ahora estamos manejando
el movimiento x aquí, así que el movimiento Y ya
está funcionando. Simplemente copiemos este bucle de repetición aquí con el botón derecho de
Musk haz clic en hazlo, y pongámoslo aquí
justo debajo del primero Lo que hacemos ahora es
simplemente reemplazar todo lo que tiene que
ver con y aquí por x. La velocidad y tiene que ser velocidad x. Hagamos esto aquí es la velocidad x, y cambiamos cada
ocurrencia aquí. Borramos esta velocidad y aquí. Velocidad x, velocidad x, y
aquí también velocidad x, y aquí tenemos que establecer la
velocidad x en lugar de la velocidad y. Bien, aquí tenemos que establecer x. Ir al conjunto de movimiento X
dos posición antigua. Podemos eliminar, hacer clic derecho sobre este bloque aquí
y eliminar bloque. Aquí solo eliminaremos este solo
bloque, solo estableceremos y Así que esto ya se ha ido. Ajuste la velocidad x20. Eso ya lo hemos hecho. Cambiar y, cambiar y, necesitamos cambiar eso también, así que cambia x y cambia x Primero, cambiar x por menos uno es el segundo
y aquí por uno, y ahora podemos eliminar esto aquí. Pero esto en y también esto. Por supuesto, esto de aquí
tiene que ser x posición. Entonces esto es aquí abajo.
Establezca el valor de pausa antiguo. Podemos reutilizar esta variable aquí, así que no es problema
usar la misma aquí porque siempre la estamos configurando aquí al
inicio del bucle. Establecer el valor de pausa anterior dos, x posición, velocidad x
mayor que cero, cambio x por uno, velocidad x, menor que cero, cambio
x por menos uno. Eso debería estar bien. Bien.
Vamos a probar eso. Parece funcionar. Pero un problema más
es un poco rápido porque nos hemos
ido este año, cambiar x por velocidad x Tenemos que eliminar eso. Así que borra aquí,
e intentemos ahora. Bien, entonces esto parece funcionar, e intentemos golpear la
plataforma aquí desde un lado. Entonces así es como
vemos un problema aquí. Entonces estamos atrapados aquí con
nuestro gato con los bigotes. Entonces esto es algo que tenemos
que abordar, pero no ahora. Por el momento,
podemos ver que
no podemos entrar en la plataforma. Pero podemos estar atrapados
aquí en el borde. Pero afortunadamente,
podemos sortear eso saltando entonces y saltando nos liberará de que
esto esté atascado aquí. También puedes ver que nuestro
gato no es simétrico. La cola está un
poco más a un lado. Si volteamos al gato, entonces tenemos una colisión aquí, entonces tenemos un toque,
y esto es un problema, y esto es lo que necesitamos arreglar, y lo arreglaremos
con cajas de colisión. Pero por el momento, el movimiento está funcionando. Se mejora. Por lo que no podemos
golpear la plataforma desde abajo y tampoco directamente al
menos aquí desde un lado. Pero todavía podemos quedarnos atascados aquí, y ese es un problema que
tenemos que resolver, y esto lo haremos
en el siguiente video.
61. 61 Golpea la caja, no el gato: Entonces ya he insinuado
en el último video lo que
podemos hacer con respecto a nuestra
detección de colisiones para mejorarla Y quiero mostrarte de nuevo
el problema que tenemos. Entonces, si salto aquí
a la plataforma, se
puede ver que podemos quedarnos
atrapados aquí con la cabeza, por
ejemplo, con la cabeza de un gato. Entonces esto es un problema aquí. Todavía podemos quedarnos atascados, y también con una
cola aquí porque el disfraz está volteado
o el gato está volteado Y luego después del volteo, la cola está dentro de
esta plataforma aquí Entonces está tocando
este color específico, y no se puede mover
al gato afuera, excepto por lo que está funcionando como saltar aquí
en esta posición, entonces esto funciona de nuevo, pero podemos resolver este
problema con bastante facilidad. Y lo hacemos con la ayuda de cajas de colisión o cajas de impacto. Vamos a llamarlo hit box, y lo que es un hit box. En nuestro caso, un hit box
es otro disfraz, así que necesitamos crear
otro disfraz aquí. Vamos a doblicar el primero. Y ahora tenemos un disfraz
que será el hit box. Entonces llamémoslo hit box aquí. Bien. Entonces ahora
no tenemos la caja. Entonces hacemos una caja
con esta herramienta aquí, con una herramienta rectangular, arrastramos una caja aquí en algún lugar de aquí, tal vez, y
luego la ponemos en la parte de atrás. Así que presiona aquí atrás, y ahora el gato
está por encima de la caja. Bien, ¿cuál es el propósito
de este hit box? Primero,
deshagámonos del esquema, así que haga clic aquí, y no tenemos el esquema. Bien, esto no es tan importante, pero prefiero tenerlo así. Entonces, ¿cuál es el propósito
del hit box? ¿Se debe
usar el hit box para hacer la prueba de acierto? Nosotros en nuestro caso, es este color conmovedor. Esta caja se utilizará para
probar el color conmovedor, el color del telón de fondo
del suelo y los obstáculos
aquí y las plataformas. Esta será la caja en la
que
se prueba la colisión o el toque de color. Esto quiere decir que tenemos que deshacernos del gato
aquí, claro. Pero primero, ajustemos un poco
la caja aquí. Primero, debe estar centrado. Arrastre eso hacia el centro
aquí y debería
encajarse en esta cruz aquí
con el círculo. Si lo tienes centrado, solo tienes que ajustar aquí, el tamaño. Así que ponlo justo debajo la última línea tal vez de
los pies del gato. Y luego aquí, también tenemos que
ponerlo en alguna parte de aquí. Entonces en todas partes donde el gato
esté tocando el suelo, también debería estar el hit box. Y aquí necesitamos conseguirlo tal vez hasta que llegue a las orejas
aquí, así que algo así. Entonces creo que podemos
vivir con eso. Podemos probarlo después un poco o
ajustarlo después un poco. Pero ahora vamos a
deshacernos del gato aquí. Así que selecciona todas las partes
del gato y elimóralas. Aquí no los necesitamos.
Entonces este es nuestro hit box, y vamos a mover
ese disfraz aquí, tal vez hasta el final. No es tan importante, pero prefiero tener los
dos fotogramas de animación aquí al principio y
luego el hit box. Bien, entonces ahora tenemos un
hit box para nuestro gato, y ahora necesitamos usarlo. ¿Cuál es la idea para esto? Entonces esta conmovedora prueba de color
aquí es la importante. Para determinar si el gato
está tocando el color, el fondo, el
suelo, la plataforma. Entonces necesitamos cambiarnos a este disfraz de hit box
antes de hacer la prueba, y esto será al
inicio de este movimiento definido. Así que cambiemos a
nuestro disfraz de hit box, cambiemos de disfraz a hit box. Y luego claro, al
final, tenemos que volver a cambiar. Entonces volvamos a cambiar a, digamos, a disfrazar uno. Bien, entonces ya no tenemos este marco de
salto aquí, ya este disfraz de salto, pero lo arreglaremos más tarde. Bien, entonces lo que tenemos ahora es Antes de
hacer la prueba de acierto, la prueba de colisión, esta prueba de color
conmovedor, estamos cambiando a nuestro hit box. Y luego estamos haciendo
esta prueba de acierto,
esta prueba de colisión o toque
con este hit box, y no con un sprite de gato No con un disfraz de gato, al menos. Y luego al final de esta función de
este bloque personalizado, estamos volviendo
al disfraz de gato normal aquí. ¿Qué significa eso? Significa que el,
el jugador no verá ningún hit box aquí porque todo
esto se hace sin
una actualización de pantalla, así que el jugador no verá
este disfraz de hit box, lo cual es bueno porque
no queremos que el jugador vea el hit box porque es
feo y no es un gato. Entonces intentemos si esto
ya cambia algo.
Aquí tenemos a nuestro gato. Vamos a saltar un
poquito y de
inmediato podemos ver que ya
no estamos atrapados. Además la cola no se atasca, y todo
parece funcionar bien aquí. Además, si vamos al
borde de esta plataforma, vemos que inmediatamente nos
caemos en cuanto esta pata de aquí sale de
la plataforma. Entonces uno más, y
luego cae. Así que vamos a echar un vistazo
un poco en pantalla
más grande aquí.
Veamos eso otra vez. Entonces en cuanto esta pierna
se sale de la plataforma, entonces el gato cae, lo cual es muy bonito. Y esto es
por supuesto, porque
tenemos nuestro hit box para las pruebas y ya no el disfraz de
gato. Por lo que no se prueba
para esta cola, por ejemplo, o para todo lo que está
fuera de nuestro hit box. Entonces todavía hay
un problema aquí. Tenemos que deshacernos de
este disfraz de cambio a disfraz uno porque entonces
no tendremos nuestro disfraz de hit box, y necesitamos el disfraz de hit box dentro de este bloque de disfraz aquí, y solo al final, podemos volver
al disfraz original
al disfraz de gato. Entonces tenemos que sustituir este año y este año
por otra cosa. Entonces primero, recordemos qué disfraz teníamos
al principio. Entonces para esto, necesitamos una variable, hacer variable para el
sprite solo traje viejo. Y lo configuramos al inicio
de nuestro bloque personalizado aquí. Establecer traje viejo, y ¿cómo
conseguimos el traje actual? Lo conseguimos de aquí el
número de vestuario no es lo que queremos. Queremos el nombre del disfraz. Así que el disfraz viejo se establece con
el nombre actual del disfraz. Y luego al
final, tenemos que volver a
ponérselo a este nombre de disfraz. Así que arrastra eso aquí, pon disfraz a disfraz. O no es la elección correcta
aquí sino un disfraz viejo. Entonces aquí lo estamos configurando
para golpear box, y al final, se pone de
nuevo al viejo disfraz. Y ahora para estos
dos lugares de aquí, necesitamos cambiar eso a
un conjunto conjunto traje viejo, dos, y luego disfraz, uno. Entonces esto hará lo
mismo que cambiar disfraz
a disfraz uno, pero al final, así que aquí va a ser disfraz uno y ya no
el viejo disfraz. Entonces podemos duplicar esto y también hacer eso aquí en lugar
de este disfraz de interruptor Bien. Entonces ahora recordamos qué disfraz tenía el
gato al principio, y luego estamos reiniciando
esto aquí al final Pero estos dos lugares también
pueden cambiar el traje viejo o el
disfraz al que se restablece. Así que vamos a probarlo aquí. Si sigue funcionando, no
debería ser una
gran diferencia. Pero ahora, la
prueba exitosa debería funcionar siempre con el hit box y ya
no con un disfraz de gato. Entonces se puede ver que esto está funcionando muy bien y el gato se cae, y la cola, por ejemplo, pasa por la plataforma,
lo cual es muy bonito. Para que podamos cambiar un
poco el
hit box para que podamos
ver cómo funciona esto. Así que ve a hit box y
hazlo mucho más pequeño. Entonces algo como esto, tal vez. Y luego empezamos un juego, y vemos que el gato se está
hundiendo en el suelo Todavía podemos moverlo,
pero está en el suelo. Al menos el disfraz, el disfraz de gato
está en el suelo, pero el hit box aquí no lo
está Y claro, esto no es una buena idea
hacerlo así porque
necesitamos que el gato se ponga de
pie y no en el suelo, así que reajustemos eso y
deshagamos los cambios aquí Vamos a intentarlo de nuevo. Y ahora el gato está realmente
tocando la superficie. Bien, entonces ese es
el truco del hit box. Yo diría, este es un truco muy importante porque de esta manera podemos
hacer las pruebas de golpe, la detección de colisiones mucho mejor que con el disfraz de
gato aquí. Y el truco es cambiar el
disfraz a hit box, nuestro hit box, y luego
cambiarlo de nuevo al final. Y todo dentro de
este bloque personalizado es, por
supuesto, no renderizar
a la pantalla. Entonces no verás el hit box, pero verás el resultado. Y el resultado es
que la prueba de acierto está ahora muy mejorada, y el gato no debería quedarse
atascado aquí.
62. 62 Puzzle y segunda habitación: Entonces ahora que tenemos el control del
jugador en el trabajo aquí, así que vamos a revisarlos nuevamente. Entonces podemos saltar, podemos
verificar si hay colisiones, y el gato
al menos en este momento,
no se queda atascado aquí Así que eso es todo muy bonito. Creo que esto es algo con
lo que podemos empezar también. Agrega un rompecabezas para salir esta habitación aquí e
ir a la habitación contigua, y también para hacer de esta habitación un
poco más desafiante. Entonces necesitamos agregar
algunas paredes aquí, tal vez otra plataforma
o tal vez dos plataformas aquí y una pequeña joya que
el gato necesita recolectar. Y entonces si la captura llega a
la gema, por ejemplo, una estrella, entonces la salida
se revelará, y luego el gato podrá
ir a la habitación contigua. Entonces comencemos con un telón de fondo. Entonces hacemos muros aquí
Vamos a copiar este. Selecciona aquí la flecha, y luego esta plataforma aquí, haz una copia de ella, y hacemos una pared a partir de ella. Algo así, tal vez, y luego volvemos a copiar esto
y lo ponemos del otro lado. Entonces ahora tenemos dos paredes, y los gatos no pueden escapar. Y tenemos esta plataforma, volvemos a hacer una copia. Hazlo tal vez un
poco más pequeño aquí, ponlo por aquí,
y luego volvemos a hacer una copia donde estará
la estrella. Entonces ahora, creo que lo tenemos. Entonces tenemos que comprobar, claro, si el gato puede llegar a
todas las plataformas aquí, Así que creo que esto
debería ser posible. Y aquí vemos un problema que el gato no puede
saltar más alto que eso. Entonces tal vez deberíamos poner eso un poco más
al fondo aquí, bajar y hacer de esto
tal vez un salto lejano aquí. Ahora, ahora el gato está cayendo
sobre la plataforma aquí. Eso no es bueno, así que
hazlo un poco más pequeño. Y ahora el gato está
cayendo a un lado. Y vamos a comprobar si
esto es razonable. Sí, creo que es muy fácil, pero está bien.
Podemos vivir con eso. Y claro,
necesitamos ahora la estrella, la gema que el gato
necesita recolectar. Entonces hacemos otro sprite aquí. Búsqueda de estrella. Da click en él, y ahora tenemos la estrella. Es un poco demasiado
grande, así que hazlo como 40%, y ese es el
tamaño correcto, creo. Así que vamos a colocarlo
en algún lugar por aquí, y veamos cómo el
gato puede manejar esto. Entonces eso es fácil.
Eso es fácil, así que eso. Y ahora podríamos recogerlo. Bien. Entonces ahora tenemos que comprobar si el gato toca esta estrella aquí. Y la idea es que si
realmente recoge la estrella aquí, entonces aquí la puerta estará abierta o aparecerá para que
el gato pueda salir. Así que vamos a pintar otro sprite. Entonces podemos hacer el
rectángulo aquí. Algo así
demasiado grande, claro. Entonces hagámoslo
más pequeño como 20. Sí, eso debería estar bien. Pero no podemos hacerlo de este color porque
tiene que ser un color de
paso para que la pistola gato pueda pasar por
la puerta a la habitación contigua. Entonces hagamos un color parduzco. Algo así.
Creo que está bien. Y ahora vamos a posicionarlo. Así que vamos a mover eso aquí. Sí, creo que está bien. Echemos un vistazo en
una pantalla grande. No. No está bien porque aquí
tenemos color verde. Aún así, tenemos que moverlo un poco
hacia la izquierda. Así que vamos a revisar de nuevo, no, aún. Entonces tal vez algo así. Sí. Hagámoslo un
poco más pequeño también. Comprobemos de nuevo. Sí,
creo que eso debería funcionar. Bien. Entonces veamos si el gato
puede caminar por la tienda. Sí, yo trabajo. Bueno,
creo que accidentalmente he movido
esta puerta de aquí. Vamos a ponerlo de nuevo. Bien.
Comprobemos de nuevo. Si el gato puede pasar la puerta. Sí. Está bien. Ahora, por supuesto, la puerta necesita estar oculta
cuando comience el juego. Así que pongamos eso aquí cuando
lag clicó y luego escondamos. Entonces cuando empezamos un juego,
la puerta no está ahí. Por lo que necesita ser revelado
coleccionando esta estrella aquí. Bien, entonces, ¿cómo verificamos la colisión del
gato con la estrella aquí? Eso es fácil. Ya
tenemos esto para siempre. Nuestro bucle de juego, y aquí
podemos verificar la colisión. Así que vamos a conseguir un si aquí. Y tenemos que sentir el tacto, no tocar el puntero del ratón
sino tocar otro sprite, y este será Sr, claro Entonces, si el gato toca
la estrella, ¿entonces qué? Entonces tenemos que revelar
este sprite aquí. Podemos cambiarle el nombre de la puerta, y tenemos que revelar la
puerta. ¿Y cómo podemos hacer eso? Podemos comunicarnos con otros sprites enviando
mensajes, claro Entonces vamos a eventos. Y luego cuando
recibo y necesitamos
definir un mensaje, claro. Pero cuando reciba
este nuevo mensaje, entonces la puerta puede mostrarse. Y aquí, claro,
tenemos que mandar el mensaje. Entonces difundido,
llamémoslo nuevo mensaje aquí. Vamos a llamarlo show exit. Para que aquí podamos recibir esta salida del espectáculo y
mostrar la puerta. Bien, entonces esto tiene que entrar
aquí en esto para velop. Entonces, si toca estrella, luego emite salida del programa, y luego la puerta así
se muestra. Comprobemos esto. Voy aquí arriba a la
estrella, y está funcionando. Ahora, el gato teóricamente podría
ir a la habitación contigua. Pero, la estrella aquí tiene
que desaparecer, claro,
porque de lo contrario el gato
no la estará coleccionando. Entonces necesitamos mandar otro
mensaje aquí a la estrella. O tal vez podamos usar el
mismo mensaje por ahora. Creo que eso también está bien. Entonces, si esta salida del espectáculo se
recibe aquí, primero, mostremos a
la estrella al inicio para restablecer
todo al inicio. Y entonces podremos recibir
este mensaje mostrar salida. Y entonces podemos esconder la estrella. Bien, así que probándolo. Asegúrate de
probar siempre tu lógica. Entonces, en cuanto tengamos
algo nuevo, un nuevo mensaje, o una nueva reacción
a tu mensaje, algo así,
necesitas probarlo. Entonces esto funciona. Esta
estrella ha desaparecido, y los gatos pueden pasar por
la puerta. Bien, bien. Entonces, la habitación contigua debería
ser otro telón de fondo. Entonces por eso
necesitamos dibujar uno, y podemos dudar el primero y simplemente cambiar
un poco aquí Entonces primero, necesitamos
esta puerta, otra vez. Entonces vayamos ahí,
escojamos la flecha aquí, y luego cópiala, y luego vayamos a telones de fondo Nuevamente, el segundo telón de fondo,
y luego pegar esto. Puedes usar este botón
aquí para pegarlo o controlarlo o comandar
V. Y claro, tenemos que redimensionarlo Aquí es demasiado grande. Hagámoslo más pequeño,
más pequeño, más pequeño. Aún demasiado grande, tal vez algo
como esto. Bien. Entonces pongamos eso aquí. Esta será la entrada. Creo que está bien, y
aquí va a entrar el gato. Y para ir a la habitación contigua, necesitamos cambiar de telón
de fondo, claro, aquí vamos de nuevo al código
del gato, y esto lo podemos hacer aquí si se toca
la puerta
tal vez otra si aquí,
si entonces sintiendo, tocando,
puerta, entonces podemos cambiar de
telón de fondo, así que ve a miradas Cambiar telón de fondo, y
luego telón de fondo dos. Y podemos poner esto,
podemos poner aquí, y entonces al menos el
telón de fondo debería cambiar aquí. Vamos a intentarlo de nuevo,
y vemos que
tenemos que restablecer el
telón de fondo aquí, claro. Así que ve al escenario aquí y
cuando Black hizo clic, podemos cambiar de telón de fondo
aquí dos, telón de fondo uno Bien. Entonces ahora estamos de
vuelta en el telón de fondo uno. Vamos aquí a la estrella, y luego podemos salir de la habitación. Y estamos en la segunda habitación. Por supuesto, tenemos que
esconder la puerta aquí. De nuevo, así que vayamos a la puerta
cuando reciba la habitación contigua. No hemos tenido este
mensaje hasta ahora, así que necesitamos crearlo. Así que difunde aquí. Cambiamos el telón de fondo,
pero antes de
que podamos Hacer un nuevo mensaje
y enviar este mensaje aquí al lado habitación para que
la puerta sepa que puede esconderse habitación de al lado y luego esconderse y la
puerta debe desaparecer. Vamos a probarlo de nuevo.
Y la puerta se ha ido, y solo esta puerta está ahí, pero esto es parte
del telón de fondo, así que no podemos esconder eso
y no tenemos que hacerlo. Por ahora hay una cosa más. Tenemos que restablecer el gato
aquí a esta posición. Así que pongámoslo tal vez
en algún lugar de aquí. Entonces la posición x es 208 -208, restablecemos la t dos -208 Vayamos al set de movimiento
dos, ahora vamos a probarlo. Oye, ahí está el paso de la
puerta, y luego empezamos aquí,
lo cual es correcto. No podemos volver atrás, claro,
y no tenemos que hacerlo. Y aquí, esto es
los mismos obstáculos que están aquí y la misma plataforma. Tenemos que cambiar eso, por
supuesto, para que sea un rompecabezas
diferente aquí. Pero por ahora eso funcionó. Así que ahora tenemos dos habitaciones. El primero tiene este rompecabezas
muy fácil. El gato sólo tiene que conseguir la estrella y luego salir de la habitación
por la puerta. Eso es. Y la segunda habitación puede
ser más difícil de resolver. A lo mejor eso depende de
ti. Lo que haces aquí. Creo que aquí tienes
la capacidad de
hacer acertijos más duros. Entonces ya sabemos
manejar colisiones con sprites, y de esta manera, se puede hacer mucho lo mejor aquí, hay
que recoger dos estrellas antes de
que aparezca la puerta para salir de la habitación, o tal vez hay
que saltar sobre
un interruptor o algo así para revelar la
puerta de al lado, algo así. Pero creo que tenemos una plataforma agradable, sencilla, pero agradable
que puedes extender. Y esto es algo
sobre
lo que puedes construir y hacer tus
propios juegos con él. Por supuesto, esto no es perfecto. Entonces, por ejemplo, La animación del gato no es tan agradable. Y
aquí no tiene animación si estás
caminando o corriendo, entonces solo está cambiando de
dirección, pero nada más. Entonces esto es por supuesto,
algo que puedes agregar aquí. No tenemos una animación real
con animación cuadro por cuadro. Apenas estamos cambiando de
un cuadro a otro. Entonces un disfraz para el disfraz de
salto. Eso es. Pero ya has visto cómo
hacerlo con el juego Avis Adventure, así que puedes hacer lo mismo aquí. Y como estamos usando este
hit box aquí, así que recuerda, cambiamos a este hit box
y hacemos las pruebas de hit, no
hay problema con
los disfraces de animación. Siempre se
probará este hit box, y no importa
qué disfraz tengas aquí y qué
animación uses aquí. Bien, así que eso es todo para este
sencillo juego de saltar y correr, esta plataforma o juego, y espero que te
diviertas
extendiéndolo y elaborando quizás
más niveles aquí,
más acertijos, y tal vez
tengas algunos enemigos,
y los enemigos están obstaculizando al gato para que
recoja todas las estrellas, o tal vez también puedas
usar potenciadores para hacer que el gato use una
fuerza de salto más grande, algo así Eso está todo al alcance. Creo que tienes
las herramientas para hacerlo, y espero que te
diviertas haciéndolo.