Hola
De hecho, ayudo en un club de código de escuela primaria después de la escuela y usamos Scratch mucho. Para comenzar, los niños pueden manejarlo para contar historias / animación y jugar con los gráficos y los sonidos, pero pronto llegan al punto de querer hacer un juego.
Básicamente, desde cero, asocia el código con sprites o fondos. Las variables pueden ser locales o globales, y puede usar una transmisión para que los sprites se comuniquen entre sí si no hay una variable global. También puede definir bloques personalizados (funciones de pensar).
Una vez que los niños estuvieron contentos con eso, hicimos sesiones preguntándoles qué les gustaría construir, luego, dividiéndolo en pedazos, les mostraría la semana siguiente. (Nunca había usado scratch hasta después de mi primera sesión). Estas son las cosas que querían hacer
1. Mueva Sprites de varias maneras (eventos, bucles, por dirección, por coordenadas x / y)
2. Dispara cosas
- ¿Los padres estadounidenses tienen una fuerte opinión sobre con qué tipo de persona se casan sus hijos? En caso afirmativo, ¿qué tipo de expectativas mantienen?
- ¿Es posible elegir el sexo de su bebé, ya sea niño o niña, tomando medicamentos o de otra manera?
- Cómo explicarle la raza a mi sobrino
- ¿Los eructos frecuentes en un niño pueden ser un signo de un problema médico y qué se puede hacer para mejorarlo?
- ¿Debería preocuparme la obsesión de mis hijos con Minecraft?
Ahora puede hacer mucho de eso sin siquiera crear una variable, pero pronto nos encontramos con problemas como este.
1.¿Cómo obtengo más de una viñeta en la pantalla sin copiar por sprites de viñeta?
En scratch puede “clonar” un sprite en el código, el clon es una instancia separada de un sprite que puede tener un poco de comportamiento único (por ejemplo, cambiar x e y)
2. ¿Cómo evito que haya demasiadas balas en la pantalla?
Se necesitaba una variable para contar cuando las balas fueron creadas / destruidas verificadas contra algún límite.
3.¿Cómo detengo el teclado disparando demasiadas balas?
Esperar 0.3 segundos después de presionar la tecla antes de buscar otra tecla parece ser el número mágico.
4. Cómo muevo enemigos al azar
Usando las funciones de rand, jugando con los límites superior e inferior que pronto definieron como variables llamadas “oscilación” “distancia antes de girar”, etc.
5. ¿Cómo hago un seguimiento de las vidas?
Variable … lo bueno es que puede alternar una variable para que sea visible en la pantalla, lo que es bueno para la depuración, o también puede ser un beneficio funcional (es decir, lo deja en manos del usuario final para ver cuántas vidas tienen sin tener para construir explícitamente algo para mostrar una variable)
6. ¿Cómo hago que ocurra la gravedad?
Como una variable que constantemente afectaba un movimiento de sprites hacia abajo (-y) en el camino.
7.¿Cómo construyo combo de movimiento especial?
He mantenido esto en espera ya que necesita una lista para registrar el combo requerido, y luego algunos contadores para verificar el éxito, ya que cada entrada de la lista coincide, lo que se restablece cuando falla. (Todavía no están listos)
8. ¿Cómo reboto correctamente de otro sprite?
Scratch tiene rebotes en los bordes de la pantalla incorporados, pero no sprites. Esto no es trivial, ya que no hay forma de saber fácilmente el ángulo de un sprite … y si quieres hacerlo correctamente va más allá de sus niveles matemáticos, por lo que están trabajando en formas de trabajo más simples y aceptables.
9. ¿Cómo hago que una parte de un sprite se comporte de manera diferente a la otra?
Inteligentemente, un alumno dividió un sprite en dos, y creó un bucle que se aseguró de que las partes componentes del sprite siguieran al maestro. En un caso, era una torreta de tanque encima de un tanque: quería que girara independientemente del cuerpo. En otro caso fue la boca de una especie de cosa pacífica mutante. Si la polilla tocó a un enemigo, el enemigo murió pero el enemigo tocó cualquier otra parte, el pacman perdió una vida.
10. ¿Cómo hago para que un malo encuentre el camino correcto y más corto a través de un laberinto hasta un regalo?
Estoy tratando de descubrir que hay una manera fácil de explicarles el algoritmo A * a esa edad, pero esperaré y veré.
Ahora estamos trabajando en proyectos más grandes y están compartiendo el trabajo, por lo que nos enfocamos en hacer que las variables solo sean globales si realmente las necesita, y crear bloques personalizados.
La mejora más grande que he visto es en cómo dividen los problemas en trozos manejables … y he alentado a alejarme de la computadora y usar lápiz y papel cuando están atascados.
En realidad es muy divertido y he estado jugando con la idea de replicar el clásico Chaos de Julian Gallop Spectrum en él 😉