UD 1. INTRODUCCIÓN A LA PROGRAMACIÓN
UD 1. INTRODUCCIÓN A LA PROGRAMACIÓN
CONTENIDOS
Los ordenadores son máquinas que pueden realizar multitud de tareas distintas. Estas tareas son realizadas por los programas.
Un programa es un conjunto de órdenes para que el ordenador realice una determinada tarea. Son programas todas las aplicaciones de tu equipo informático: navegador de internet, editor de texto, cualquier juego, etc...
En la actualidad existen multitud de conjuntos de instrucciones para crear programas y a cada uno de estos conjuntos se le llama lenguaje de programación. Diferentes fabricantes crean su propio lenguaje de programación, por ejemplo:
Son aquellos en los que las órdenes que se insertan en el programa se escriben en forma de texto. El conjunto de instrucciones de un programa recibe el nombre de código. Los lenguajes textuales son los más potentes y los más usados por profesionales de la programación cuando se quieren obtener programas rápidos y versátiles.
En ellos es muy intuitivo deducir lo que hacen las instrucciones o bloques de programación que se presentán en forma de elementos gráficos.
Scratch es la comunidad de programación para niños y niñas más grande del mundo y un lenguaje de programación con una interfaz sencilla que permite a los jóvenes crear historias digitales, juegos y animaciones. Scratch está diseñado, desarrollado y moderado por la Scratch Foundation, una organización sin ánimo de lucro.
Scratch promueve el pensamiento computacional y las habilidades en resolución de problemas, enseñanza y aprendizaje creativos, auto expresión y colaboración así como la igualdad en informática.
Existe una versión de escritorio y una versión online accediendo a https://scratch.mit.edu/discuss/topic/326861/. Nosotros utilizaremos la versión online que nos permitirá trabajar tanto en clase como en casa cuando lo necesitemos.
En la siguiente imagen podemos ver las distintas zonas del entorno de trabajo con el que construiremos nuestros programas durante el primer trimestre:
La pantalla de Scratch es una pantalla de 360*480 píxeles. La coordenada (X=0,Y=0) en Scratch está justo en el centro de la pantalla. Cada personaje en Scratch puede moverse de dos formas:
Por Coordenadas Cartesianas: Para poder desplazar los objetos o personajes por la pantalla del ordenador es muy importante que sepamos como funcionan las coordenadas en Scratch. Con la siguiente imagen os muestro los ejes de coordenadas X e Y de la pantalla de Scratch.
Por coordenadas polares: Según la orientación del personaje y su movimiento.
Para comenzar a programar en Scratch debemos usar el evento "al hacer clic en la bandera verde". Para ello, utilizaremos el bloque que podemos ver a continuación:
Pero entonces....¿Qué es un evento en programación?
Un evento no es más que una acción o algo que ocurre alrededor de un programa (en su entorno) y el programa esta preparado para responder a esta acción determinada.
Entonces, ¿Sabrías poner un ejemplo de un evento al que responda el ordenador?
Algunos de los ejemplos que más utilizaremos en Scratch son los siguientes:
Haz que el gato vaya a los puntos medios de cada eje de coordenadas, como si se deslizara en las aristas de un rombo, y que espere medio segundo en cada punto medio de los bordes.
Cuando finalices tu programa tienes que crear tu CUADERNO DIGITAL del tema. Para ello utilizaras la herramienta Google Doc con la que ya hemos trabajado en clase. Tu cuaderno digital debe tener:
Una Portada relacionada con el tema en la primera página.
Un índice en la segunda página.
El título de la Actividad 1.1.
Breve descripción de lo que hace tu programa.
Una imagen de tu programa.
Un enlace a la carpeta donde esta tu programa en Google Drive.
IMPORTANTE: Cuando finalices la actividad debes subir a Classroom la siguiente información:
Cuaderno Digital.
Programa de Scratch.
Puedes ayudarte de los siguientes bloques de Scratch.
En esta actividad repasaremos lo aprendido hasta el momento: Evento al hacer clic en...., Coordenadas Cartesianas y Coordenadas Polares. El contenido de la actividad lo tienes disponible en el siguiente documento: Haz clic aquí.
Cuando finalices tu programa tienes que añadir esta actividad a tu CUADERNO DIGITAL del tema. Recuerda que para cada actividad debe aparecer en tu cuaderno digital la siguiente información:
El título de la Actividad.
Breve descripción de lo que hace tu programa.
Una imagen de tu programa.
Un enlace a la carpeta donde esta tu programa en Google Drive.
No olvides actualizar el índice de tu cuaderno digital para que aparezca la nueva actividad que has incluido.
IMPORTANTE: Cuando finalices la actividad debes subir a Classroom la siguiente información:
Cuaderno Digital.
Programa de Scratch.
Un algoritmo es un conjunto de operaciones ordenadas para resolver un procedimiento matemático, por ejemplo, el algoritmo de la división que se aprende en educación primaria. Los programas informáticos son algoritmos, ya que son procesos lógico-matemáticos aplicados para resolver tareas dentro de un equipo informático.
Los algoritmos pueden ser muy sencillos o, en ocasiones, muy complejos. Para indicar de un modo esquemático qué tarea resuelve un algoritmo usamos los diagramas de flujo que son esquemas gráficos que nos permiten representar algoritmos de forma visual. Se puede considerar como un paso previo a la elaboración del programa.
En la siguiente tabla podemos ver la simbología básica de los diagramas de flujo con la que trabajaremos en clase.
Por ejemplo, si queremos realizar un programa que solicite dos números al usuario y devuelva el resultado de realizar la suma de estos dos números, el diagrama de flujo asociado a este programa sería el siguiente:
A continuación comentaremos cada uno de los bloques de decisión de los diagramas de flujo e indicaremos que bloques de Scratch se utilizan en cada caso.
En ocasiones necesitamos que nuestros programas evalúen determinadas condiciones para que en el caso de cumplirse la condición se ejecuten un conjunto de instrucciones distintas a las instrucciones que ejecutaríamos si la condición no se cumple. La condición nos daría respuesta a "....Si esto se cumple, entonces haz esto otro.....".
Por ejemplo: "Si Manolo estudia y realiza las prácticas de Scratch entonces aprobará la asignatura y sus padres estarán muy contentos pero Si Manolo NO estudio o NO realizar las prácticas de Scratch entonces NO aprobará la asignatura y sus padres estarán tristes."
El bloque de decisión se representa de la siguiente forma:
Por ejemplo si en nuestro programa de la Suma queremos evitar que un usuario introduzca un cero en los números A o B utilizaríamos un bloque de decisión de la siguiente manera:
En Scratch ejemplos de Bloques de Decisión serían los siguientes:
Los programas suelen interactuar con los usuarios normalmente solicitándoles información (Entrada) y mostrándoles información (Salida). El bloque que se encarga de representar las operaciones de Entrada y Salida en un Diagrama de Flujo es el siguiente:
Realiza el Diagrama de Flujo correspondiente a un programa que realice las siguientes operaciones:
Solicite al usuario dos números por pantalla.
Comparé los dos números para saber que número es mayor que el otro.
Le muestre al usuario un mensaje en pantalla indicándole cual es el número mayor. En el caso en que ambos números sean iguales le mostraremos cualquier de ellos.
Para realizar el Diagrama de Flujo utiliza el siguiente programa: https://app.diagrams.net/#
Una vez finalizado, realiza el mismos programa pero ahora con Scratch 3.0.
Cuando finalices tu programa tienes que añadir esta actividad a tu CUADERNO DIGITAL del tema. Recuerda que para cada actividad debe aparecer en tu cuaderno digital la siguiente información:
El título de la Actividad.
Breve descripción de lo que hace tu programa.
En este caso, una imagen de tu Diagrama de Flujo.
Una imagen de tu programa.
Un enlace a la carpeta donde esta tu programa en Google Drive.
No olvides actualizar el índice de tu cuaderno digital para que aparezca la nueva actividad que has incluido.
IMPORTANTE: Cuando finalices la actividad debes subir a Classroom la siguiente información:
Cuaderno Digital.
Programa de Scratch.
Las estructuras o bloques repetitivos también conocidos como estructuras o bloques de repetición nos permiten repetir un conjunto de operaciones o instrucciones un determinado número de veces. Al igual que las estructuras de decisión, estas estructuras son muy útiles en cualquier lenguaje de programación.
A continuación mostramos varios ejemplos de este tipo de estructuras y su representación en un Diagrama de Flujo:
En el Diagrama de Flujo de la izquierda vemos representado el algoritmo correspondiente a un contador de 30 segundos. Para ello se utiliza una estructura repetitiva que se ejecutará 30 veces, cada una de ellas correspondiente a 1sg de duración y de esta forma conseguimos implementar nuestro contador.
En el Diagrama de Flujo de la derecha vemos representado el algoritmo correspondiente a la división de dos números enteros. En este caso se utiliza una estructura repetitiva y la operación de resta para averiguar el cociente.
En Scratch 3.0 tenemos las siguientes estructuras repetitivas:
Realiza el Diagrama de Flujo correspondiente a un programa donde el personaje de Scratch (El gato) suba un edificio de 4 plantas, teniendo en cuenta las siguientes consideraciones:
Al llegar a la segunda planta debe solicitarle al secretario su número de teléfono y guardarlo en una variable.
Cuando llegué a la última planta el Gato se detendrá y mostrará por pantalla el número de teléfono del secretario.
Para realizar el Diagrama de Flujo utiliza el siguiente programa: https://app.diagrams.net/#
Cuando finalices tu programa tienes que añadir esta actividad a tu CUADERNO DIGITAL del tema. Recuerda que para cada actividad debe aparecer en tu cuaderno digital la siguiente información:
El título de la Actividad.
Breve descripción de lo que hace tu programa.
En este caso, una imagen de tu Diagrama de Flujo.
No olvides actualizar el índice de tu cuaderno digital para que aparezca la nueva actividad que has incluido.
IMPORTANTE: Cuando finalices la actividad debes subir a Classroom la siguiente información:
Cuaderno Digital.
Estos bloques nos permiten establecer operaciones matemáticas, elegir un número al azar, realizar uniones y divisiones; además se puede unir texto y calcular la longitud de los mismos. Estos son algunos de los bloques de operación más usados, aunque hay muchos más:
Los Bloques hexagonales se corresponden con OPERACIONES y los bloques redondos con DATOS.
Ejemplo de Bloques Condicionales y Bloques de Operación
Veamos cuanto hemos aprendido¡¡¡ Vamos a programar a nuestro gato para que nos pida que introduzcamos un número. Como respuesta, indicaremos el gato indicará por pantalla si el número introducido es mayor o menor que 50. Recuerda debes realizar los siguientes pasos:
Coloca el bloque de la bandera.
Saludo inicial "Hola amig@s¡¡¡"
Solicita un número al usuario.
Evalúa la condición para ver si el número introducido es menor o mayor que 50. Añade bloques como el de decir Hola para indicar si el número es mayor o menor que 50
En Scratch disponemos de bloques que nos permiten realizar dibujos en nuestros programas. Los bloques más usados para esta finalidad son los existentes en la biblioteca de bloques Lápiz:
Si en tu entorno de trabajo NO aparece la biblioteca Lápiz, tienes que añadirla usando el botón azul que aparece en la esquina inferior izquierda de la imagen anterior.
Fijaros como con el siguiente código podemos hacer que nuestro gato dibuje un cuadrado en pantalla. PRUEBALO¡¡¡¡¡
En el siguiente enlace tienes un vídeo donde podéis ver el programa funcionando. Haz clic aquí.
El contenido de esta actividad lo teneis disponible en el siguiente enlace: Haz clic aquí.
Cuando finalices tu programa tienes que añadir esta actividad a tu CUADERNO DIGITAL del tema. Recuerda que para cada actividad debe aparecer en tu cuaderno digital la siguiente información:
El título de la Actividad.
Breve descripción de lo que hace tu programa.
Imagen de tu programa.
Un enlace a la carpeta donde esta tu programa en Google Drive.
No olvides actualizar el índice de tu cuaderno digital para que aparezca la nueva actividad que has incluido.
IMPORTANTE: Cuando finalices la actividad debes subir a Classroom la siguiente información:
Cuaderno Digital.
Programa de Scratch.
En esta actividad realizaremos un laberinto que cumpla con los siguientes requisitos:
1. El escenario del laberinto será diseñado por cada estudiante de manera individual.
2. Dispondremos de un objeto que partiendo de un mismo lugar de salida pueda llegar a la meta. Al llegar a la meta el programa deberá mostrar al usuario el mensaje '¡Enhorabuena, has conseguido salir del laberinto! Vuelve pronto, te espero...'.
3. El objeto que se desplazará por el laberinto será seleccionado por cada estudiante de manera individual.
4. El objeto no podrá atravesar las paredes del laberinto.
En el siguiente enlace tienes un vídeo de cómo más o menos debería quedar tu Laberinto. Haz clic aquí.
Cuando finalices tu programa tienes que añadir esta actividad a tu CUADERNO DIGITAL del tema. Recuerda que para cada actividad debe aparecer en tu cuaderno digital la siguiente información:
El título de la Actividad.
Breve descripción de lo que hace tu programa.
Imagen de tu programa.
Un enlace a la carpeta donde esta tu programa en Google Drive.
No olvides actualizar el índice de tu cuaderno digital para que aparezca la nueva actividad que has incluido.
IMPORTANTE: Cuando finalices la actividad debes subir a Classroom la siguiente información:
Cuaderno Digital.
Programa de Scratch.
Una de las funciones importantes en todos los lenguajes de programación es la modularidad. La modularidad consiste en construir “instrucciones” nuevas que contengan otras instrucciones en su interior. Estas nuevas instrucciones en algunos lenguajes de programación se llaman funciones o procedimientos, en Scratch se les llama bloques. Estos bloques, funciones o procedimientos pueden utilizar unos parámetros de entrada, es decir, unos datos de entrada que se utilizan dentro de las instrucciones del bloque.
Las instrucciones para realizar esta actividad las tenemos disponible en el siguiente enlace, clic aquí.
IMPORTANTE: Cuando finalices la actividad debes subir a Classroom la siguiente información:
Cuaderno Digital.
Programa de Scratch.
En este apartado recordaremos la finalidad de las variables. Las variables nos permiten almacenar datos dentro del ordenador mientras el programa está funcionando. El valor de dichos datos puede variar durante la ejecución del programa. Las variables se caracterizan por una etiqueta (nombre que le damos a dicha variable, por ejemplo: puntos) y por un valor (por ejemplo, los puntos que vamos sumando en el juego). Es habitual que las variables puedan ser de varios tipos:
Numéricas: el valor que contiene es un número.
Texto: el valor que contiene es un carácter o cadena de caracteres.
Boolean: el valor que contiene es “verdadero” (1) o “falso” (0).
En Scratch las variables son solo de tipo numérico. Existen también listas, que almacenan varias cadenas de caracteres.
Las instrucciones para realizar esta actividad las tenemos disponible en el siguiente enlace, clic aquí.
IMPORTANTE: Cuando finalices la actividad debes subir a Classroom la siguiente información:
Cuaderno Digital.
Programa de Scratch.
Podemos definir scroll como el desplazamiento del escenario donde se desarrolla un videojuego. Se le llama scroll horizontal cuando este desplazamiento se realiza horizontalmente, y scroll vertical cuando se realiza verticalmente. En esta práctica vamos a manejar este concepto. Para entender bien la práctica, conviene recordar que la pantalla de Scratch es de 480 x 360 píxeles.
Las instrucciones para realizar esta actividad las tenemos disponible en el siguiente enlace, clic aquí.
IMPORTANTE: Cuando finalices la actividad debes subir a Classroom la siguiente información:
Cuaderno Digital.
Programa de Scratch.
Scratch permite crear copias (clones) de los objetos, que pueden tener su propio comportamiento. Esto puede ser interesante por ejemplo; para crear enemigos en un juego determinado. En la siguiente actividad veremos como funcionan los clones.
Las instrucciones para realizar esta actividad las tenemos disponible en el siguiente enlace, clic aquí.
IMPORTANTE: Cuando finalices la actividad debes subir a Classroom la siguiente información:
Cuaderno Digital.
Programa de Scratch.
¿Qué es un proyecto software? Podemos decir que un proyecto software es todo el conjunto de tareas que necesitamos realizar para construir y poner en funcionamiento un nuevo programa. Si buscamos una definición más formal de proyecto software encontraremos algo como esto:
"Los proyectos de Software son procesos complejos, que involucran distintos profesionales miembros del equipo, ingeniería del software, sistemas de información y procedimientos complicados."
En la siguiente imagen podemos ver cada una de las fases que forman parte del ciclo de vida de un proyecto software:
Entre sus fases más importantes destacamos las siguientes:
Definición de Necesidades y Análisis: Ambas fases se podrían abordar al mismo tiempo, aunque esto dependerá de las necesidades concretas de cada proyecto. En esta fase debemos definir los requisitos que debe cumplir nuestro programa para que funcione correctamente. Para identificar cada uno de los requisitos que debe cumplir nuestra aplicación se suele rellenar una tabla como la siguiente:
Diseño: En la fase de diseño el equipo debe partir de los requisitos identificados en la fase anterior y, con esta información, debe intentar identificar los distintos elementos o componentes que necesitará su aplicación. En el caso de Scratch, nos referimos a los distintos Objetos y/o Fondos que necesitaremos. También en esta fase definimos el comportamiento de cada uno de los elementos, para ello, hacemos uso de los Diagramas de Flujo que ya hemos trabajado en este tema.
Para la identificación de los distintos elementos, podemos usar una tabla similar a la siguiente:
Codificación o Implementación: En la fase de implementación se escribe el código del juego en base a lo definido con anterioridad. En este apartado se debe poner el nombre de los elementos definidos en el apartado anterior, junto con una captura del código que se ha implementado. Recordad que es importante que el código esté claro, limpio y comentado. Además debe ser lo más eficiente posible y se deben crear funciones con el fin de que sea reutilizable.
Pruebas: En esta fase debemos ir probando el código que hemos programado. Para ello, debemos definir y documentar los distintos casos de pruebas que vamos a realizar para asegurarnos de que nuestro programa funciona correctamente y que por lo tanto, lo podemos entregar al cliente. Existen muchos tipos de pruebas; Pruebas unitarias, Pruebas de verificación, Pruebas Funcionales, Pruebas de validación, etc... En nuestro caso, trabajaremos este año unicamente con Pruebas Funcionales. Para ello, tendremos que rellenar una tabla como la siguiente:
La tabla anterior se debe completar de la siguiente forma:
PRUEBA: descripción de la prueba que se va a realizar. Pongamos como ejemplo que estamos probando el personaje de nuestro videojuego. Este tiene implementada la funcionalidad de saltar cuando se pulsa la tecla ‘espacio’.
RESULTADO ESPERADO: descripción del resultado que se espera obtener para poder determinar que la prueba es correcta.
RESULTADO OBTENIDO: resultado que se ha obtenido al realizar la prueba.
ESTADO: indica si la prueba ha sido exitosa ‘OK’ si ha habido algún error ‘ERROR’. En el caso de que el error se haya podido corregir el valor tendría el estado ‘CORREGIDO’
OBSERVACIONES: cualquier observación que se estime oportuna a la prueba, como por ejemplo la explicación de por qué un error no ha podido ser corregido.
La comunicación entre los distintos objetos de un programa es esencial para su correcto funcionamiento. Por este motivo en esta actividad planteamos crear un bucle principal que será el encargado de controlar todos los objetos de nuestro juego indicándoles cuando deben ejecutar cada parte de su comportamiento (su código fuente). Comenzamos a trabajar con la Secuencia de instrucciones y los bucles repetitivos.
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 una carrera de coches una de las partes más importantes es la pista sobre la que se desarrolla la carrera. Por lo tanto, los jugadores tienen que sentir que van a toda velocidad por la pista. Realmente veremos en esta actividad que los coches apenas se mueven, es decir, es la pista la que se mueve, gracias sobre todo al uso de los bloques condicionales que trabajaremos en esta tarea.
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 clic 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. Acuérdate 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.