Aus Das deutschsprachige Scratch-Wiki

drehe dich zu [ v]
drehe dich zu [ v]
Kategorie: Bewegung
Typ: Stapelblock
Eingeführt in: Scratch 1.0
Eingaben: Eingabeliste
Plugin-Code (Wiki): drehe dich zu [ v]

Der Block drehe dich zu () ist ein Bewegungs-Block und ein Stapel-Block. Dieser Block bewirkt, dass das aufrufende Objekt seine Richtung so setzt, dass es auf das angegebene Objekt zeigt. Zeigen auf den Mauszeiger ist auch möglich.

drehe dich zu [Objekt v]
drehe dich zu [Mauszeiger v]

Anwendungsbeispiele

  • beständiges Zeigen einer Figur auf den Mauszeiger
wiederhole fortlaufend
drehe dich zu [Mauszeiger v]
gehe (10)er-Schritt
end
  • einer Figur zeigen, wohin sie sich bewegen soll
drehe dich zu [Objekt v]
wiederhole bis <wird [Objekt v] berührt?>
gehe (5)er-Schritt
end
  • Hinweis auf das Ziel in einem Projekt
Wenn ich [Hinweis v] empfange
drehe dich zu [Schatz v]

Zeigen auf einen Punkt

Manchmal möchte man, dass ein Objekt auf einen bestimmten Punkt (x, y Koordinate) zeigt .

Dazu gibt es keinen eigenen Befehl, man kann sich aber einen benutzerdefinierten Block basteln, der genau das macht. Mit einer falls dann-Verzweigung schaut das so aus:

Definiere drehe dich zu x: (x-Ziel) y: (y-Ziel)
falls <(y-Ziel) > (y-Position)>
setze Richtung auf ([atan v] von (((x-Ziel)- (x-Position))/((y-Ziel) - (y-Position))))
sonst
setze Richtung auf ((180)+([atan v] von (((x-Ziel)- (x-Position)) / ((y-Ziel) - (y-Position)))))

Um das Skript kompakter zu machen kann man mit dem Ergebnis der Bedingung rechnen und den falls dann sonst-Block einsparen. Das Skript dazu ist dann nur eine Zeile lang:

Definiere drehe dich zu x: (x-Ziel) y: (y-Ziel)
setze Richtung auf (((180) * <nicht<(y-Position) < (y-Ziel)>>) + ([atan v] von (((x-Position) - (x-Ziel)) / ((y-Position) - (y-Ziel)))))

Eine andere Möglichkeit ist es ein weiteres Objekt zu erstellen, dieses auf die Zielposition zu setzen und dann den zeige auf-Block zu verwenden. Von dieser Lösung wird aber abgeraten, da sie deutlich langsamer als die oben genannten Vorschläge ist und eine eigene Figur zum Zielen braucht.


Code zum Einbinden ins Forum:
[wiki=de:Drehe dich zu () (Block)]Drehe dich zu () (Block)[/wiki]