PROYECTO CARRERA DE COCHES
PROYECTO CARRERA DE COCHES
CONTENIDO
Se trata de una carrera contrarreloj entre los coches rojo y azul. Para ganar, deberás recoger más gemas que tu oponente antes de que acabe la cuenta atrás. Toda gema que cojas añade un segundo extra al contador de tiempo pero debes mantenerte alejado de la nieve o harás un trompo.
Usaremos los controles del juego para mantener tu coche en la pista y recoger gemas. Puedes sacar al otro coche de la pista para obtener ventaja.
Para los controles utilizaremos para un coche las flechas del teclado y para el otro coche las teclas W,A,S y D.
Evita las grandes bolas de nieve y los bordes de la pista o acabarás haciendo trompos.
El pingüino es el maestro de la ceremonia: preguntará los nombres de los jugadores y dará instrucciones al comienzo. Además anunciará el ganador final.
Un juego rápido exige códigos inteligentes. Este juego emplea un "bucle de juego" para que toda la acción ocurra exactamente cuando debe.
Comienza un nuevo proyecto en Scratch y borra el objeto gato. Crea un objeto en blanco con el símbolo del pincel y renombralo como "BucleJuego". Luego crea una variable llamada "CuentaAtras" y haz que se vea en el escenario. Construye el siguiente código para el objeto "BucleJuego". Tendrás que crear los mensajes: "Inicio", "Calcular", "Mover" y "FinDelJuego".
2. A continuación crea dos variables para todos los objetos: "PistaY" (almacena las coordenadas Y usadas para mover el escenario) y "VelocidadCoche" (fija la velocidad a la que los coches se mueven por el escenario). Desmarca las casillas en la sección Variables para que estas variables NO se vean en el escenario.
Añade este código para fijar (recuerda, siempre se deben inicializar las variables) los valores de las variables al inicio del juego.
3. Añade otra variable para todos los objetos, llamada "VelocidadPista", que guarde la velocidad del escenario en movimiento. Desmarca también la casilla para que la variable NO se vea en el escenario. Crea el código siguiente que calcula la posición de la pista cada vez que se ejecuta el bucle del juego. Entenderás como funciona después de crear los objetos de la pista.
En este juego los jugadores tienen que sentir que van a toda velocidad por la pista, pero, en realidad, sus coches no se mueven mucho, es decir, es la pista la que se mueve. La pista está compuesta por dos objetos que encajan sin fisuras, Pista 1 y Pista 2, que se desplazan hacia abajo de modo alterno, dando una sensación de velocidad de coches.
4. Crea un nuevo objeto y llámalo "Pista1". Escoge el pincel del editor de imágenes y fija el grosor en 10. Dibuja los bordes de la pista y asegurate que van desde la parte superior hasta la inferior sin dejar huecos. A continuación colorea de blanco las áreas a ambos lados de la pista con la herramienta de rellenar, creando así un escenario nevado.
5. Ahora duplica el objeto Pista1 para crear Pista2. Selecciona Pista2 y ve a la pestaña de Disfraces. Haz click en el botón "Voltear verticalmente", arriba a la derecha, y el disfraz de la pista dará la vuelta, se invertirá. Al ser imágenes espejo, los bordes de la Pista1 y Pista2 deben coincidir. De momento se verán raros en el escenario pero no te preocupes, lo arreglaremos más tarde.
6. Ahora agrega estos códigos a Pista1 para que se mueva: sitúan la pista mediante la variable "PistaY" del bucle del juego. Intenta ejecutar el proyecto, verás que media pista se desplazará por la pantalla.
7. Construye estos códigos ahora para Pista2, de modo que la segunda parte funcione junto con la primera. Ejecuta tu proyecto y verás que la pista debería desplazarse correctamente por la pantalla.
8. Para colorear la pista vamos a pintar el fondo en lugar de los objetos ya que si no los coches chocarán con la superficie de la pista. Elige el escenario y clica en la pestaña Fondos. Píntala de un color azul como el de la siguiente imagen. Utiliza la herramienta rellenar.
9. Haz más interesante el escenario: Añade algunos árboles. Selecciona Pista1 y haz clic en la pestaña Disfraces. Crea tus propios árboles o arbustos usando la herramienta del editor de imagen. Repite el proceso para Pista2.
Es hora de añadir los coches de carreras. Una vez que tengas un coche moviéndose, podrás duplicarlo para crear el segundo y ahorrarte así mucho trabajo.
10. Haz click en el símbolo de "Elegir un objeto" y carga "Cat" de la biblioteca. Con este objeto nos aseguraremos de que el coche tenga el tamaño adecuado. Abre el editor de imágenes y clica en "Convertir en mapa de bits". Dibuja un coche como el que ves aquí con las herramientas del rectángulo y la elipse. Oriéntalo hacia la derecha, si no parecerá que va al revés durante el juego. Acúerdate de borrar el gato cuando hayas terminado.
11. Renombra el objeto como "CocheRojo" en la lista de objetos. Crea una nueva variable llamada "Trompo", que usarás más tarde para saber si un coche hace un trompo o no. Selecciona la opción "Solo para este objeto" y desmarca la casilla en la sección de Variables para que la variable NO se vea en el escenario.
12. Recuerda que, en este proyecto, los objetos solo pueden ejecutar códigos cuando reciben mensajes del bucle de juego. Añade este código a fin de disponer el coche rojo al inicio del juego.
13. Ahora vamos a añadir controles de teclado al coche. Escoge Mis Bloques, en la paleta de bloques, y clica en "Crear un bloque". Llámalo "Controles Coche" y añade el siguiente código.
14. Añade este código para ejecutar el bloque "Controles coche" cuando el coche reciba el mensaje "Mover" del bucle de juego. Ejecuta el juego y deberías poder dirigir el coche rojo por la pista con las teclas W,A, S y D.
Para que el juego sea un verdadero desafío, puedes obligar a los jugadores a evitar la nieve. Haz que sus coches hagan un trompo sin control cuando toquen la nieve. Para ello, tendrás que crear algunos bloques más.
15. Selecciona el CocheRojo y crea un nuevo bloque en "Mis Bloques" para detectar la nieve. Llámalo "BuscaColisiones" y crea el siguiente código:
16. Ahora vamos a crear otro bloque y lo vamos a llamar "EnTrompo". Añade el siguiente código:
Este código se ejecutará cuando el coche entre en un trompo. Hará girar al coche y reducirá la variable "Trompo" en uno. Cuando la variable llegue a cero, el trompo finalizará y el coche volverá a empezar en la parte inferior del escenario.
17. En este paso modifica el código activado por el mensaje "Mover" para que quede de la siguiente forma:
Ahora solo puedes controlar el coche si la variable "Trompo" es 0. Las colisiones solo se comprueban cuando no estás en un trompo (ya que en caso contrario, estarías dando vueltas sin parar). Ejecuta el juego. El coche debería hacer trompos al tocar la nieve. Si no es así, ¡revisa tu código!.
18. Para añadir obstáculos en forma de bolas de nieve, vamos a crear un objeto con el editor de imágenes. Haremos que tenga un tamaño igual que el coche. Para asegurarnos, mira su tamaño en la pantalla una vez creado, procura que mida 40x40. Llámalo "BolaNieve".
19. Ahora añade estos tres bloques de código al objeto BolaNieve. Este objeto se clona para obtener muchos obstáculos, pero verás que aquí no hay ningún bloque "crear clon". Los crea el objeto BucleJuego, con el código que añadiremos más adelante.
20. Selecciona el objeto BucleJuego y añade el siguiente código para que haya una probabilidad de 1 entre 200 de que aparezca una bola de nieve.
21. Ahora para que el coche haga un trompo al tocar una bola de nieve, añade el objeto BolaNieve a la lista de posibles colisiones del coche rojo. Ejecuta el juego y verás como el coche debería girar sin control al tocar una bola de nieve.
Ahora vamos a crear el coche del segundo jugador. Es fácil tan solo tienes que copiar el primer coche, pintarlo de azul y retocar los códigos.
22. Duplica el objeto CocheRojo y llámalo CocheAzul. Verás que el duplicado tiene también su copia de los códigos. Esto incluye una copia de la variable Trompo que puede ser diferente de la del coche rojo.
23. Selecciona el objeto CocheAzul y haz click en la pestaña Disfraces para abrir el editor de imágenes. Con la herramienta de rellenar colorealo de azul.
24. Haz clic en la pestaña Código para ver los códigos de CocheAzul. Cambia las coordenadas x de sus bloques "ir a" a 40, tanto en el código "definir En trompo" como en el código "al recibir Inicio". De ese modo lograrás que los coches azul y rojo comiencen uno al lado del otro.
25. En el código "definir Controles coche", modifica los cuatro bloques "¿tecla presionada?" para poder dirigir el coche azul con las flechas del teclado. Ejecuta el juego. Ambos coches deberían correr por la pista, aunque por ahora pueden atravesarse mutuamente.
26. Para evitar que los coches se atraviesen has de hacer que reboten si se tocan entre sí. Añade un nuevo bloque "si....entonces" al código "definir Busca Colisiones" del coche rojo, como ves abajo. Crea el mensaje "Rebotar" y luego añade un nuevo código para que CocheRojo se separe de CocheAzul al recibir el mensaje.
27. Ahora haz los mismo cambios en los códigos de CocheAzul, para que pueda notar que toca a CocheRojo y rebote. Ejecuta el juego para probar que ambos coches rebotan al colisionar.
En este paso vamos a crear las gemas por las que los jugadores compiten por recoger. Serán clones de un solo objeto gema, lo que hace que sea más fácil poner muchas de ellas en el escenario al mismo tiempo.
28. Haz clic en el símbolo del pincel en el menú de objetos para crear un nuevo objeto con el editor de imágenes. Para hacer la gema, emplea la herramienta de la línea para dibujar seis triángulos que formen un hexágono. Rellena cada triángulo con un tono de verde distinto. Dale un tamaño similar al de la bola de nieve.
29. Crea dos variables: "GemasCocheRojo" y "GemasCocheAzul" (ambas para todos los objetos) con el fin de llevar la cuenta de cuántas gemas recogerá cada coche. Añade a continuación los siguientes códigos al objeto "Gema". Verás que son similares a los códigos de las bolas de nieve.
30. Ahora añade el siguiente código para mover las gemas junto con la carretera y actualizar el total de gemas recogidas por cada coche. Carga el sonido "Fairydust" al objeto de la gema de manera que suene cada vez que un coche recoja una.
31. En el objeto BucleJuego, añade un segundo bloque "si..entonces" al código "al recibir Mover" para crear los clones de las gemas. Ejecuta el juego e intenta recoger gemas. Las bolas de nieve impedirán a los jugadores subir a toda velocidad a recogerlas. Juntas, gemas y bolas de nieve, forman parte del reto del juego.
32. Verás que la cuenta atrás no funciona y que el juego nunca acaba. Para arreglarlo añade al objeto BucleJuego el siguiente código, y prueba de nuevo tu programa. Cuando la cuenta atrás llegue a cero, el juego debería detenerse.
Un buen acabado al principio y al final del juego le dará un aspecto más profesional. Ahora agregaremos un pingüino comisario de carrera que pida los nombres de los jugadores, dé la salida y anuncie los ganadores al final.
33. Crearemos cuatro variables para todos los objetos: "NombreRojo" y "NombreAzul" guardarán los nombres de los dos conductores, "InfoRojo" e "InfoAzul" mostrarán sus puntuaciones durante la carrera. Añadiremos también el objeto "Penguin2" y llámalo Pingüino para que habla con los jugadores. Además cargale el sonido "Gong" de la biblioteca.
34. Añade este código "Inicio" al objeto Pingüino. El bucle juego usa un bloque "enviar y esperar", así que la carrera no comienza hasta que los jugadores dan sus nombres y el Pingüino grita ¡Ya!.
35. Añade el siguiente código al objeto Pinguino para fijar las variables "InfoRojo" e "InfoAzul", que mostrarán las puntuaciones en la pantalla.
36. Ejecuta el juego. Oculta todas las variables excepto "Cuentaatrás", "InfoRojo" e "InfoAzul", desmarcando sus casillas en la sección Variables. Haz clic derecho en los carteles InfoRojo e InfoAzul en el escenario y elige "tamaño grande". Para que nos quede un buen diseño, arrastra los carteles a la parte superior izquierda, y la cuenta atrás, arriba a la derecha.
37. Para que el pingüino anuncie el ganador, añade el siguiente código. Verás que tiene un bloque "si....entonces...si no" dentro de otro. Piensa sobre los tres posibles resultados (el coche rojo gana, el coche azul gana o se produce un empate) y todo tendrá sentido.
38. Por último, añade un poco de música de baile para que el juego cobre más ritmo. Carga el sonido "Dance Around" al bucle de juego y añade el siguiente código. Se trata de un bucle y aunque muchos bucles pueden relentizar el juego, como solo se ejecuta cada tantos segundos, en esta ocasión no afectará a su rendimiento.
¡Enhorabuena! Si has llegado hasta aquí significa que has conseguido finalizar tu juego y ¡Ahora es tu turno!. Personaliza esta carrera con tus propias ideas y ajustes. Hazla tan rápida, lenta, difícil, seria o loca como quieras. Por ejemplo algunos trucos o mejoras que puedes incluir serían:
Graba tus propios sonidos.
Añade Instrucciones.
Ajusta la dificultad del juego.
Cambia el escenario.
Aumento la velocidad.
Y todo lo que se te ocurra¡¡¡¡
Haz tus cambios haciendo antes una copia de tu proyecto.