Seguir a otro objeto

En esta página, modificarás el programa para que el personaje no se mueva siempre, solo hasta que se toquen.

  1. Cambia el código de Seguidor para que apunte hacia Líder solo hasta que toque Líder. (Las siguientes instrucciones muestran cómo hacerlo).
    1. Selecciona a Seguidor haciendo clic en su botón debajo del escenario.
    2. Reemplaza el bloque por siempre con un bloque repetir hasta que.
    3. Arrastra ¿tocando ()? al espacio hexagonal del bloque repetir hasta que. Configúralo para que se repita hasta que esté tocando a Líder.
  2. Haz lo mismo con el Líder. Cambia tu código para seguir el puntero de tu ratón solo hasta que esté tocando a Seguidor.
  3. Prueba tu programa para ver si hace lo que quieres:
    • Al hacer clic en botón de bandera verde, el Líder (el gris) debe seguir el puntero de tu ratón y el Seguidor debe seguir girando para mirar al Líder.
    • Si acercas a Líder lo suficiente como para tocar a Seguidor, ambos personajes deberían dejar de moverse.
  4. Hasta ahora, el Seguidor apunta hacia el Líder, pero no se mueve hacia él.
    1. Agrega una línea de código a la secuencia de comandos de Seguidor para que persiga a Líder. Aquí está la idea:
      Rellena el espacio de entrada en el bloque mover con un número pequeño para que el Seguidor no atrape al Líder demasiado rápido.
      cuando se pulse bandera verde:
repetir hasta (tocando (Líder)?)
{
    apuntar hacia (Líder)
    mover () pasos ← Comentario: Escribe un número bajo en este espacio vacío.
}
    2. ¿Qué sucede si los personajes ya se están tocando? Es decir, ¿qué sucede si arrastras un personaje encima del otro y luego haces clic en la bandera verde? ¿Por qué?
      AAP-2.K.5
    3. ¿Qué sucede si la entrada para mover es 0?
      AAP-2.K.4

    Cuando un programa sigue haciendo lo mismo y nunca se detiene, se llama bucle infinito (infinite loop).

AAP-2.K.3
El lenguaje utilizado en el examen AP no permite espacios en los nombres de las entradas (como número de peces) o en los procedimientos definidos por el programador (como ratón y, que no está integrado en su idioma). Así que este ejemplo los traduce a
numPeces
y
ratónY()
.
El motivo de incluir
()
o un cuadro después de
ratónY
se debe a que
ratónY()
es una llamada de procedimiento a pesar de que no toma ninguna entrada.

El guion
repetir hasta que (ratón y < 0) {decir (número de peces)}
se escribiría como

REPEAT UNTIL (ratónY() < 0)
{
    DISPLAY(numPeces)
}
o un rectángulo gris con bordes redondeados que contiene todo lo siguiente: en la primera línea, primero las palabras 'REPEAT UNTIL' en mayúsculas y después un rectángulo más pequeño que contiene 'MouseY () < 0' y en la segunda lína un rectángulo blanco con bordes redondeados que contiene en la primera línea la palabra 'DISPLAY' en mayúsculas y luego un rectángulo blanco más pequeño que contiene 'numFish'

Recuerda, no necesitas aprender a escribir el idioma inventado que se usa en el examen AP. Solo tienes que ser capaz de leer y responder preguntas al respecto.

  1. Prueba tu programa varias veces. Intercambio de parejas de programación
  2. En este momento, cuando los personajes se encuentran, simplemente se detienen. Haz que tengan una conversación cuando se detengan. Puedes hacerlo agregando un código como este a la secuencia de comandos del Líder. Inventa tu propia conversación. Puedes utilizar cualquier idioma en el que sepas escribir.

    El Líder hace las cosas por sí mismo. También le dice al Seguidor qué hacer y cuándo hacerlo. Este código pone al Líder a cargo de Seguidor.
    CRD-2.B.2, AAP-2.B.2, AAP-2.B.6

    Un segmento de código (code segment) es una secuencia de instrucciones conectadas que llevan a cabo una acción determinada, como la que se muestra a la izquierda, que anima una conversación. Las instrucciones en el segmento de código se llevan a cabo en orden, de arriba a abajo.

    Diálogo simple sobre ir a comer
Para evitar que los dos personajes se queden pegados uno al otro sin poder moverse, los personajes necesitarán un poco de espacio entre ellos y algo de tiempo antes de que comience la persecución. Añadir bloques como estos puede ayudar.
ir a x:(-200) y:(-50); esperar (1) segs ir a x:(200) y:(-50); esperar (1) segs
Guarda tu trabajo
  1. Pon disfraces a los personajes.
    Puedes utilizar una imagen de Internet arrastrándola a la ventana Snap!.
  2. Cambia el fondo del escenario.
    Hay instrucciones en la sección 'Si hay tiempo...'' en Unidad 1 Laboratorio 2 Página 3: Personalizar y depurar errores (debugging).