Top Banner
Fecha de la versión: Agosto de 2015 Actualizaciones:
43

Greenfoot 8

Apr 12, 2017

Download

Education

Elian Maya
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Greenfoot 8

Fecha de la versión: Agosto de 2015

Actualizaciones:

Page 2: Greenfoot 8
Page 3: Greenfoot 8

3

Page 4: Greenfoot 8

4

Page 5: Greenfoot 8

Como hemos visto anteriormente, un constructor se declara como

público <ClassName>(parámetros opcionales)

5

Page 6: Greenfoot 8

En Greenfoot, el constructor en la clase World se agrega por defecto. En las subclases actor no se ha agregado ningún constructor en el código.

6

Page 7: Greenfoot 8

"super" en Java es una llamada al constructor del principal. Por lo tanto, en BeeWorld se agrega super con 3 parámetros definiendo el ancho, alto y tamaño de celda.

Esto nos indica que la clase World tiene un constructor que acepta tres valores enteros.

7

Page 8: Greenfoot 8

A la hora de diseñar el juego, tenga siempre en cuenta que es posible que otros usuarios tengan un tamaño de pantalla que coincide con su resolución. Por lo tanto, si crea un juego con unas dimensiones de 1900 x 1200, muchos de los usuarios no podrán verlo por completo.

8

Page 9: Greenfoot 8

Anteriormente, hemos visto que la opción "Save the World" hace exactamente esto, pero podemos modificarla en el código fuente para ampliar su función.

9

Page 10: Greenfoot 8

Super(560,560,1): crea un mundo con un ancho de 560 y una altura de 560.

10

Page 11: Greenfoot 8

No tenemos que limitarnos a solo 2 imágenes. Cuantas más imágenes utilicemos en la animación, más suave será el efecto.

11

Page 12: Greenfoot 8

Recuerde que las imágenes transparentes nos permiten crear efectos más realistas, en lugar de que la imagen tenga el aspecto de un bloque.

12

Page 13: Greenfoot 8

La palabra clave new generará una llamada al constructor de GreenfootImage. En este ejemplo, el constructor aceptará un valor de cadena relacionado con el nombre de una imagen almacenada en la carpeta de imágenes.

13

Page 14: Greenfoot 8

Recuerde que Java distingue mayúsculas y minúsculas, por lo que es importante su uso en la cadena "bee.png".

14

Page 15: Greenfoot 8

15

Page 16: Greenfoot 8

La parte más difícil de la animación en Greenfoot o en cualquier otra herramienta de software es el dibujo de imágenes o el acceso a imágenes relevantes en Internet.

16

Page 17: Greenfoot 8

17

Page 18: Greenfoot 8

Solo hemos creado variables del tipo int o boolean. Para guardar una imagen, utilizamos el tipo GreenfootImage.

18

Page 19: Greenfoot 8

Por lo general, declaramos las variables de clase como privadas, de modo que no se pueda acceder a estas directamente desde fuera de la clase. Crearíamos métodos que permitirían obtener y definir su valor.

19

Page 20: Greenfoot 8

Podemos ver que hemos agregado 2 campos de clase adicionales, ambos del tipo Greenfootimage. Si hiciéramos clic con el botón derecho en una instancia Bee y seleccionáramos inspect, veríamos estos 2 campos.

20

Page 21: Greenfoot 8

Recuerde que un único signo igual = es una asignación y un doble signo igual == es una comparación.

21

Page 22: Greenfoot 8

Recuerde que todas nuestras imágenes deben incluirse en la carpeta Images.

22

Page 23: Greenfoot 8

23

Page 24: Greenfoot 8

Aquí hemos utilizado 2 imágenes, pero podríamos utilizar tantas imágenes como quisiéramos.

24

Page 25: Greenfoot 8

25

Page 26: Greenfoot 8

El pseudocódigo le permite centrarse en el algoritmo en lugar de en la sintaxis.

26

Page 27: Greenfoot 8

Tener una idea clara de su pseudocódigo permite que la escritura de las sentencias de Java equivalentes sea mucho más sencilla. Resulta fácil prestar demasiada atención a la sintaxis en lugar de pensar en el algoritmo.

27

Page 28: Greenfoot 8

El compilador de java casi siempre informará del error si se mezclan los signos de igual y doble igual.

28

Page 29: Greenfoot 8

getImage es un método de la clase Actor.

29

Page 30: Greenfoot 8

Tenga en cuenta que los métodos que hemos creado anteriormente se muestran en la parte inferior del método act. Los trasladamos a sus propios métodos para que el código fuese más legible.

30

Page 31: Greenfoot 8

La ejecución del programa probablemente produce una animación que es demasiado rápida. Podríamos agregar un retardo utilizando un contador que solo cambiará la animación cuando se restablezca el contador.

31

Page 32: Greenfoot 8

También es posible que no desee detener la partida de Greenfoot pero desee volver a la pantalla de inicio.

32

Page 33: Greenfoot 8

Puede grabar un mensaje con formato .wav indicando que ha finalizado el juego.

33

Page 34: Greenfoot 8

Podemos llamar a stop() desde una clase Actor o una clase World.

34

Page 35: Greenfoot 8

35

Page 36: Greenfoot 8

También es recomendable agregar comentarios a las variables de clase de modo que el usuario entienda mejor el significado. En este ejemplo se han omitido debido al espacio que se ha dejado para la captura de pantalla.

36

Page 37: Greenfoot 8

El código score++; es el mismo que si se escribe score = score+1; que incrementa la puntuación en 1.

La última línea del código obtiene el mundo actual y llama a su método addObject() que vimos anteriormente. Esta vez lo llamamos desde un actor, por lo que getWorld() devuelve una referencia al mundo actual. Esto significa que cada vez que capturamos a una mosca, reaparece otra.

37

Page 38: Greenfoot 8

Podríamos haber escrito:

this.setLocation(20,20);

this.lives--;

Recuerde que "this" es opcional y en la mayoría de los casos no es necesario.

38

Page 39: Greenfoot 8

El método Greenfoot.showText() se agregó en la versión 2.4.0

39

Page 40: Greenfoot 8

La creación de un nuevo método denominado updateScore() nos permite llamar a este método desde cualquier otra parte de la clase Bee. Eso significa que si hemos agregado algo más que haya aumentado la puntuación, podríamos simplemente llamar a updateScore() sin tener que volver a escribir el código. También podríamos agregar un parámetro como int scoreincrease que incrementaría la puntuación en más de uno:

updateScore(int scoreincrease) {

score = score + scoreincrease;

}

40

Page 41: Greenfoot 8

41

Page 42: Greenfoot 8

42

Page 43: Greenfoot 8