360°-Drehung in 2 Richtungen

Latis

Grünschnabel
Ich bin noch ein ziemlicher Anfänger in Flash. Ich habe in der Schule einige Grundlagen von Flash erlernt und habe begonnen ein kleines Spielchen zu programmieren in ActionScript 2.0.

Doch nun stehe ich gleich zu Beginn vor einem Problem. Ich möchte, dass sich mein Objekt, wenn ich RIGHT drücke, nach rechts dreht und, wenn ich LEFT drücke, nach links dreht - und das ganze nicht mit 'irgendetwas._rotation += 20;' machen, da das später Probleme hervorrufen würde.
Somit habe ich mir eine andere Methode gesucht und sie eingebaut und es dreht sich auch schön nach links oder rechts, nur leider rückt es beim Wechseln von einer Drehung nach rechts zu einer Drehung nach links immer ein Stückchen in die Mitte und ich verstehe nicht wirklich wieso.

Hier ist der Code:
PHP:
this.onEnterFrame=function()
{	
	
	if(Key.isDown(Key.RIGHT))
	{ 	speed = 30
		ship._rotation += 8
		ship._x += speed * Math.cos(ship._rotation * (Math.PI / 180)); 
    	ship._y += speed * Math.sin(ship._rotation * (Math.PI / 180));
	}
	
	if(Key.isDown(Key.LEFT))
	{ 	speed = -30
		ship._rotation -= 8
		ship._x += speed * Math.cos(ship._rotation * (Math.PI / 180)); 
    	ship._y += speed * Math.sin(ship._rotation * (Math.PI / 180));
	}
}

Ich hoffe ihr könnt mir helfen.

Ich hänge hier auch am besten einfach einmal die .fla-Datei meines Spiels an: Anhang anzeigen 360-weltraumspiel.fla
 
Zuletzt bearbeitet:
Hey,
das wird an der Mathematik liegen. Du hast ja keinen starr definierten Kreis, an dem das Ganze entlangläuft, sondern definierst diesen anhand der bisherigen Position des Schiffs. Ich kann mir vorstellen, dass es da Rundungsfehler usw gibt.

Ich würde dir raten einen festen Mittelpunkt zu definieren und dann um den herum zu rotieren. Der muss nicht absolut fest sein, kann ja auch mal geändert werden. Entsprechende Formeln gibts in der Schulmathematik, die hab ich alle wieder vergessen :)

Gruß
jens
 

Neue Beiträge

Zurück