4 Stimmen

Pygame-Sprite auf elliptischem Pfad animieren

Dies ist pygame 1.9 auf python 2.6.

Hier ist ein Bildschirmfoto von dem, was derzeit in meinem "Spiel" gezeichnet wird, um einen gewissen Kontext zu schaffen. Ici ist der Code.

Es soll der Mond sein, der die Erde umkreist (ich versuche nicht, eine echte Simulation oder so zu machen, ich benutze die Einstellung nur, um herumzuspielen und Pygame zu lernen). Es sind 2 Kreise und die elliptische Umlaufbahn des Mondes um die Erde. Mein Ziel ist es, dass der Mond seiner Umlaufbahn um die Erde folgt, aber ich möchte später die Form der Mondumlaufbahn mit der Tastatur einstellen.

Ich brauche wirklich nur Hilfe, um herauszufinden, wie ich den Mond dazu bringe, dem Pfad zu folgen, den Rest kann ich wahrscheinlich selbst herausfinden.

5voto

Claudiu Punkte 215027

So erzeugen Sie Punkte entlang einer Ellipse:

for degree in range(360):
    x = cos(degree * 2 * pi / 360) * radius * xToYratio
    y = sin(degree * 2 * pi / 360) * radius

(x,y) folgt einer Ellipse mit dem Mittelpunkt (0,0) , wobei der y-Radius radius und der x-Radius ist xToYratio . In Ihrem Fall wollen Sie wahrscheinlich degree irgendwie mit dem Vergehen der Zeit zusammenhängen.

EDIT: Sie können auch dies tun:

for degree in range(360):
    x = cos(degree * 2 * pi / 360) * xRadius
    y = sin(degree * 2 * pi / 360) * yRadius

wobei xRadius ist die Hälfte der Breite Ihres Rects, und yRadius ist die Hälfte der Höhe Ihres Rechtecks. Stellen Sie sich das intuitiv vor: Sie haben einen Kreis, den Sie strecken (d. h. skalieren, d. h. multiplizieren), damit er horizontal und vertikal so groß wie das Rechteck ist.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X