kanone._rotation = Math.sin(alpha/6)*90; hä ?

NetPerformance

Erfahrenes Mitglied
Hallo

http://www.netperformance.de/save/kanone.swf

Ich verstehe nicht, warum meine Linie (Kanone) zurück schwenkt !
Durch trace(alpha) sehe ich, das die Linie bei (alpha = 10) zurück schwenkt.
Habe eigentlich erwartet, das sich die Linie iom Kreis dreht !

PHP:
alpha = 0 

this.onEnterFrame = 
function() 
{ 
    trace(alpha); 

    alpha++; 
    // Höhe (GK) = sin a * Hypotenuse 
    kanone._rotation = Math.sin(alpha/6)*90; 
}

Bedanke mich im voraus
Aaron
 
das ist das alte 180° Problem.

Sag der Kanone mal, dass sie, wenn sie über 180° kommt, bei -180° weitermachen soll ;-)
 
dumme Frage - wo berechnest du die x Koordinate (wenn y die Höhe ist)? Die bestimmt nämlich ob die Kanone nach links oder nach rechts zeigt. Die Berechnung sollte dann mit dem cos geschehen.
 
Hi,

schau z.B. mal in diesen Thread - da wird ein ähnliches Problem angesprochen.

Gruß

P.S.: Noch was, grade erst gesehen:
kanone._rotation = Math.sin(alpha/6)*90;
Die Sinusfunktion ist zyklisch, daher kann der Ausdruck nur zwischen -90 und +90 Grad schwanken -> lass Dir das Ganze (sin(alpha/6)*90) mal in einem Texffeld ausgeben, dann wirst Du das feststellen. ;)
 
Zuletzt bearbeitet:
Also mit X und Y Koordinaten hat das ganze nix zu tun da du die _rotation-Eigenschaft benutzt.

Wenn du möchtest dass sich die Kanone immer in die gleiche Richtung dreht musst du die Sinus Funktion aus deiner Berechnung streichen da sie immer wieder ihr Vorzeichen ändert.

Wenn du möchtest dass die Kanone nach einer Umdrehung die Drehrichtung ändert und zurückschewenkt musst du nur die *90 durch *180 ersetzen.


Das wären die einfachsten Lösungen

sancho

edit// mist Datic war schneller ;)
 
Zurück