SlideShare una empresa de Scribd logo
1 de 30
Descargar para leer sin conexión
Fecha de la versión: Agosto de 2015
Actualizaciones:
3
La utilización de métodos nos permite utilizar las funciones que proporciona el equipo de desarrollo de
Greenfoot. La definición de nuestros propios métodos nos permite expandir la funcionalidad de nuestros
objetos.
Los métodos definidos pueden utilizarse del mismo modo que los métodos heredados suministrados por
Greenfoot.
4
La definición de sus propios métodos no mejora el rendimiento del juego, pero puede aportar muchas otras
ventajas como un código más legible y una agilización del tiempo de desarrollo.
5
Si el nombre que se asigna a los métodos es significativo, se facilita la lectura del código. Tenga en cuenta
que todos los métodos de las clases Greenfoot comienzan por minúscula y utilizan la mayúscula para
diferenciar entre palabras, es decir, getRandomNumber().
6
La definición del método public void handleMovement podría haberse convertido en privada. Esto
significaría que cualquier subclase de abeja no podrían tener acceso a la misma. Es void porque no
devuelve un valor y solo realiza una función que consiste en controlar el movimiento de la abeja.
7
No siempre resulta obvio el momento en el que debemos crear una subclase de nuestra subclase. La
planificación del juego nos ayuda a detectar estos patrones desde el principio.
8
isAtEdge es un método agregado recientemente a la funcionalidad de Actor. Esto se debía a la naturaleza
común de los programadores que tenían que escribir sus propias rutinas para manejar esta incidencia
común.
9
Si una imagen gira 180 grados, girará exactamente la mitad de un giro completo, es decir, girará en el
sentido opuesto.
10
Si se utiliza lógica booleana, es habitual utilizar variables locales. Se trata de variables que la instancia del
objeto no guarda y que se asocian al nivel de método. Por lo tanto, cuando el método finaliza, el valor de la
variable local se pierde. Es importante nombrar a estas variables de la forma adecuada, ya que pueden
facilitar en gran medida la lectura de las expresiones booleanas.
11
El diagrama muestra que todas nuestras clases son subclases directas de Actor.
12
La clase se define como
Clase pública Araña que se extiende desde Actor
Simplemente cambiándolo por
Clase pública Araña se extiende desde Bug
Podemos cambiar la superclase de la araña. Este método es eficaz, ya que permanecemos en la misma ruta
de acceso de herencia. Si la hemos cambiado a World, si tuviésemos código en Spider, generaría errores
puesto que los métodos utilizados no se heredarían de la clase World.
13
Lo hemos hecho público porque queremos que las subclases utilicen este método.
Es void porque no devuelve ningún valor.
14
Tenga en cuenta que podemos llamar a un método de superclase (según su visibilidad/accesibilidad) si es
público desde una subclase.
15
getWorld() devuelve una referencia al mundo actual.
getWorld().getWidth() devuelve el ancho del mundo actual.
Podríamos haber utilizado aquí un valor como 800, pero si cambiásemos el ancho del mundo, la
funcionalidad de este método se vería afectada. Llamar al método getWidth() del mundo produce una
solución flexible.
16
La clase World también tiene un método para devolver la altura: getHeight()
17
Siempre es aconsejable utilizar los métodos getHeight() y getWidth() en lugar de escribir un valor.
18
El método handleMovement() es nuestro propio método definido que hemos creado para controlar el
movimiento desde Act en su propio método.
public void handleMovement() {
move(3);
if (Greenfoot.isKeyDown("left")) {
turn(-2);
}
if (Greenfoot.isKeyDown("right")) {
turn(2);
}
}
Le restamos 6 al ancho del mundo, por lo que no se detecta inmediatamente que otra vez estamos al
borde.
19
Nuestra abeja ahora debe alejarse volando hacia un borde de la pantalla y reaparecer en el borde opuesto.
20
Recuerde cambiar la vista en el editor para mostrar la documentación, para ello cambiamos el cuadro
desplegable en la parte superior de la ventana.
21
A pesar de que definimos una colisión como el momento en el que dos actores entran en contacto,
también podemos modificar nuestro código para poder detectar una colisión si dos actores se aproximan
entre sí. Los últimos tres métodos anteriores getIntersectingObjects(), getNeighbours() y
getObjectsAtOffset() devuelven una lista. A continuación, tendríamos que procesar la lista para saber lo
que queremos.
22
isTouching devuelve un valor booleano (true o false). Los otros dos métodos devuelven una referencia a un
actor.
23
El código de este método podría escribirse de varias formas.
24
Si simplemente hubiésemos escrito isTouching(), devolvería true si tocásemos cualquier otro actor, incluya
una instancia de otra abeja.
25
Getoneintersectingobject devuelve una referencia a un actor. El tipo de actor en este ejemplo se limita
únicamente a ser una instancia de la clase Fly. Si no se encuentra una colisión con una mosca, la mosca de
la variable de referencia proporciona un valor nulo.
A continuación, compruebe si la mosca ofrece un valor nulo y, de lo contrario, elimínela.
26
Para ordenar el método Act anterior, debemos crear otro método definido para conseguir que alcancemos
el borde del mundo. De este modo, el método act quedaría:
Handlemovement();
Turnatedge();
Catchfly();
27
28
29
Jf 3 6_sg_esp(3)

Más contenido relacionado

Similar a Jf 3 6_sg_esp(3) (20)

Jf 3 9_sg_esp(2)(3)
Jf 3 9_sg_esp(2)(3)Jf 3 9_sg_esp(2)(3)
Jf 3 9_sg_esp(2)(3)
 
CAPITULO 9 GREENFOOT
CAPITULO 9 GREENFOOTCAPITULO 9 GREENFOOT
CAPITULO 9 GREENFOOT
 
CAPITULO 9 DE GREENFOOT
CAPITULO 9 DE GREENFOOTCAPITULO 9 DE GREENFOOT
CAPITULO 9 DE GREENFOOT
 
Greenfoot 9
Greenfoot 9Greenfoot 9
Greenfoot 9
 
Capitulo9 greenfoot
Capitulo9  greenfootCapitulo9  greenfoot
Capitulo9 greenfoot
 
Jf 3 9_sg_esp(2)(3)
Jf 3 9_sg_esp(2)(3)Jf 3 9_sg_esp(2)(3)
Jf 3 9_sg_esp(2)(3)
 
Greenfoot 9
Greenfoot 9Greenfoot 9
Greenfoot 9
 
Capitulo 9
Capitulo 9Capitulo 9
Capitulo 9
 
Capitulo 9
Capitulo 9Capitulo 9
Capitulo 9
 
leccion 9
leccion 9leccion 9
leccion 9
 
Greenfoot 9
Greenfoot 9Greenfoot 9
Greenfoot 9
 
Greenfoot 9
Greenfoot 9Greenfoot 9
Greenfoot 9
 
leccion 8
leccion 8leccion 8
leccion 8
 
Jf 3 8_sg_esp(2)(3) 8
Jf 3 8_sg_esp(2)(3) 8Jf 3 8_sg_esp(2)(3) 8
Jf 3 8_sg_esp(2)(3) 8
 
CAPITULO 8 DE GREENFOOT
CAPITULO 8 DE GREENFOOTCAPITULO 8 DE GREENFOOT
CAPITULO 8 DE GREENFOOT
 
Capitulo 8
Capitulo 8Capitulo 8
Capitulo 8
 
Greenfoot 8
Greenfoot 8Greenfoot 8
Greenfoot 8
 
Greenfoot 8
Greenfoot 8Greenfoot 8
Greenfoot 8
 
CAPITULO 8 GREENFOOT
CAPITULO 8 GREENFOOTCAPITULO 8 GREENFOOT
CAPITULO 8 GREENFOOT
 
Capitulo 8
Capitulo 8Capitulo 8
Capitulo 8
 

Más de EspitiaGiancarlo (20)

Diseno de la_pagina_web_en_power_point(toto)
Diseno de la_pagina_web_en_power_point(toto)Diseno de la_pagina_web_en_power_point(toto)
Diseno de la_pagina_web_en_power_point(toto)
 
Cuaderno
CuadernoCuaderno
Cuaderno
 
2. pagina web
2. pagina web2. pagina web
2. pagina web
 
Pagina web stragames_pro
Pagina web stragames_proPagina web stragames_pro
Pagina web stragames_pro
 
Examen de Diagnositico
Examen de DiagnositicoExamen de Diagnositico
Examen de Diagnositico
 
Teoria del color
Teoria del colorTeoria del color
Teoria del color
 
Tipos de topologias de red
Tipos de topologias de redTipos de topologias de red
Tipos de topologias de red
 
Caracteristicas y partes de un sitio web
Caracteristicas y partes de un sitio webCaracteristicas y partes de un sitio web
Caracteristicas y partes de un sitio web
 
Jf 3 1_sg_esp(4)
Jf 3 1_sg_esp(4)Jf 3 1_sg_esp(4)
Jf 3 1_sg_esp(4)
 
Jf 3 2_esp(2)(4)
Jf 3 2_esp(2)(4)Jf 3 2_esp(2)(4)
Jf 3 2_esp(2)(4)
 
Jf 3 3_esp(3)(3)
Jf 3 3_esp(3)(3)Jf 3 3_esp(3)(3)
Jf 3 3_esp(3)(3)
 
Jf 3 4_sg_esp(2)(3)
Jf 3 4_sg_esp(2)(3)Jf 3 4_sg_esp(2)(3)
Jf 3 4_sg_esp(2)(3)
 
Jf 3 5_sg_esp(2)(3)
Jf 3 5_sg_esp(2)(3)Jf 3 5_sg_esp(2)(3)
Jf 3 5_sg_esp(2)(3)
 
Jf 3 7_sg_esp(2)(3)
Jf 3 7_sg_esp(2)(3)Jf 3 7_sg_esp(2)(3)
Jf 3 7_sg_esp(2)(3)
 
Jf 3 8_sg_esp(2)(3)
Jf 3 8_sg_esp(2)(3)Jf 3 8_sg_esp(2)(3)
Jf 3 8_sg_esp(2)(3)
 
Jf 3 10_sg_esp(2)(3)
Jf 3 10_sg_esp(2)(3)Jf 3 10_sg_esp(2)(3)
Jf 3 10_sg_esp(2)(3)
 
Practica 12
Practica 12Practica 12
Practica 12
 
Practica14
Practica14Practica14
Practica14
 
Practica13
Practica13Practica13
Practica13
 
Practica 11
Practica 11Practica 11
Practica 11
 

Último

LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxLA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxlclcarmen
 
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLAACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLAJAVIER SOLIS NOYOLA
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxFernando Solis
 
PROPUESTA COMERCIAL SENA ETAPA 2 ACTIVIDAD 3.pdf
PROPUESTA COMERCIAL SENA ETAPA 2 ACTIVIDAD 3.pdfPROPUESTA COMERCIAL SENA ETAPA 2 ACTIVIDAD 3.pdf
PROPUESTA COMERCIAL SENA ETAPA 2 ACTIVIDAD 3.pdfEduardoJosVargasCama1
 
Actividades para el 11 de Mayo día del himno.docx
Actividades para el 11 de Mayo día del himno.docxActividades para el 11 de Mayo día del himno.docx
Actividades para el 11 de Mayo día del himno.docxpaogar2178
 
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...jlorentemartos
 
Revista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdfRevista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdfapunteshistoriamarmo
 
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfFeliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfMercedes Gonzalez
 
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdfPlan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdfcarolinamartinezsev
 
FICHA PROYECTO COIL- GLOBAL CLASSROOM.docx.pdf
FICHA PROYECTO COIL- GLOBAL CLASSROOM.docx.pdfFICHA PROYECTO COIL- GLOBAL CLASSROOM.docx.pdf
FICHA PROYECTO COIL- GLOBAL CLASSROOM.docx.pdfRaulGomez822561
 
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...JoseMartinMalpartida1
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOluismii249
 
AEC 2. Aventura en el Antiguo Egipto.pptx
AEC 2. Aventura en el Antiguo Egipto.pptxAEC 2. Aventura en el Antiguo Egipto.pptx
AEC 2. Aventura en el Antiguo Egipto.pptxhenarfdez
 
activ4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdfactiv4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdfRosabel UA
 

Último (20)

Novena de Pentecostés con textos de san Juan Eudes
Novena de Pentecostés con textos de san Juan EudesNovena de Pentecostés con textos de san Juan Eudes
Novena de Pentecostés con textos de san Juan Eudes
 
Los dos testigos. Testifican de la Verdad
Los dos testigos. Testifican de la VerdadLos dos testigos. Testifican de la Verdad
Los dos testigos. Testifican de la Verdad
 
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxLA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
 
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLAACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
 
Supuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docxSupuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docx
 
PROPUESTA COMERCIAL SENA ETAPA 2 ACTIVIDAD 3.pdf
PROPUESTA COMERCIAL SENA ETAPA 2 ACTIVIDAD 3.pdfPROPUESTA COMERCIAL SENA ETAPA 2 ACTIVIDAD 3.pdf
PROPUESTA COMERCIAL SENA ETAPA 2 ACTIVIDAD 3.pdf
 
Actividades para el 11 de Mayo día del himno.docx
Actividades para el 11 de Mayo día del himno.docxActividades para el 11 de Mayo día del himno.docx
Actividades para el 11 de Mayo día del himno.docx
 
PP_Comunicacion en Salud: Objetivación de signos y síntomas
PP_Comunicacion en Salud: Objetivación de signos y síntomasPP_Comunicacion en Salud: Objetivación de signos y síntomas
PP_Comunicacion en Salud: Objetivación de signos y síntomas
 
Usos y desusos de la inteligencia artificial en revistas científicas
Usos y desusos de la inteligencia artificial en revistas científicasUsos y desusos de la inteligencia artificial en revistas científicas
Usos y desusos de la inteligencia artificial en revistas científicas
 
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
 
Revista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdfRevista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdf
 
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfFeliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
 
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdfPlan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
 
FICHA PROYECTO COIL- GLOBAL CLASSROOM.docx.pdf
FICHA PROYECTO COIL- GLOBAL CLASSROOM.docx.pdfFICHA PROYECTO COIL- GLOBAL CLASSROOM.docx.pdf
FICHA PROYECTO COIL- GLOBAL CLASSROOM.docx.pdf
 
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
 
Power Point E. S.: Los dos testigos.pptx
Power Point E. S.: Los dos testigos.pptxPower Point E. S.: Los dos testigos.pptx
Power Point E. S.: Los dos testigos.pptx
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
 
AEC 2. Aventura en el Antiguo Egipto.pptx
AEC 2. Aventura en el Antiguo Egipto.pptxAEC 2. Aventura en el Antiguo Egipto.pptx
AEC 2. Aventura en el Antiguo Egipto.pptx
 
activ4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdfactiv4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdf
 

Jf 3 6_sg_esp(3)

  • 1. Fecha de la versión: Agosto de 2015 Actualizaciones:
  • 2.
  • 3. 3
  • 4. La utilización de métodos nos permite utilizar las funciones que proporciona el equipo de desarrollo de Greenfoot. La definición de nuestros propios métodos nos permite expandir la funcionalidad de nuestros objetos. Los métodos definidos pueden utilizarse del mismo modo que los métodos heredados suministrados por Greenfoot. 4
  • 5. La definición de sus propios métodos no mejora el rendimiento del juego, pero puede aportar muchas otras ventajas como un código más legible y una agilización del tiempo de desarrollo. 5
  • 6. Si el nombre que se asigna a los métodos es significativo, se facilita la lectura del código. Tenga en cuenta que todos los métodos de las clases Greenfoot comienzan por minúscula y utilizan la mayúscula para diferenciar entre palabras, es decir, getRandomNumber(). 6
  • 7. La definición del método public void handleMovement podría haberse convertido en privada. Esto significaría que cualquier subclase de abeja no podrían tener acceso a la misma. Es void porque no devuelve un valor y solo realiza una función que consiste en controlar el movimiento de la abeja. 7
  • 8. No siempre resulta obvio el momento en el que debemos crear una subclase de nuestra subclase. La planificación del juego nos ayuda a detectar estos patrones desde el principio. 8
  • 9. isAtEdge es un método agregado recientemente a la funcionalidad de Actor. Esto se debía a la naturaleza común de los programadores que tenían que escribir sus propias rutinas para manejar esta incidencia común. 9
  • 10. Si una imagen gira 180 grados, girará exactamente la mitad de un giro completo, es decir, girará en el sentido opuesto. 10
  • 11. Si se utiliza lógica booleana, es habitual utilizar variables locales. Se trata de variables que la instancia del objeto no guarda y que se asocian al nivel de método. Por lo tanto, cuando el método finaliza, el valor de la variable local se pierde. Es importante nombrar a estas variables de la forma adecuada, ya que pueden facilitar en gran medida la lectura de las expresiones booleanas. 11
  • 12. El diagrama muestra que todas nuestras clases son subclases directas de Actor. 12
  • 13. La clase se define como Clase pública Araña que se extiende desde Actor Simplemente cambiándolo por Clase pública Araña se extiende desde Bug Podemos cambiar la superclase de la araña. Este método es eficaz, ya que permanecemos en la misma ruta de acceso de herencia. Si la hemos cambiado a World, si tuviésemos código en Spider, generaría errores puesto que los métodos utilizados no se heredarían de la clase World. 13
  • 14. Lo hemos hecho público porque queremos que las subclases utilicen este método. Es void porque no devuelve ningún valor. 14
  • 15. Tenga en cuenta que podemos llamar a un método de superclase (según su visibilidad/accesibilidad) si es público desde una subclase. 15
  • 16. getWorld() devuelve una referencia al mundo actual. getWorld().getWidth() devuelve el ancho del mundo actual. Podríamos haber utilizado aquí un valor como 800, pero si cambiásemos el ancho del mundo, la funcionalidad de este método se vería afectada. Llamar al método getWidth() del mundo produce una solución flexible. 16
  • 17. La clase World también tiene un método para devolver la altura: getHeight() 17
  • 18. Siempre es aconsejable utilizar los métodos getHeight() y getWidth() en lugar de escribir un valor. 18
  • 19. El método handleMovement() es nuestro propio método definido que hemos creado para controlar el movimiento desde Act en su propio método. public void handleMovement() { move(3); if (Greenfoot.isKeyDown("left")) { turn(-2); } if (Greenfoot.isKeyDown("right")) { turn(2); } } Le restamos 6 al ancho del mundo, por lo que no se detecta inmediatamente que otra vez estamos al borde. 19
  • 20. Nuestra abeja ahora debe alejarse volando hacia un borde de la pantalla y reaparecer en el borde opuesto. 20
  • 21. Recuerde cambiar la vista en el editor para mostrar la documentación, para ello cambiamos el cuadro desplegable en la parte superior de la ventana. 21
  • 22. A pesar de que definimos una colisión como el momento en el que dos actores entran en contacto, también podemos modificar nuestro código para poder detectar una colisión si dos actores se aproximan entre sí. Los últimos tres métodos anteriores getIntersectingObjects(), getNeighbours() y getObjectsAtOffset() devuelven una lista. A continuación, tendríamos que procesar la lista para saber lo que queremos. 22
  • 23. isTouching devuelve un valor booleano (true o false). Los otros dos métodos devuelven una referencia a un actor. 23
  • 24. El código de este método podría escribirse de varias formas. 24
  • 25. Si simplemente hubiésemos escrito isTouching(), devolvería true si tocásemos cualquier otro actor, incluya una instancia de otra abeja. 25
  • 26. Getoneintersectingobject devuelve una referencia a un actor. El tipo de actor en este ejemplo se limita únicamente a ser una instancia de la clase Fly. Si no se encuentra una colisión con una mosca, la mosca de la variable de referencia proporciona un valor nulo. A continuación, compruebe si la mosca ofrece un valor nulo y, de lo contrario, elimínela. 26
  • 27. Para ordenar el método Act anterior, debemos crear otro método definido para conseguir que alcancemos el borde del mundo. De este modo, el método act quedaría: Handlemovement(); Turnatedge(); Catchfly(); 27
  • 28. 28
  • 29. 29