From Test-Scratch-Wiki

Apuntar hacia ()
apuntar hacia ( v)
Categoría Movimiento
Forma Apilable


El bloque apuntar hacia () es un bloque de movimiento y un bloque apilable que apunta a su objeto hacia el puntero del ratón o el centro del disfraz de otro objeto.

Usos de ejemplo

Al contrario del bloque apuntar en dirección (), que no apunta objetos hacia otros objetos, el bloque apuntar hacia () puede apuntar objetos hacia otros objetos o el puntero del ratón.

Algunos usos comunes para el bloque apuntar hacia ():

  • Hacer que un objeto apunte constantemente hacia el ratón
al presionar bandera verde
por siempre
    apuntar hacia (puntero del ratón v)
    mover (10) pasos
end
  • Guiar a un objeto hacia dónde moverse
apuntar hacia (Sprite2 v)
repetir hasta que <¿tocando (Sprite2 v)?>
    mover (5) pasos
end
  • Apuntar hacia un objetivo en el proyecto
al recibir [pista v]
apuntar hacia (Tesoro v)

Código alternativo

El bloque puede ser replicado mediante los siguientes códigos, que usan trigonometría:

dar a [delta_x v] el valor (([posición en x v] de (Sprite1 v)) - (posición en x))
dar a [delta_y v] el valor (([posición en y v] de (Sprite1 v)) - (posición en y))
si <(delta_y) = (0)> entonces
    si <(delta_x) = (0)> entonces
        apuntar en dirección (-90)
    si no
        apuntar en dirección (90)
    end
si no
    si <(delta_y) < (0)> entonces
        apuntar en dirección ((180) + ([arctan v] de ((delta_x) / (delta_y))))
    si no
        apuntar en dirección ([arctan v] de ((delta_x) / (delta_y)))
    end
end
apuntar en dirección (([arctan v] de ((([posición en x v] de (Sprite1 v)) - (posición en x)) / (([posición en y v] de (Sprite1 v)) - (posición en y)))) + ((180) * <([posición en y v] de (Sprite1 v)) < (posición en y)>))

Sin embargo, esto requiere más código y reduce la facilidad de lectura.

Sugerencia relacionada

Un bloque relacionado para apuntar a un objeto hacia una cordenada específica ha sido pedido varias veces por los usuarios:[1] apuntar hacia x: (0) y: (0)::motion

Esto puede hacerse también posicionando un objeto en esa posición, y usando este bloque para apuntar hacia ese objeto, o mediante el siguiente código alternativo:

apuntar hacia x: () y: ()::custom

definir apuntar hacia x: (x) y: (y)
dar a [delta_x v] el valor ((x) - (posición en x))
dar a [delta_y v] el valor ((y) - (posición en y))
si <(delta_y) = [0]> entonces
si <(delta_x) < [0]> entonces
apuntar en dirección (-90)
si no
apuntar en dirección (90)
end
si no
si <(delta_y) < [0]> entonces
apuntar en dirección ((180) + ([arctan v] de ((delta_x) / (delta_y))))
si no
apuntar en dirección ([arctan v] de ((delta_x) / (delta_y)))
end
end

Una copia de este código puede ser obtenida aquí.

Véase también

Referencias