Empecé programando en Scratch de MIT. Hay que recordar que en el MIT es donde trabaja Seymour Papert, el creador del lenguaje Logo y por ello de alguna forma Scratch se parece mucho a Logo, se puede decir que cada imagen en Scratch es como una tortuga de las de Logo y de hecho se comporta como tal.
Scratch viene con una extensa galería de imágenes listas para usar y además se pueden dibujar otras en una herramienta de dibujo incorporada. También es posible usar cualquier imagen de la computadora o bajada de Internet.
Empecé haciendo que el gato (que es la imagen que aparece al crear un nuevo proyecto) se colocara en el centro de la parte superior de la pantalla y de ahí se moviera permanentemente hacia la derecha o izquierda – controlado por las flechas del teclado – y hacia abajo, es decir nunca se está quieto. El gato sería “la bolita” de Rapid Roll pero sin opción a detenerse.
Luego agregué una barra horizontal de color azul y la programé para que se colocara en la parte de abajo en una posición aleatoria sobre el eje x y de ahí se moviera hacia arriba a una velocidad constante.
Aquí es donde las características de Scratch se empiezan a hacer evidentes. Cada imagen, que se llama “sprite” en inglés y “objeto” en español, tiene su propio espacio de programación totalmente independiente de los demás, la única opción de comunicación es enviar mensajes a todos con la instrucción “enviar a todos” (“broadcast” en la versión en inglés) con lo que se puede preparar un script en los otros objetos para que se ejecute cuando se recibe un mensaje particular.
Scratch provee al programador con instrucciones especiales que son “sensores” que sirven para evaluar condiciones como si una imagen está tocando cierto color, cual es la distancia hacia otro objeto, si está tocando un borde, etc. Usando estas instrucciones coloqué una condición al movimiento hacia abajo del gato, de tal forma que cuando estaba tocando azul (es decir tocando una de las barras que suben) en vez de caer sube a una velocidad ligeramente mayor a la de las barras. Con esto logré el efecto deseado de que el gato cae permanentemente a menos que esté sobre una barra azul.
Luego fue tan sencillo como copiar la barra azul cuatro veces y obtuve otras cuatro barras que se comportaban de la misma forma. Esta fue la primera versión que coloqué en línea.
Todavía no era un “juego” porque no había forma de “perder”. Entonces se me ocurrió agregar un mar que se bambolea en la parte de abajo, y cuando el gato llega al mar “se ahoga”, el gato debe evitar caer al mar porque al fin y al cabo a los gatos no les gusta el agua. Esta fue la segunda versión.
Pero aun faltaba un elemento más, algo que le diera emoción. Un tiburón saliendo del mar y subiendo con las fauces abiertas para tragarse al gato parecía buena idea, pero dos era todavía mejor. Uno de ellos aparece al principio del juego y el segundo se agrega 30 segundos después. Los tiburones se mueven un poco más rápido que las barras de forma resultan amenazantes para el gato. Agregué un efecto rápido de movimiento de los tiburones cuando “se comen” al gato, resultó divertido. Esta fue la tercera versión.
Al final me sentí muy satisfecho con el resultado. Pude haberle agregado un montón de cosas más, como un marcador, niveles, ¡más tiburones! Pero me conformé con subir las distintas versiones previas del juego al sitio de Scratch de donde quienquiera que desee agregarles funcionalidad puede bajarlas y trabajarlas, lo cual por cierto es algo grandioso de Scratch, uno pone sus proyectos en línea muy fácilmente y recibe comentarios de otros usuarios. Es una auténtica red social.
Además el experimento continuaba con Alice, tenía que hacer el mismo juego – o similar – con Alice. De eso les cuento en el próximo post.
#1 by manuel on 3 August 2010 - 14:01 pm
No me queda muy claro, es un entorno grafico para desarrollo entonces?
#2 by Leonel on 3 August 2010 - 17:44 pm
Sí, exactamente, tiene el lenguaje y el IDE. Además se complementa con una página web donde se pueden publicar los proyectos y otras personas pueden bajarlos y modificarlos.
#3 by Manuel on 4 August 2010 - 7:23 am
habrá que probarlo entonces