2013-03-03 6 views
5

Ich programmiere ein einfaches Spiel für die Ausbildung in MIT Scratch und möchte ein Sprite zu einem anderen Sprite machen (denken Sie an ein Alien-Schiff nach unserem Heldenschiff). Ich kann leicht das fremde Schiff Punkt auf den Helden machen:Wie finde ich die Richtung eines anderen Sprites in Scratch

point towards 'hero' 

Aber was ich wirklich tun wollen etwas gradueller ist wie folgt:

if alien direction (in degrees) > direction of hero: turn -2 degrees 
if alien direction (in degrees) < direction of hero: turn 2 degrees 

So wie ich feststellen, ‚Richtung Held'?

Antwort

6

Leider scheint es keine eingebaute Möglichkeit zu geben, dies zu erreichen, daher ist eine gewisse Trigonometrie erforderlich. Für die Berechnung der Richtung von Sprite 1 bis Sprite 2 Sie die Verschiebung von 1 bis 2 in x und y berechnen kann, dann verwenden Sie die atan Funktion den gewünschten Winkel zu finden:

Script to calculate angle to another sprite

Da Sie tatsächlich die gewünschte Richtung relativ zu dem fremden Schiff zugewandt ist, könnte es besser auf die Richtung sein, das Vektorprodukt (aka Kreuzprodukt) zu verwenden:

hier

enter image description here

die Screenshots von this Scratch project genommen werden.

4

Verwendung Punkt in Richtung als Weg, um herauszufinden:

set temp to direction 
point towards hero 
if temp > direction 
    set direction to temp-2 
else if temp < direction 
    set direction to temp-2 
else 
    set direction to temp