Aus Das deutschsprachige Scratch-Wiki

K
K (Link korrigiert)
 
Zeile 42: Zeile 42:
 
Manchmal möchte man, dass ein Objekt auf einen bestimmten Punkt ([[Koordinatensystem|x, y Koordinate]]) zeigt .
 
Manchmal möchte man, dass ein Objekt auf einen bestimmten Punkt ([[Koordinatensystem|x, y Koordinate]]) zeigt .
  
Dazu gibt es keinen eigenen Befehl, man kann sich aber einen [[Benutzerdefinierte blöcke|benutzerdefinierten Block]] basteln, der genau das macht. Mit einer [[Falls () dann, sonst (Block)|falls dann]]-Verzweigung schaut das so aus:
+
Dazu gibt es keinen eigenen Befehl, man kann sich aber einen [[Benutzerdefinierte Blöcke|benutzerdefinierten Block]] basteln, der genau das macht. Mit einer [[Falls () dann, sonst (Block)|falls dann]]-Verzweigung schaut das so aus:
  
 
<scratchblocks>
 
<scratchblocks>

Aktuelle Version vom 11. Mai 2021, 11:35 Uhr

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)>, dann
setze Richtung auf ([atan v] von (((x-Ziel)- (x-Position))/((y-Ziel) - (y-Position)))) Grad
sonst
setze Richtung auf ((180)+([atan v] von (((x-Ziel)- (x-Position)) / ((y-Ziel) - (y-Position))))) Grad
ende

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))))) Grad

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]

Kategorie:En-Link

Cookies helfen uns bei der Bereitstellung von Das deutschsprachige Scratch-Wiki. Durch die Nutzung von Das deutschsprachige Scratch-Wiki erklärst du dich damit einverstanden, dass wir Cookies speichern.