Greenfoot tutorial
Versión 1.0
Greenfoot, versión 1.0
Michael Kölling
Prólogo
1. Acerca de Greenfoot
Este tutorial es una introducción al mundo de objetos de Greenfoot.
Greenfoot es una herramienta de software diseñada para permitir que los principiantes puedan obtener experiencia en la programación orientada a objetos. Esta plataforma soporta desarrollo de aplicaciones gráficas.
Greenfoot fue diseñado e implementado en la Universidad de Kent, Inglaterra y la Universidad Deakin, Melbourne, Australia.
Más información sobre Greenfoot está disponible en www.greenfoot.org.
2. Alcance y audiencia
Este tutorial está destinado a aquellas personas que desean familiarizarse con Greenfoot. Es un breve resumen y se centra en la funcionalidad del medioambiente de Greenfoot. No intenta enseñar Java. Asume que el lector ya sabe de Java o está recibiendo apoyo mientras trabajaba a través de la segunda mitad de este tutorial.
Todas las actividades que se describen aquí se realizan sobre un escenario existente y se discute cómo utilizarlo y hacer modificación de ese escenario.
Los usuarios que quieren a construir sus propios escenarios, o introducir cambios importantes en los escenarios existentes, deben leer el Manual del programador de Greenfoot.
3. Derecho de autor, licencias y redistribución
El sistema de Greenfoot y este tutorial están disponibles 'tal cual', libre de cargo paraquien lo use y sin redistribución comercial.
No se puede vender ninguna parte del sistema Greenfoot o su documentaciónCualquier transacción comercial se debe realizar previa autorización por escrito de los autores del sistema.
El copyright © de Greenfoot es propiedad de Poul Henriksen y Michael Kölling.
Existen tres versiones diferentes: una para Windows, uno para MacOS X y uno para todos los otros sistemas.
Requisitos previos
Debe tener Java 5 (también conocido como JDK 1.5) o posterior instalado en el sistema para utilizar Greenfoot. En general, actualizar a la última estable (no-beta) Java, se recomienda la versión. Si no tienes JDK instalado puede descargarlo desde el sitio web de Sun en http://java.sun.com/j2se/ . No descargue una versión llamada "jre" (Java runtime Environment) – el JRE no es suficiente. Necesita una versión que se denomina JDK.
En MacOS X, una versión reciente de J2SE viene preinstalada: no es necesario que lo instale usted mismo.
4. Instalación en Windows
Para sistemas Windows de Microsoft, descargue la versión del instalador de Windows. Haga doble clic en el archivo de instalación y siga las instrucciones. La instalación sigue un proceso de instalación estándar.
5. Instalación en Mac OS X
Para Mac OS X, descargue la versión Mac OS del software. El archivo de descarga es un archivo zip. Su navegador puede desempaquetar el archivo automáticamente para usted. Si no es así, haga doble clic en el archivo zip para descomprimirlo.
La carpeta resultante contiene la aplicación Greenfoot y escenarios de ejemplo. Ambos pueden colocarse en cualquier lugar que se desee. Una solución común es colocar la aplicación Greenfoot en la carpeta de aplicaciones y los 'escenarios' en la carpeta de documentos.
6. Instalar en otros sistemas
El programa de instalación para todos los otros sistemas es un archivo jar ejecutable. Puede ejecutar el programa de instalación, abra una línea de comandos y escriba
java-jar greenfoot-instalador-XX.jar
(donde XX es el número de versión del archivo de instalación). En algunos sistemas, también puede trabajar el doble clic en el archivo jar. (Tenga en cuenta que este comando se supone que el comando 'java' está en la ruta de búsqueda, sino, instalar y configurar java primero.)
7. El escenario WOMBATS
Este tutorial utiliza dos escenarios, llamado 'Wombat' y 'wombats2'. Se distribuyen junto con este tutorial. Cada escenario aparecerá como una carpeta en el sistema de archivos.
Figura 1: El escenario de Wombat en Greenfoot
Introducción
8. Abrir un proyecto Greenfoot
Lo primero que se debe hacer es abrir la plataforma, iniciando Greenfoot.
El proceso de instalación ha dejado una aplicación denominada 'greenfoot', la que debe ser iniciada. (En los sistemas Linux y Unix, 'greenfoot' es una secuencia de comandos de shell ejecutable).
Una vez que Greenfoot se ha puesto en marcha, debemos acceder al escenario Wombat, para esto elegir "Abrir..." en el menú 'Proyecto' y seleccione el escenario de 'Wombat' de los escenarios de ejemplo Greenfoot, esto en caso de que no se abra automáticamente.
Debe aparece algo como la figura 1 en pantalla (el escenario se presenta vacío, aún no le hemos agregado elementos gráficos).
El área desplegada, que cubre la mayoría de la ventana se denomina "el mundo ". Ya existe un escenario que tiene que ver con Wombat, lo que en verdad estás viendo es el mundo de wombat. Hacia el lado derecho de la ventana se despliegan las clases que se pueden utilizar en este escenario. Aquí puede ver todas las clases de Java que participan en el proyecto.
Las clases "World" y "Actor" son las clases bases de toda la plataforma de Greenfoot. Otras clases pertenecen al escenario wombat y serán diferentes si utiliza diferentes escenarios.
A continuación, lo que aparece en el mundo son los Controles de ejecución (la zona con los botones 'Actr' y ‘Run’ y el regulador).
9. Averiguar sobre el escenario
Hacia la esquina superior derecha de la ventana, se observa un botón etiquetado " Información de Escenario". Al hacer clic en el botón la mayoría de los escenarios, muestra cierta información sobre él. Esta información indica normalmente el propósito del escenario, cómo ejecutarlo, lo que se puede hacer él y probablemente, algunas sugerencias de cómo podría ser modificado por ustedes.
10. Colocar objetos en el mundo
Ahora agregamos algunos objetos al mundo escogido.
Al hacer clic con el botón derecho (en Mac: click botón derecho) en la clase Wombat, verá un menú emergente. Seleccione "Nuevo Wombat()". Haga clic en cualquier parte del mundo. Acaba de crear un wombat (en términos de Java: un objeto) y lo colocó en el mundo.
Los Wombat comen hojas, así que debemos colocar algunas hojas en el mundo. Haga clic en la clase de hoja, aparece el new, y arrastramos la imagen para colocar la hoja en el escenario.
Hay un mecanismo para colocar varios objetos un poco más rápido: Mayús y haciendo clic en el mundo. Asegúrese de que está seleccionada la clase hoja, a continuación, mantenga pulsada la tecla Mayús y haga clic en el mundo varias veces. Coloque un objeto de la clase seleccionada en cada clic.
11. Hacer que los objetos actúen
Haga clic en el botón ‘Act’ en los controles de ejecución. Cada objeto ahora actúa – es decir: cada objeto hace lo quiere hacer.
Lo que se quiera hacer con los objetos depende de cómo se definen los comportamientos de ellos, es decir, qué se puede hacer. En este ejemplo, las hojas no definen comportamientos, mientras que Wombat avanza. Se recomienda probar esta práctica, colocando dos osos australianos en el mundo, al pulsar el botón ‘Act’, ambos se moverán.
A un Wombat también le gusta comer hojas. Si al desplazarse, en su camino, encuentra una hoja, se la puede comer.
12. Ejecuta un escenario
Haga clic en el botón "Run". Esto es equivalente a hacer clic en el botón de ‘Act’ una y otra vez, muy rápidamente. Verá que el botón “Run” cambia a un botón de 'Pausa'. Este botón permite detener temporalmente la ejecución.
El control deslizante, que está junto a los botones de “Act” y “Run” establece la velocidad. Para probar esto, hacer clic en “Run” y, a continuación, cambiar el regulador y se verá el cambio en la velocidad.
13. Invocar métodos directamente
En lugar de simplemente ejecutar el escenario completo, también pueden invocar un solo método. Un método es una acción que un objeto puede realizar.
Asegúrese de que tiene un wombat en el mundo, y no se está ejecutando el escenario. A continuación, haga clic en el wombat, y verá que los objetos del mundo también tienen un menú emergente (figura 2).
Figura 2: Un menú emergente de objeto
Puede seleccionar cualquiera de los métodos que se muestra a continuación para indicarle al wombat que debe hacer algo. Probar, por ejemplo, turnLeft(). Esta selección en el menú, le indica al wombat que debe girar a su izquierda. Intente move().
Algunos métodos retornan una respuesta. getLeavesEaten(), por ejemplo, le dirá cuántas hojas este wombat ha comido hasta ahora. Probarlo.
También verá un método llamado 'act()'. Este método es invocado cada vez que se hace clic en el botón de la ‘Act’. Si desea que un objeto, en particular, se ejecute en el escenario, se puede hacer invocando el método act() del objeto directamente.
14. Crear un nuevo mundo
Si tienes muchos objetos en el mundo que ya no desea, y desea empezar, hay una opción fácil: cerrar el mundo y crear uno nuevo. Esto normalmente se realiza haciendo clic en el botón de 'Reset' en la parte inferior de la pantalla. Obtendrá un mundo nuevo y vacío. Se descarta el viejo mundo (y con él todos los objetos que estaban en él), sólo puede tener un mundo a la vez.
15. Invocar un método de mundo
Hemos visto que los objetos en el mundo tienen métodos que puede invocar a través de un menú emergente. El mundo es también un objeto con métodos que se pueden invocar.
En la sección anterior hemos visto cómo crear nuevos mundos. Ahora queremos invocar un método del objeto World.
Sobre el mundo hay un título que muestra el nombre del mundo: "WombatWorld" en nuestro caso. Hacer clic en este título, y verá el menú de todo el mundo. (Tenga en cuenta que este es el título por encima de la pantalla, no el nombre de clase en el panel de la derecha.)
Uno de los métodos de este menú es 'populate()'. Pruebe. Es un método que crea varias hojas y osos australianos(wombat) y los coloca en el mundo. A continuación, puede ejecutar el escenario.
Otro método de mundo es 'randomLeaves(int howMany)'. Este método coloca algunas hojas en el mundo en ubicaciones aleatorias. Tenga en cuenta que este método tiene algunas palabras entre paréntesis tras su nombre: howMany int . Esto se llama un 'parámetro'. Esto significa que debe especificar algunos bits adicionales de información al invocar este método. El término 'int' le dice que se espera un número entero, y 'howMany' sugiere que debe especificar cuántas hojas que desee.
Al invocar este método, un cuadro de diálogo aparecerá, el que le permite introducir un valor para este parámetro. Introduzca un número: es decir: 12 – y hacer clic en Aceptar.
(Se puede observar, si contamos, que a veces parece como si el número especificado de hojas es menor que las que se crearon. Esto es porque algunas hojas pueden estar en el mismo lugar y se encuentra por encima de la otra.)
Está bien, tal vez tienes suficiente de osos australianos corriendo en círculos sin cesar, pasemos a las cosas realmente interesante: programación de comportamiento más interesante para su propio Wombat!
El resto de este tutorial asume que los lectores conocen algunos fundamentos de la programación de Java. No está pensado como una primera actividad a partir de los estudiantes.
16. Cambiar el comportamiento de un objeto
Puede programar sus propios objetos, Wombat, o cualquier cosa que te gusta, escribiendo código Java para la clase del objeto. Eso es lo que haremos ahora.
Haga doble clic en la clase Wombat en la pantalla de clase. Abre un editor de texto y verá el código fuente de Java para la clase de Wombat.
Lo primero que queremos hacer es cambiar el comportamiento del wombat modo que, cuando no puede avanzar, resulta una dirección aleatoria en lugar de siempre girando a la izquierda. Para lograrlo, primero agregamos un método 'turnRandom()'. Agregue el método siguiente a la clase Wombat:
A continuación, se modifica el método 'act()' para hacer uso de turnRandom. El método act() actualmente Lee:
Sustituir la llamada a 'turnLeft()' en el final con una llamada a 'turnRandom()'.
Después de hacer este cambio, se debe probar. Para esto hacer clic en el botón 'Compilar' en el editor. Si se muestran los errores, corregir y volver a compilar. Repita esto hasta la clase compila sin errores. Ahora puede cerrar el editor.
17. Compilar el proyecto
Antes de ejecutar debe compilar el proyecto. Puede hacer esto desde dentro del editor, o desde la ventana principal de Greenfoot.
Una vez que ha compilado correctamente, puede crear objetos nuevamente. Si la compilación tiene éxito automáticamente crea un objeto del mundo.
18. Cambio de imágenes
Hay dos maneras que permiten cambiar la imagen de objetos: puede cambiar la imagen de una clase, que cambiará la imagen predeterminada para todos los objetos de esa clase. O un objeto puede cambiar su imagen mediante programación, que va a cambiar sólo el objeto individual. Cada objeto puede cambiar su imagen como a menudo le parezca.
Para establecer una imagen de clase, elija '... Establecer imagen' del menú emergente de la clase. Esto podría probarse con la clase de Leaf: cambiar la imagen a, digamos, un plátano y el wombat recopilará los plátanos. (Probablemente no lo que se recomienda para estos animales, pero por eso estamos utilizando una simulación...) Greenfoot dispone de una biblioteca de imágenes incorporadas que puede utilizar, o puede utilizar sus propias imágenes en la carpeta 'imágenes' dentro de la carpeta de escenario ('Wombat') y, a continuación, las escoge.
La segunda posibilidad es que un objeto cambiar su imagen como parte de su acción programada. Puede hacerlo fácilmente llamando al método 'setImage' heredado de la clase Actor. Hay dos versiones de 'setImage': uno espera un parámetro de tipo GreenfootImage, el otro toma el nombre de un archivo (y, a continuación, lee el archivo de imagen en un objeto de tipo GreenfootImage).
Para probar se utilizará la versión del método que lee una imagen desde un archivo. La tarea que se debe lograr es que Wombat no aparezca caminando al revés, al aplicar giro a la izquierda. El proyecto de 'Wombat' ya contiene un archivo denominado ' wombat-left.gif' en la subcarpeta 'imágenes'. Se trata de un archivo de imagen en formato GIF que muestra una imagen del wombat que hemos visto hasta ahora: un wombat buscando a la izquierda.
Podemos cambiar la imagen del wombat , en la versión de orientación a la izquierda:
setImage("wombat-left.gif");
Se utilizará este método cuando el wombat cambie de dirección. Para ello se debe modificar el método de 'setDirection(int Direction)' de Wombat. Este método se encuentra en el código fuente de Wombat.
Se proceda a agregar algunas líneas de código,para establecer la imagen correcta y rotación correcta, cuando se establezca una dirección. Se utilizará la imagen de 'wombat-left' al oeste y norte y la imagen original de 'wombat' cuando va hacia el este o sur. Tenga en cuenta que la imagen de 'wombat-left' se enfrenta a Occidente por defecto: no necesita girarse cuando nos dirigimos hacia el oeste.
Aquí está la nueva versión de 'setDirection':
Este método funciona suficientemente bien para cada caso. Si esto se hace más óptimo, se debe cargar los objetos de la imagen de archivo sólo una vez (en el constructor) y almacenarlos en campos de tipo GreenfootImage. A continuación, podemos utilizar los objetos de las dos imágenes para cambiar la imagen varias veces.
Ahora, se propone añadir imágenes separadas para el movimiento de arriba y abajo– la idea es que usted lo realice.
19. Profundizando sobre las clases de Greenfoot
Para realizar cambios en el comportamiento del objeto, a menudo es necesario hacer uso de algunas clases de Greenfoot estándares. Greenfoot proporciona cuatro clases importantes que debe conocer: Worl, Actor, GreenfootImage y Greenfoot.
Las dos primeros son visibles en la interfaz y forman las superclases para clases de mundo y objeto del escenario. GreenfootImage se utiliza para trabajar con imágenes, y Greenfoot proporciona acceso al propio marco Greenfoot.
La forma más fácil de aprender acerca de estas clases es mirar la documentación en pantalla de la API de Greenfoot. Esta se encuentra en el siguiente enlace de internet:
http://www.greenfoot.or0/Programming/
En esa página, puede obtener una versión en línea de las descripciones de clase Greenfoot (llamado el "Greenfoot API"), y se puede descargar la descripción en un solo documento imprimible.
20. Inspección de un objeto
Invocar la función 'Inspect' en el menú de cualquier wombat en el mundo. Esto permite buscar dentro del objeto y comprobar el valor de sus campos. Esto puede ser útil para pruebas mientras se desarrollan las clases.
Notará que verá algunos campos definidos en la clase Wombat (tales como 'leavesEaten') y algunos que no están definidos en Wombat. Los campos adicionales (como x, y y rotación) se heredan de Actor y están presentes en todos los objetos Greenfoot.
Si un valor se muestra como un símbolo de flecha, el campo contiene una referencia a otro objeto, que puede ser inspeccionado a su vez (seleccionándolo y haciendo clic en 'Inspeccionar').
Figura 3 – Inspeccionado un objeto
21. Crear una nueva clase
Es el momento de hacer la vida de nuestro Wombat un poco más difícil agregando algunos obstáculos: por ejemplo: rocas. (La idea es hacer las rocas tan grande que no se puede subir Wombat sobre ellas.)
Para ello, creamos una nueva clase de actor. Elija 'Nueva subclase' en el menú emergente del Actor. Esto creará una nueva clase como una subclase de Actor. Cuando se le solicite un nombre de clase, escriba 'Rock'. También se solicitará que seleccione una imagen para la clase.
Usted podría encontrar ( en Google es tu amigo!) o hacer (en cualquier programa de gráficos) una imagen y colocarla en el directorio del proyecto 'imágenes' antes de crear la clase. Luego se presentará en este diálogo. En este caso, ya se ha colocado un archivo de imagen denominado 'rock.gif' en el proyecto para hacer las cosas un poco más rápido.
Seleccionar la imagen, hacer clic en Aceptar y una nueva clase con el nombre Rock se crea.
Ahora abrir el editor de esa clase. Notará que se genera automáticamente un esqueleto de origen. Realmente no tenemos que escribir ningún código ahora. (Rocas no tienen ningún comportamiento particular).
Cierre el editor, compile y pruebe (crear un objeto). Fantástico– allí están las rocas!
Ahora rellenar el escenario un poco y probar el wombat. (Se podría utilizar los métodos 'populates' y 'randomLeaves' de World y, a continuación, agregar algunas rocas a mano.) Notará que hay rocas, pero el wombat ejecuta a través de ellos. Oh – más trabajo por hacer
22. Hacerle propios escenarios
Hacer grandes modificaciones o completamente nuevos escenarios no está cubierto en este tutorial. Si desea hacerlo, tiene dos opciones: puede examinar los escenarios existentes, o se podía leer el Manual del programador de Greenfoot.
Por supuesto, también necesita tener la documentación de clases de Greenfoot (la API Greenfoot) disponible, como se describe anteriormente.
Lo último que hacemos aquí, para darle una visión rápida, es hacer una modificación más para detener el wombat de caminar a través de las rocas.
Abra el editor de clase Wombat y encontrar el método 'canMove'. Actualmente, este método comprueba si nos enfrentamos el borde del mundo. Es necesario modificarlo para que también devuelve false cuando hay una roca delante de nosotros.
Reemplazar la última instrucción return, que actualmente Lee
return true;
Este fragmento de código obtiene una lista de todas las rocas de la celda delante de nosotros. Si esta lista está vacía, podemos avanzar, de lo contrario no podemos.
El proyecto 'wombats2', que fue incluido en la descarga de este tutorial, incluye todos los cambios visto en este tutorial.
23. De ahora en adelante
Recomendaciones para seguir el aprendizaje:
Ø Abrir algunos de los escenarios que se instalaron junto con el software de Greenfoot. Ver cuáles son de su interés y, a continuación, inspeccionar el código y su comportamiento.
Ø Visitar el sitio web de Greenfoot y buscar más escenarios.
Ø La mejor recomendación: hablar con otros usuarios de Greenfoot.
Ø Hay dos maneras de saber más sobre Greenfoot y ponerse en contacto con la comunidad de Greenfoot:
ü Anotarse en la lista de correo de Greenfoot y conseguir hablar con otros programadores Greenfoot.
ü Mirar la Galería de Greenfoot para ver algunos otros escenarios.
La lista de correo la puede encontrar aquí:
http://www.greenfoot.org/about/mailing.html
Qué se divierta.