Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Juegos en Starlogo TNG - Segunda Parte Del Libro
Juegos en Starlogo TNG - Segunda Parte Del Libro
CAPTULO II
Pgina 12
Problema
Comentarios
Plan
Ideas Programando
El Canvas es el espacio de programacin, all se deben ensamblar los bloques organizadamente, por esta razn el rea est dividida en secciones marcadas con los nombres: TURTLE, EVERYONE, SET UP, RUNTIME y COLLISIONS. Cuando abrimos StarLogo TNG se mostrarn por defecto dos tortugas ubicadas en el Spaceland, a pesar de no haber hecho ninguna accin en el escenario de programacin o Canvas. Por esta razn, uno de los primeros pasos es el de preparar las condiciones iniciales del juego, como por ejemplo: Nmero de personajes, tamao, posicin, colores, entre muchos otros detalles. Esta primera fase se realiza en la seccin SET UP del Canvas.
Pgina 13
Empezando a programar
Problema
Programando
1. Preparar las condiciones iniciales: - Eliminar las dos tortugas de inicio - Crear 1 personaje - Ajustar su tamao y otras propiedades 2. Asignar las teclas que controlarn al personaje 3. Probar y hacer modificaciones
Plan
Comentarios
En StarLogo TNG se utilizan bloques de programacin que se ensamblan como las fichas de un rompecabezas. Estas fichas estn agrupadas por pestaas y categoras. Hasta el momento se han usado algunos bloques de las categoras Setup and Run, Traits y Shapes que se encuentran en la pestaa Factory y de la pestaa My Blocks se utiliz la categora Turtles.
Juegos en StarLogo TNG - Juan Javier Guampe - 2012
Pgina 14
Empezando a programar
Despus de preparar las condiciones iniciales en la parte SETUP del CANVAS, es hora de ensamblar los bloques correspondientes al movimiento del personaje, esto se hace en la seccin RUNTIME del CANVAS como se muestra en la imagen superior. En esta parte se han usado algunos bloques de la categora Movement, Logic y Controls de la pestaa Factory que es la que aparece por defecto al iniciar el programa. Al abrir cada categora se pueden ver los bloques de programacin disponibles, as como una pequea descripcin, en ingls, al ubicar el puntero del mouse sobre dicho objeto. Las categoras tambin se pueden llamar CAJONES, pues se pueden abrir como cajones de la vida real y dentro de ellos existirn objetos, que en nuestro caso son los bloques de programacin. Despus de ensamblar estos bloques es posible ir al SPACELAND, que es la ventana de color verde, y probar que podemos controlar al personaje con las flechas del teclado. Pgina 15
Comentarios
Ideas
Esta es otra forma de programar el movimiento de un personaje en un juego. Utiliza casi los mismos bloques, aunque con una pequea diferencia. Las dos formas tienen ventajas y desventajas.
Empezando a programar
Este bloque que se encuentra en el CAJN Traits de la pestaa Factory se utiliza para determinar el tamao del personaje. El bloque necesita de un nmero que se encaja en la parte derecha. Este bloque ayuda a seleccionar una figura para el personaje que se utilice, tambin se encuentra en el CAJN Traits de la pestaa Factory. StarLogo TNG pone a disposicin algunas figuras o formas. Las formas o figuras disponibles en StarLogo TNG se encuentra en el CAJN Shapes de la pestaa Factory. Este bloque se usa en conjunto con el bloque Set Shape. Cuando no se define ninguna figura, StarLogo TNG coloca por defecto la imagen de una tortuga, la cual ha sido la imagen que ha identificado al programa LOGO por muchos aos. Este bloque se encuentra en el CAJN Set Up and Run de la pestaa Factory. Se debe colocar en la seccin RUNTIME del CANVAS y al igual que el bloque SETUP, este bloque tambin se ve reflejado en el SPACELAND. Dentro de l se colocan las acciones que se deseen ejecutar mientras el bloque est en operacin. Tanto para iniciar como para detener las acciones se debe dar un Click sobre l.
Este bloque se encuentra en el CAJN Logic de la pestaa Factory. Se trata de un bloque muy importante cuya funcin es usada por todos los lenguajes de programacin. El bloque se encarga de ejecutar una serie de acciones cuando una condicin se cumple. En nuestro ejemplo la condicin que se debe cumplir primero es si alguna de las teclas (Arriba, abajo, izquierda o derecha) ha sido presionada y en caso de ser cierta esta condicin, se deben ejecutar las acciones que aparecen en la parte then del bloque, que en nuestro ejemplo es ir adelante (Forward), ir atrs (Back) o girar a la derecha o izquiera (Right o Left) Este bloque se encuentra en el CAJN Controls de la pestaa Factory. En el ejemplo se utiliz como la condicin del bloque anterior (if-test-then), de esta forma si la flecha Arriba (KEYBOARD UP ARROW) se ha oprimido, entonces se ejecutarn las acciones que aparecen en la parte then del bloque IF. De igual forma se usaron tres bloques ms, cada uno para las otras tres opciones de movimiento (Abajo, Izquierda y Derecha). Por defecto solo aparece el botn de flecha Arriba y los otros se seleccionan con ayuda del cursor del mouse, como se muestra en la imagen.
Pgina 16
Empezando a programar
Este bloque se encuentra en el CAJN Movement de la pestaa factory y es usado para asignar un movimiento hacia adelante de un personaje. En la seccin steps del bloque se debe colocar un nmero y ste determina cuan lento o rpido ser dicho movimiento. Este bloque se encuentra en el CAJN Movement de la pestaa factory y es usado para asignar un movimiento hacia atrs de un personaje. En la seccin steps del bloque se debe colocar un nmero y ste determina cuan lento o rpido ser dicho movimiento hacia atrs. Este bloque se encuentra en el CAJN Movement de la pestaa factory y es usado para asignar un giro hacia la izquierda de un personaje. En la seccin degs del bloque se debe colocar un nmero que indica cuntos grados girar. Este bloque puede ser fcilmente adaptado para un giro hacia la derecha, solo es necesario tomar el bloque marcado con Right o se puede cambiar su valor con un solo click (Ver imagen). Este bloque se encuentra en el CAJN Traits de la pestaa factory y es usado para asignar un rumbo en grados a un personaje. En otras palabras, sirve para establecer una direccin a seguir, por tanto requiere de un nmero que determina la direccin en grados. En el ejemplo, este bloque se us como una segunda alternativa para controlar a un personaje en un juego y se tomaron valores en grados como 0, 90, 180 y 270 para controlar la direccin del personaje (Arriba, derecha, abajo, izquierda)
Resultado en el SPACELAND
Comentarios
Dentro del SPACELAND tenemos los elementos que hemos creado: Un solo personaje ubicado en la mitad del TERRENO y dos botones en la parte inferior (Esta regin se llama ventana RUNTIME) a los que podemos dar CLICK. Tambin tenemos otras herramientas propias del programa y que nos permiten explorar el SPACELAND desde diferentes puntos de vista, as como herramientas de desplazamiento y edicin del TERRENO. Para ejecutar el programa debemos dar CLICK primero al botn SETUP y luego al botn FOREVER , tras lo cual veremos que este ltimo botn aparecer rodeado de una lnea verde indicando que el programa est en ejecucin. Con ayuda de las flechas del teclado ser posible entonces controlar al personaje, las flechas de arriba y abajo controlarn el movimiento adelante y atrs y las flechas derecha e izquierda controlarn el giro del personaje. Pgina 17
Juego 1: El ms rpido
Problema
Crear un juego con dos personajes que se puedan controlar mediante el teclado. El objetivo del juego ser el de llegar primero a la meta, evitando tocar los obstculos que hay en el SPACELAND.
Comentarios
1. Preparar las condiciones iniciales: - Eliminar las dos tortugas de inicio - Crear los dos personajes, cada uno con diferente forma - Ajustar su tamao y otras propiedades 2. Asignar las teclas que controlarn a cada uno de los personajes 3. Crear los obstculos en el Spaceland 4. Probar y hacer modificaciones
Plan
Programando
El primer paso a realizar ser crear los dos personajes independientes, es decir, cada uno de una familia (Breed) diferente. Esto lo realizamos dando click en el botn Edit Breeds. Aqu podemos tambin crear un nuevo (New) personaje, escoger otras formas para cada uno y renombrarlos.
Comentarios
En este juego se ha dado al primer personaje el nombre de Hormiga y al segundo el nombre de Oso. Una vez que se d click en el botn OK, podemos observar que el CANVAS tiene ahora una seccin independiente para cada personaje.
Pgina 18
Juego 1: El ms rpido
Comentarios
En la pestaa My Blocks veremos que hay un CAJN independiente para cada una de las familias (Breeds) que hemos creado, en este caso, Hormiga y Oso. Dentro de estos cajones estarn los bloques que nos permitirn crear a cada uno de los personajes.
X= -50 Y= 50
X= 50 Y= 50
Comentarios
X= 0 Y= 0
X= -50 Y= -50
X= 50 Y= -50
En la parte SETUP del CANVAS se realiza la primera parte de la programacin, de igual forma como en el ejemplo anterior. En esta oportunidad se ha empleado el bloque Clear Everyone porque queremos eliminar solo a los personajes y no todos los elementos que haya en el SPACELAND (Accin que hace el bloque Clear All)
Comentarios
Se ha creado un personaje de cada BREED o familia, se ha ajustado su tamao e igualmente se ha ubicado a cada uno de los personajes en una ooordenada diferente dentro del SPACELAND. Como se muestra en la imagen, la posicin central est determinada por las coordenadas X=0 y Y=0, este punto tambin se llama HOME. Desde esta posicin central hay 50 puntos hasta alcanzar el borde superior, inferior, izquierdo y derecho, tal como se ensea.
Pgina 19
Juego 1: El ms rpido
Podemos usar la misma estructura que se utilizamos en el ejemplo anterior, pero esta vez realizando la programacin para dos personajes. Las flechas controlarn a la Hormiga, mientras que las teclas w,s,z,a controlarn al Oso
Ideas
Comentarios
Esta parte de la programacin se realiza en la seccin Runtime del CANVAS. Un detalle importante a destacar es el nuevo aspecto del bloque forever que ahora tiene una divisn para el personaje Hormiga y otra divisin para el personaje Oso. Lo anterior se debe a que inicialmente creamos las dos familias de personajes y desde ese momento esa accin hace que muchos de los bloques tengan ahora dos secciones, como este bloque forever. Es posible utilizar cualquier combinacin de teclas para controlar a los personajes, sin embargo, se ha optado por utilizar las flechas para controlar a un personaje y las teclas w,s,a,d para controlar al otro. Pgina 20
Juego 1: El ms rpido
Comentarios
El siguiente paso a realizar es modificar un poco el TERRENO, es decir, la regin de color verde en el SPACELAND. Lo que vamos a hacer es dibujar un punto rojo en la mitad que ser la meta y otras zonas rectangulares de color azul que sern los obstculos. Para hacer esto debemos acudir a las herramientas de dibujo ubicadas en la pestaa Drawing en la parte inferior del SPACELAND, una vez all veremos algunas opciones para dibujar rectngulos, crculos, polgonos, dibujos a mano alzada e incluir imgenes. Tambin se encuentra all la opcin para seleccionar el color de estas figuras. Los 16 colores usados en StarLogo TNG funcionan con base en el sistema RGB (Red-GreenBlue). Al dibujar las formas en el TERRENO podemos obtener estos colores combinando los tres colores primarios: Rojo, verde y azul, con base en la tabla que aparece a continuacin. Pgina 21
Juego 1: El ms rpido
Como vemos en la tabla, cada color tiene una frmula especfica y para poder obtenerlo en el SPACELAND debemos combinar los colores Red, Green y Blue como se indica. Para conseguir buenos resultados en los juegos es necesario ser cuidadosos con estos valores. Cada color tiene tambin asociado un nmero, el cual aparece en la ltima columna de la tabla. Podemos usar este valor en algunos juegos
Comentarios
Color Negro Gris Blanco Rojo Anaranjado Caf Amarillo Verde Lima Turquesa Cian Cielo Azul Prpura Magenta Rosado
En StarLogo TNG black gray white red orange brown yellow green lime turquoise cyan sky blue purple magenta pink
Red 0 142 255 255 255 160 255 81 0 0 0 0 0 127 255 255
Green 0 142 255 0 85 112 255 197 255 255 255 127 0 0 0 0
Blue 0 142 255 0 0 80 0 0 0 198 255 255 255 255 255 127
Tambin podemos usar la herramienta Edit Terrain para hacer depresiones y elevaciones en el TERRENO, stas pueden ser de formas curvas o rectas. En este modo de edicin el terreno se ve como una cuadrcula que permite hacer modificaciones un poco ms precisas
Ideas
Pgina 22
Juego 1: El ms rpido
Comentarios
En el TERRENO queremos crear obstculos para los personajes, de tal forma que no sea tan fcil para ellos llegar al centro, que es el objetivo principal de los dos jugadores. Posteriormente programaremos una accin para hacer que los personajes vuelvan al punto de partida si se aproximan a las zonas de color azul dibujadas.
Pgina 23
Juego 1: El ms rpido
Comentarios
Se han adicionado dos bloques IF-THEN a la programacin del movimiento del personaje Hormiga. Esta parte se encarga de tomar una decisin si el personaje se acerca a una zona de color azul (Regresa al punto de partida), si se acerca a una zona de color roja (Mensaje con el texto La Hormiga gana)
Pgina 24
Juego 1: El ms rpido
Comentarios
Tambin se han adicionado dos bloques IF-THEN a la programacin del movimiento del personaje Oso. Esta parte se encarga de tomar una decisin si el personaje se acerca a una zona de color azul (Regresa al punto de partida), si se acerca a una zona de color roja (Mensaje con el texto El Oso gana)
Pgina 25
Juego 1: El ms rpido
Comentarios
Finalmente podemos probar nuestro primer juego en StarLogo TNG, dando click inicialmente al botn setup y luego al botn forever que aparecen en el SPACELAND, y ms exactamente en la ventana que se encuentra debajo del TERRENO que se llama Ventana Runtime. Podemos ver que los personajes se pueden controlar con las teclas que hemos programado y que si alguno de ellos se acerca a una zona de color azul, ser regresado a su punto de partida.
Tambin podemos cambiar los nombre a los botones que aparecen en la ventana Runtime, de tal forma que estos botones tengan ms sentido dentro del juego. Para cambiar los nombres lo hacemos directamente desde la organizacin de los bloques en el CANVAS con un doble click encima del nombre original y escribiendo el nombre que deseemos.
Ideas
Juegos en StarLogo TNG - Juan Javier Guampe - 2012
Pgina 26
Juego 1: El ms rpido
Este bloque se encuentra en el CAJN Traits de la pestaa Factory. Se utiliza para establecer las coordenadas X y Y de un personaje. En este ejemplo el bloque se us para colocar a los dos personajes en unas coordenadas especficas al inicio del juego, como se explic anteriormente.
Este bloque se encuentra en el CAJN Math de la pestaa Factory. Se utiliza para comparar si dos elementos son iguales. En el ejemplo se utiliz en conjunto con el bloque IF-THEN, como la condicin necesaria para ejecutar las acciones asociadas. Recordemos que el bloque IF.THEN requiere que la condicin o prueba (IF) sea verdadera para ejecutar las acciones (THEN) Este bloque se encuentra en el CAJN Terrain de la pestaa Factory. Este bloque reporta el color del spaceland que hay un paso adelante. En nuestro juego se us para saber si en el TERRENO haba zonas de color rojo azul.
Este bloque que se encuentra en el CAJN Colors de la pestaa Factory se utiliza para establecer un color. En StarLogo TNG existen 16 colores disponibles. Este bloque se encuentra en el CAJN Text de la pestaa Factory. Se utiliza para hacer que un personaje muestre un mensaje que ser visible en el SPACELAND. Se utiliza en conjunto con el bloque abc. Este bloque se encuentra en el CAJN Text de la pestaa Factory. Se utiliza en conjunto con el bloque say. Por defecto este bloque aparece con el texto abc, sin embargo, se puede cambiar a cualquier otro texto que se requiera con un doble click encima del texto original.
Aunque los bloques estn agrupados en CAJONES y pestaas para una mejor organizacin y comprensin, tambin es posible, muy til y mucho ms eficiente poder colocar los bloques en el CANVAS rpidamente con ayuda del teclado del computador, Cmo se hace? Tan solo es necesario escribir las primeras letras del nombre del bloque e inmediatamente aparecer una ventana con una o varias opciones de bloques cuyos nombres empiezan por dichas letras, entonces se podr fcilmente seleccionar con el mouse o con las flechas y la tecla Enter del teclado. Lo mismo se puede hacer con los nmeros.
Ideas
Pgina 27
Juego 2: Obstculos
Problema
Crear un juego en el que un personaje debe evitar objetos en movimiento para llegar a una meta. Si los objetos tocan al personaje, ste deber empezar nuevamente. Cuando se llegue a la meta deber indicarse con un mensaje.
1. Preparar las condiciones iniciales: - Eliminar las dos tortugas de inicio - Crear los elementos del juego: Personaje y objetos (obstculos) - Ajustar propiedades (Posicin, tamao) 2. Asignar las teclas que controlarn al personaje y el movimiento de los objetos 3. Probar 4. Hacer modificaciones para mejorar
Plan
Programando
Comentarios
Empezaremos creando seis familias (Breeds) de personajes: El jugador y cinco objetos. A pesar de tener la misma forma cbica estos sern objetos independientes para StarLogo TNG y podremos asignar propiedades diferentes, como su posicin.
Pgina 28
Juego 2: Obstculos
Comentarios
En la seccin SETUP del canvas deberemos crear a los personajes del juego y asignar su posicin inicial y su tamao. No hay que olvidar que debemos eliminar las dos tortugas que aparecen por defecto cuando abrimos el programa StarLogo TNG. Debern crearse seis personajes en el juego, uno de ellos ser el jugador y los otros cinco sern los objetos. Igualmente se asignar el tamao y la posicin de cada uno de ellos como se indica en la imagen. (Contina en la siguiente pgina)
Comentarios
Cuando se crean varias familias (Breeds) de personajes podemos luego crear a los actores del juego, usando los CAJONES que tienen los mismos nombres que hemos dado a estas familias en el momento de su creacin. Estos nuevos cajones se encuentran debajo de la pestaa My Blocks y dentro de ellos encontraremos bloques relacionados con esta familia.
Pgina 29
Juego 2: Obstculos
Comentarios
El Jugador se ha ubicado en la esquina inferior izquierda, en las coordenadas correspondientes a esa posicin (X=-50 Y=-50), tambin se ha asignado un tamao de seis y se ha girado 90 a la derecha. Los otros cinco objetos independientes estn ubicados en diferentes partes del terreno. No hay que olvidar que aunque comparten la misma forma (Cubo), son en realidad objetos independientes que pertenecen a una familia distinta (Breed). En la imagen inferior podemos ver que el CANVAS tiene secciones independientes para cada uno de los Breeds
Pgina 30
Juego 2: Obstculos
Comentarios
A la izquierda vemos una imagen completa de la programacin que debemos hacer en la seccin SETUP del canvas. Aunque a primera vista parece algo muy complicado, es en realidad una estructura muy fcil de entender. Las imgenes de la derecha muestran las pestaas ms usadas, Factory y My Blocks. Dentro de ellas encontramos los CAJONES que agrupan los bloques de programacin. Pgina 31
Juego 2: Obstculos
Comentarios
Para el Jugador hemos programado los movimientos hacia la derecha e izquierda asignando las flechas derecha e izquierda del teclado, tambin hemos programado la aparicin del mensaje He ganado cuando el jugador est parado sobre una zona de color rojo. Los Objetos tienen programado solamente un movimiento hacia adelante. Cuando stos alcanzan el borde del terreno, por defecto, dan media vuelta y siguen con su movimiento hacia adelante programado.
Juegos en StarLogo TNG - Juan Javier Guampe - 2012
Pgina 32
Juego 2: Obstculos
Comentarios
La siguiente parte de la programacin debe realizarse en la seccin Collisions del CANVAS, la cual se encuentra ubicada en el extremo derecho. Esta zona y los bloques relacionados con el CAJN Collisons se usan para programar el comportamiento de los personajes cuando stos se tocan en el SPACELAND.
Dentro del CAJN Collisions de la pestaa My Blocks se encuentran los bloques de color gris que contemplan todas las combinaciones de familias (Breeds) que pueden darse, incluso, entre personajes de una misma familia. En este ejemplo se han tomado solo cinco bloques de colisin que agrupan a los cinco Objetos en relacin con el Jugador y se ha programado para ste su regreso a la posicin inicial cuando se presente la colisin.
Pgina 33
Juego 2: Obstculos
Comentarios
Esta imagen resume la organizacin de los bloques en las secciones: Setup, Runtime y Collisions del CANVAS. En los siguientes juegos se mostrar cmo usar las otras secciones
Hasta el momento tenemos el juego como lo habamos imaginado. Sin embargo, podemos hacer algunas modificaciones para mejorarlo y de paso explicar algunos conceptos que nos ayudarn en los prximos juegos. Lo primero que haremos ser simplificar un poco. Usaremos solo dos familias de personajes: Jugador y Objetos. De esta ltima familia crearemos siete personajes que sern los obstculos. Para su ubicacin inicial se usar el bloque Random. Otro aspecto a mejorar ser el control del Jugador cuando se acerca a los extremos del SPACELAND. Recordemos que un personaje que se mueve hacia adelante o hacia atrs llegar hasta el borde y dar media vuelta para continuar con su desplazamiento
Ideas
Juegos en StarLogo TNG - Juan Javier Guampe - 2012
Pgina 34
Juego 2: Obstculos
Pgina 35
Juego 2: Obstculos
En la imagen anterior se muestra cmo se han creado solo dos familias en lugar de seis. De la familia Jugador se ha creado solo un personaje, mientras que de la familia Objetos se han creado siete personajes. El siguiente paso es ubicar a estos siete objetos en una posicin diferente, pues de no hacerlo se crearn en el mismo lugar, pero Cmo se hace? La solucin est en un bloque llamado Random que acta como un generador de nmeros al azar entre 1 y el nmero que tenga asociado. En este caso se dej la posicin Y en 50 (Posicin superior) y la posicin X depende de la operacin: ((Random 81)-41) esto quiere decir que el computador escoge al azar un nmero entre 1 y 81 que es diferente para cada uno de los siete objetos y le resta 41. Si analizamos esta operacin podemos ver que el rango de posibilidades va desde X=-40 (Cuando el nmero al azar es 1) hasta X=40 (Cuando el nmero al azar generado por el computador es 81). Un paso final en esta solucin es hacer que los objetos queden orientados hacia abajo, con ayuda del bloque Set Heading y su valor ajustado a 180 Comentarios
Comentarios El resto de la programacin es similar al primer intento que realizamos, salvo que el movimiento para los objetos tambin es controlado mediante un bloque Random. Cada uno de los siete objetos se mueve hacia adelante con una velocidad diferente, pues el bloque Random hace que la velocidad pueda ser desde 11 (1+10, si el nmero al azar es uno) hasta 50 (40+10, si el nmero al azar es cuarenta)
Pgina 36
Juego 2: Obstculos
Finalmente mejoramos el control del Jugador, haciendo que ste no pueda llegar ni al extremo izquierdo, ni al derecho, pues recordemos que al llegar al borde el personaje da media vuelta, para seguir con su movimiento y sera muy extrao, por ejemplo, que al seguir oprimiendo la flecha derecha, el jugador se moviera a la izquierda o viceversa. Para corregir esta situacin se utiliza una doble prueba o condicin: La primera prueba es saber si se ha presionado la flecha izquierda o la derecha, para esto se usan los bloques IF-THEN. Si la prueba es verdadera, entonces este bloque lgico debe realizar una segunda prueba y es saber si la coordenada X del Jugador no ha sobrepasado los valores -48 48 (xcor>-48 para la flecha izquierda y xcor<48 para la flecha derecha). Esta segunda prueba se hace con los bloques IF-THEN-ELSE. En caso de que la prueba sea verdadera, es decir, que el Jugador no est cerca a los extremos, entonces (THEN) se permite su movimiento a la izquierda o hacia la derecha y cuando el Jugador se encuentre en ese rango prohibido (xcor menor a -48 mayor a 48) no realizar ninguna accin, pues la seccin ELSE del bloque se ha dejado vaco. Esta forma de usar varios bloques IF dentro de otros bloques IF se llama Anidar y es algo muy comn en todos los lenguajes de programacin.
Juegos en StarLogo TNG - Juan Javier Guampe - 2012
Comentarios
Pgina 37
Juego 2: Obstculos
Este bloque se encuentra en el CAJN Terrain de la pestaa Factory y reporta el color de la zona en donde se encuentra ubicado el personaje. Es similar al bloque Pc ahead. Estos bloques se encuentran en el CAJN Collisions de la pestaa My Blocks. Se utilizan para establecer las acciones que los personajes realizarn si se llegan a encontrar (Tocar) en el spaceland durante el desarrollo de un juego. Existen bloques de colisin para todas las posibles combinaciones de personajes, tanto de una misma familia, como de familias diferentes. Si hemos creado varias familias (Breeds) al inicio de un juego, tendremos muchos bloques de colisin. Estos bloques deben colocarse en la seccin Collisions del CANVAS y solo existe uno para cada combinacin de personajes o familias. Este bloque se encuentra en el CAJN Math de la pestaa Factory. Este bloque realiza la resta del elemento de la izquierda con el de la derecha. En el ejemplo se utiliz en conjunto con el bloque Random y otros dos nmeros para conseguir un rango de valores. Este bloque se encuentra en el CAJN Math de la pestaa Factory, se utiliza para generar un nmero entero al azar entre 1 y el nmero que se encuentra a la derecha del bloque. Es una opcin muy valiosa en programacin para generar valores al azar y su uso en este libro sobre juegos ser repetitiva, debido a las posibilidades que ofrece. Este bloque se encuentra en el CAJN Logic de la pestaa Factory. Es similar al bloque IF-THEN usado previamente, salvo que este bloque ofrece las dos opciones para la prueba o condicin, es decir, si la prueba (Test) es verdadera, entonces (Then) se realizarn las acciones que se encuentran asociadas en esta seccin, mientras que si la prueba es falsa (Else), se realizarn las acciones asocidas a esta seccin else del bloque. En el ejemplo se us para tomar una decisin con respecto a la posicin del personaje. Si el Jugador se mantena dentro de la coordenada X>-48 X<48 entonces se permita el movimiento hacia adelante o hacia atrs, de lo contrario, no debera pasar nada. Este bloque se encuentra en el CAJN Traits de la pestaa Factory y reporta la coordenada X del personaje. Si el personaje se mueve horizontalmente tambin cambia el valor de este bloque. Este bloque se encuentra en el CAJN Math de la pestaa Factory. Este bloque realiza la suma del elemento de la izquierda con el de la derecha. En el ejemplo se utiliz en conjunto con el bloque Random y otros dos nmeros para conseguir un rango de valores.
Pgina 38
Juego 3: Contrareloj
Crear un juego de tiempo en el que un personaje debe completar un circuito para llegar a la meta. Una vez alcance este objetivo debe aparecer el tiempo que tard en hacer el recorrido. Cuando el personaje salga de la pista deber volver a empezar desde el punto de partida
Problema
1. Preparar las condiciones iniciales: - Eliminar las dos tortugas de inicio - Crear el personaje principal y ajustar sus propiedades (Tamao y posicin) - Incluir un indicador de TIEMPO 2. Asignar las teclas para el movimiento 3. Hacer la PISTA en el Spaceland 4. Probar y hacer ajustes
Plan
Programando
Comentarios
Empezaremos creando al personaje Corredor y asociando la imagen que se muestra. En este juego usaremos bloques nuevos y pondremos en prctica nuevas ideas para explicar conceptos que permitirn construir juegos cada vez mejores.
Pgina 39
Juego 3: Contrareloj
Comentarios
Esta parte la realizamos en la seccin SETUP del CANVAS de la misma forma como se han desarrollado los juegos anteriores. Los dos bloques nuevos son: reset clock y show clock los cuales se encuentran en el CAJN Setup and Run de la pestaa Factory. Recordemos que tambin es posible colocar rpidamente los bloques si escribimos con el teclado las primera letras de su nombre Esta vez vamos a utilizar el concepto de PROCEDIMIENTO (Procedure). En la pestaa Factory encontramos un CAJN con el nombre de Procedure y dentro de l varios bloques, el primero de ellos tiene el mismo nombre que el cajn. Este bloque puede agrupar a muchos otros bloques, creando de esta forma un bloque que puede realizar varias acciones y que adems debe tener un nombre (El nombre del bloque se puede cambiar con un doble click encima de la palabra Procedure). Este nuevo bloque puede ser usado en diferentes partes del CANVAS y permitir entender mejor juegos en donde se utilicen muchos bloques, as como permitir sintetizar o compilar en un solo bloque mltiples acciones El procedimiento DEBE estar ubicado en la seccin apropiada del CANVAS, que es la seccin del personaje que realiza las acciones.
Juegos en StarLogo TNG - Juan Javier Guampe - 2012
Comentarios
Pgina 40
Juego 3: Contrareloj
Comentarios Esta parte la realizamos en la seccin Corredor del CANVAS. El nombre del procedimiento se ha cambiado a la palabra correr El bloque ifelse controla el movimiento del corredor de la siguiente forma: Si el corredor se encuentra ubicado sobre una zona de color amarillo (test), entonces no realizar ninguna accin (then est vaco), pero si no se encuentra sobre una zona amarilla entonces (else), permitir al corredor moverse mediante las flechas arriba, derecha e izquierda como se muestra en la imagen. El bloque if siguiente hace que el corredor vuelva a la posicin de inicio y con direccin hacia arriba, si ste toca una zona blanca, en otras palabras, se ha salido de la pista. El ltimo bloque if despliega un mensaje en pantalla con el tiempo realizado por el corredor, tan pronto como toque la zona azul (meta) y posiciona al vehculo (personaje) en una zona de parqueo de color amarillo. Comentarios
Todos estos bloques hacen parte del PROCEDIMIENTO llamado correr, que a su vez pertenece al personaje Corredor. Cuando se quiera que el personaje ejecute todas estas acciones solo bastar llamar o invocar al procedimiento.
Juegos en StarLogo TNG - Juan Javier Guampe - 2012
Pgina 41
Juego 3: Contrareloj
Comentarios
Como vemos en esta imagen, la mayor cantidad de bloques estn ubicados en la seccin del personaje Corredor y forman el PROCEDIMIENTO. La seccin SETUP tiene los bloques de inicio del juego y la seccin RUNTIME slo tiene un bloque forever y en su interior el PROCEDIMIENTO Correr. Este NUEVO bloque se puede encontrar en el CAJN Corredor de la pestaa My Blocks
Es hora de trabajar en el SPACELAND. Debemos crear la pista en un color negro, la lnea de meta en un color azul, el fin de la pista en color blanco y la zona de parqueo en color amarillo.
Comentarios
Para la construccin de la pista es necesario usar varias herramientas que ofrece el SPACELAND, por ejemplo, cuando damos click en Edit Terrain vemos que el terreno cambia y se muestra como una cuadrcula, en este modo podemos ver las coordenadas X y Y por donde va pasando el puntero del mouse (Esquina inferior izquierda). Para dibujar las zonas de colores en el juego debemos saber en dnde estn ubicadas (Coordenadas X y Y)
Es importante respetar las zonas de arranque (X=-41; Y=18) y de parqueo (X=10; Y=-43) de acuerdo con la programacin realizada, aunque se puede cambiar estas zonas a otras coordenadas X y Y cuando se entienda mucho mejor el juego y se piense en mejoras. Pgina 42
Juego 3: Contrareloj
Para dibujar una pista como se muestra en la figura debemos: 1. Dibujar un rectngulo de color blanco que cubra todo el terreno. En la pestaa Drawing se encuentra la herramienta Rectangle, antes de usarla debemos ajustar el color a blanco moviendo los tres selectores de colores (Red-Green y Blue) al extremo derecho. Para dibujar el rectngulo se empieza desde la esquina superior izquierda moviendo el mouse sin soltar el botn. 2. Dibujar un polgono de color negro, la herramienta se encuentra en la misma pestaa Drawing y el ajuste del color se hace moviendo los tres selectores a la izquierda. Para dibujar se debe empezar por un punto, mover el el mouse y dar click para marcar un cambio de direccin. Cuando se quieran hacer curvas es necesario marcar varios puntos de giro (Con Click). La idea es regresar al punto desde donde se inici y dar un doble click para cerrar la figura. 3, Dibujar otro polgono de color blanco que tendr aproximadamente la misma forma que el polgono negro pero un poco ms pequeo y ubicado en el interior de ste. Nuevamente es necesario ajustar el color a blanco con los selectores. 4. Dibujar un pequeo rectngulo de color azul (meta) y otro rectngulo de color amarillo (Su coordenada aproximada debe ser X=10, Y=-43). Ver tabla de colores para ajustar exactamente el color con base en la escala RGB. 5. Dibujar una pequea lnea blanca con ayuda de la herramienta rectngulo, justo detrs del personaje, pues si bien ste no puede moverse hacia atrs, podra dar un giro y llegar a la zona azul (meta) sin hacer el recorrido por la pista de color negro.
Juegos en StarLogo TNG - Juan Javier Guampe - 2012
Plan
Pgina 43
Juego 3: Contrareloj
Comentarios
Es importante saber en donde empezar la pista de color negro, pues nuestro personaje ya tiene asignado una posicin de partida y debe estar en ella al inicio del juego. Para saber las coordenadas podemos utilizar la herramienta Edit Terrain y mover el puntero del mouse. Otra opcin es dar click sobre el botn SETUP que se encuentra en el CANVAS para posicionar al personaje y entonces empezar a dibujar con respecto a esta posicin Pgina 44
Juego 3: Contrareloj
Como una segunda opcin para dibujar la pista de color negro, se puede utilizar la herramienta Pencil lpiz. Esta herramienta ofrece una opcin para seleccionar el grosor del trazo. Con un grosor alto podemos dibujar a mano alzada una pista, sin tener que usar la herramienta polgono dos veces. No hay que olvidar ajustar tambin el color a negro para hacer el trazo con el lpiz. Pgina 45
Juego 3: Contrareloj
Pgina 46
Juego 3: Contrareloj
Comentarios
Finalmente podemos cambiar los nombres de los bloques setup y forever, que aparecen en el CANVAS, por unos nombres que tengan una mayor relacin con el juego. Para hacerlo solo debemos dar un docle click sobre estos nombres y escribir los nombres que deseemos. Para este caso se ha reemplazado la palabra setup por Inicio y forever por Competir. Este cambio se puede ver tambin en el SPACELAND donde los dos botones tiene ahora los nuevos nombres.
Juegos en StarLogo TNG - Juan Javier Guampe - 2012
Pgina 47
Juego 3: Contrareloj
Trata de hacer las siguientes modificaciones: - Reemplaza el bloque forever por un bloque run con un lmite de tiempo en segundos y trata de llegar a la meta antes de que se acabe el tiempo. - Realiza otros modelos de pista con mayor dificultad. - Crea un segundo jugador que se controle con otras teclas e intenta jugar en pareja con otra persona para ver quin es el ms rpido.
Pgina 48
Crear un juego de tiempo en el que un personaje debe evitar a los objetos en movimiento y llegar a una meta. El jugador tendr 60 segundos para llegar al objetivo, si es tocado por un objeto deber empezar nuevamente. El personaje podr disparar balas que a su vez pueden eliminar a los objetos.
Problema
1. Preparar las condiciones iniciales: - Eliminar las dos tortugas de inicio - Crear el personaje principal y los objetos - Ajustar las propiedades: Posicin, etc. 2. Asignar las teclas para el movimiento del personaje, de los objetos y las balas 3. Crear el escenario en el SPACELAND 4. Probar y hacer ajustes
Plan
Programando
Comentarios
Empezaremos creando tres personajes de familias diferentes: Jugador, Objetos y Balas. Se ha tomado como forma las imagenes que se muestran, las cuales estn en las pestaas people, basic-shapes y objects respectivamente.
Pgina 49
Comentarios
Un detalle importante a tener en cuenta es el hecho de no haber creado personajes de la familia Balas al inicio del juego. Estos personajes se crearn durante el desarrollo del juego, para lo cual se explicar posteriormente una forma de hacerlo. En la imagen inferior se muestra una visin general de la organizacin de los bloques en seis secciones del CANVAS: Jugador - Objetos - Balas - Setup - Runtime y Collisions. Existen procedimientos en las tres primeras.
Despus de crear las tres familias (Breeds), se crean a los personajes de cada una de ellas y se establecen algunas propiedades. Al inicio del juego se crear un personaje de la familia Jugador, ubicado en la esquina inferior izquierda del terreno y con un tamao de dos. Tambin se crearn diez personajes de la familia Objetos con un tamao de tres y ubicados aleatoriamente, al azar dentro del terreno, por esta razn se ha incluido el bloque scatter Objetos que puede ser encontrado dentro del CAJN Objetos de la pestaa My Blocks. Los ltimos dos bloques se encargan de reinciar el reloj y mostrarlo dentro del SPACELAND.
Pgina 50
Este procedimiento que tiene el nombre mueve y dispara se ha creado en la seccin Jugador del CANVAS. Esta parte de la programacin se encarga de mover al personaje y de permitirle disparar las balas. La parte relacionada con el movimiento ha sido usada en algunos juegos previos y ya se ha explicado con detalle. El penltimo bloque if se encarga de disparar las balas. Para esto se ha configurado la tecla a como condicin necesaria para ejecutar las acciones (then). Aqu se ha utilizado un nuevo bloque llamado hatch-do que se encarga de generar, originar o procrear a un personaje desde el personaje que tiene asociado este bloque. En otras palabras, ser el personaje Jugador quien genere a otro y en este caso ser al personaje Balas, por esto se usa tambin el bloque set breed en conjunto con el bloque breed: Balas que se puede encontrar dentro del CAJN Balas de la pestaa My Blocks. Dentro del bloque hatch-do tambin se han usado dos bloques ms para establecer el tamao de las balas (set size) y la altura de las balas (set altitude). El ltimo bloque if se encarga de mostrar un texto (Meta) si el Jugador llega a una zona de color rojo dibujada en el terreno.
Pgina 51
Este procedimiento con el nombre de mueveobjetos se realiza en la seccin Objetos del canvas y se encarga de mover a cada uno de los diez objetos por el terreno en lnea recta. Adicionalmente se ha establecido un cambio de direccin de 180, si estos objetos se encuentran con zonas de color amarillo o rojo dentro del terreno. Estas zonas en donde los objetos no pueden entrar sern zonas de proteccin para el Jugador
Comentarios
Para las Balas tambin se ha creado un procedimiento llamado muevebala el cual ha sido creado en la seccin Balas del canvas. Este procedimiento se encarga de mover las balas en lnea recta, as como eliminarlas cuando se acercan a los bordes del terreno, especficamente cuando se encuentran en coordenadas (X Y) superiores a 48 inferiores a -48. De no hacer esto las balas quedaran rebotando indefinidamente por el terreno y su nmero aumentara con el paso del tiempo, a medida que el Jugador dispare ms y ms. Aqu se han empleado los bloques or, los de mayor que y menor que y el bloque die que elimina el personaje Bala. Pgina 52
En la seccin Runtime del canvas se ha usado esta vez un bloque diferente. En los juegos previos se utiliz el bloque forever, el cual realiza las acciones colocadas dentro de este bloque continuamente, hasta detener el funcionamiento. Esta vez se ha incluido el bloque run con una opcin de segundos, el cual permite ejecutar las acciones por un tiempo determinado. En el ejemplo se ha colocado 60 segundos para ejecutar los tres procedimientos creados antes. Recordemos que estos bloques de procedimientos se encuentran en los cajones correspondientes a cada familia: Jugador, Objetos y Balas
Comentarios
El ltimo paso dentro del CANVAS es establecer lo que pasar cuando el Jugador se choque con los Objetos y cuando las Balas choquen con los Objetos. Para el caso del Jugador, ste deber volver al punto de partida (Coordenadas X=-50 y Y=-50), cuando se encuentre con cualquiera de los diez objetos, mientras que cuando las Balas y los Objetos se encuentren, los dos personajes desaparecern (die). Esta parte de la programacin se debe realizar en la seccin Collisions del CANVAS y los bloques de color gris necesarios se encuentran en el CAJN Collisions de la pestaa My Blocks
Pgina 53
Comentarios
Solo restar dibujar algunas zonas de color amarillo dentro del TERRENO y una zona de color rojo que indicar la meta. Para dibujar estas zonas se puede utilizar la herramienta Rectangle Circle ubicadas en la pestaa Drawing, ajustando los colores como se ha explicado previamente. La ubicacin de estas zonas queda a decisin de cada persona, sin embargo, la zona de llegada debera quedar lo ms lejos posible de la zona de partida para conseguir un juego ms entretenido.
Pgina 54
Trata de hacer las siguientes modificaciones: - Crear otras zonas de colores que puedan servir para mejorar el juego - Crea un segundo jugador que se controle con otras teclas e intenta jugar en pareja con otra persona para ver quin consigue llegar primero a la meta - Incrementa el nmero de Objetos para hacer el juego un poco ms difcil
Pgina 55
Problema
Crear un juego en donde el personaje principal deba tomar objetos con forma de nmeros que van apareciendo uno a uno en una ubicacin al azar. El personaje no podr detenerse o tocar zonas de color gris, pues de hacerlo ser llevado a una zona al azar. El objetivo del juego ser tomar los cinco nmeros. Con el paso del tiempo el TERRENO se llenar de lneas y ser ms difcil avanzar.
1. Preparar las condiciones iniciales: - Eliminar las dos tortugas de inicio - Crear el personaje principal y los objetos - Ajustar las propiedades: Posicin, etc. 2. Asignar las teclas para el movimiento del personaje y la programacin de las colisiones de los personajes. 3. Probar y hacer ajustes
Plan
Programando
Pgina 56
Comentarios
Esta imagen muestra una visin general de toda la programacin en el CANVAS. Como se aprecia, la mayor cantidad de bloques estn ubicados en la seccin Collision y en la seccin Jugador, mientras que hay una menor cantidad de bloques en las secciones Setup y Runtime. Ahora se explicar con detalle cada parte del juego.
Comentarios
Las condiciones iniciales del juego se crean, como en todos los juegos anteriores, en la seccin Setup del CANVAS. Se han creado dos personajes nicamente: Jugador y uno. Los otros personajes, es decir, los dems nmeros, se crearn durante la ejecucin de juego, a medida que el Jugador vaya tomando cada uno de ellos. Los personajes iniciales han sido ubicados al azar dentro del spaceland con ayuda de los bloques scatter Jugador y scatter uno, que se pueden encontrar en los cajones correspondientes a estas familias
El bloque pen down que est asociado con el personaje Jugador tiene la funcin de dejar un rastro, o trazar una lnea, por donde se vaya moviendo dentro del terreno. Esta lnea ser, por defecto, de color gris.
Pgina 57
El movimiento del Jugador se establece con los primeros cuatro bloques if, como se ha hecho en los juegos anteriores. El bloque if final tiene la funcin de ubicar al Jugador en una zona al azar dentro del terreno, cuando ste se encuentre prximo a una zona de color gris, de hecho cuando est a 2 pasos de una zona de color gris, e incluso cuando est encima de la lnea gris que est dibujando cuando se mueve. Por esta razn el personaje no puede parar y de hacerlo ser llevado a una zona al azar.
La operacin random 101 - 51 tiene como resultado un nmero entre -50 (cuando el nmero al azar generado por el computador es 1 y al ser restado con -51 da como resultado -50) y 50 (Cuando el nmero al azar es 101: 101-51=50)
Juegos en StarLogo TNG - Juan Javier Guampe - 2012
Pgina 58
Comentarios
La imagen de la derecha muestra la programacin realizada en la seccin Collisions del CANVAS. Bsicamente determina el comportamiento de los personajes cuando stos se tocan dentro del terreno. Para comprender mucho mejor el juego, la imagen se muestra en las siguientes pginas con un mejor detalle y una breve descripcin.
Pgina 59
Este bloque de color gris que se encuentra en el CAJN Collisions de la pestaa My Blocks se utiliza para determinar lo que pasar cuando el personaje uno se encuentre con el personaje Jugador. Cuando esto pase, el Jugador ser llevado a una zona al azar dentro del terreno, mientras que el personaje uno generar al personaje dos (Bloque hatch-do), tambin en una zona al azar y desaparecer (Bloque die).
Comentarios
Este bloque determina lo que pasar cuando el personaje dos se encuentre con el personaje Jugador. Cuando esto pase, el Jugador ser llevado a una zona al azar dentro del terreno, mientras que el personaje dos generar al personaje tres y desaparecer.
Juegos en StarLogo TNG - Juan Javier Guampe - 2012
Comentarios
Pgina 60
Comentarios
El proceso se repite hasta que el personaje cuatro genera al personaje cinco, como se muestra en las imgenes. Esta es otra forma de generar personajes en un juego y es el bloque hatch-do el que permite hacerlo.
Comentarios
Este bloque de colisin determina lo que pasa cuando el Jugador toque al personaje cinco, haciendo que ste ltimo desaparezca y mostrando el mensaje de Lo hice. Este mensaje indica el final del juego. Pgina 61
Comentarios
Durante el juego siempre est el Jugador y otro de los personajes de nmeros. A medida que el jugador se mueve, va dejando detrs de s un rastro de color gris. A medida que el jugador va tocando los n m e r o s , stos van desapareciendo y el siguiente nmero se genera en otra zona para que el jugador lo tome. Con el paso del tiempo el terreno se va llenando de zonas de color gris, haciendo ms difcil el desplazamiento del jugador.
Pgina 62
Trata de hacer las siguientes modificaciones: - Intenta dar movimiento a los nmeros, de tal forma que se an ms difcil alcanzar los objetos que debe tomar el personaje principal. - Incluye hasta el nmero 9, haciendo mucho ms difcil el juego. - Piensa en una forma diferente de hacer el juego en donde los nmeros sean reemplazados por varios personajes de UNA MISMA FAMILIA.
Pgina 63