Ich möchte einige Sprites für mein Pygame über das Display bewegen. Es ist eine bestimmte Route und ich möchte sie mit Vektoren verschieben. So bekam ich die Positionen meiner Route und so bekam ich die Größe und die Überschrift. Sie können die Formeln sehen und wie ich die Art der Spritzer ändern möchte (mit "wenn"). Ich lege die Vektoren in Tupel und ich denke das ist nicht korrekt. Ich erhalte einen FehlerSprites verschieben nach Vektoren
TypeError: can't multiply sequence by non-int of type 'float' line 51
Ich denke, das ist die Art, wie ich die Tupel mutliply. Aber ich hoffe, dass Sie dahinter meine Idee und Sie können mir helfen,
clock = pygame.time.Clock()
speed = 25.
position = (30.0,50.0)
magnitude = [509, 141, 128, 409, 293, 330, 251, 532]
heading = [(0.7,0.73),(0.71,0.71),(0.78,0.63),(-0.52,0.65),(0.97,0.24),(0.58,-0.82),(-0.88,-0.48),(0.08,-0.99)]
while True:
for event in pygame.event.get():
if event.type == QUIT:
exit()
screen.blit(background, (0.0,0.0))
screen.blit(x1, position)
screen.blit(x2, (300,30))
screen.blit(x3, (500,30))
screen.blit(x4,(800,30))
time_passed = clock.tick()
time_passed_seconds = time_passed/1000.0
route = time_passed_seconds * speed
position += heading[0] * route
if route >= magnitude[0]:
route = 0
route1 = time_passed_seconds * speed
position += heading[1] * route1
if route1 >= magnitude[1]:
route2 = time_passed_seconds * speed
position += heading[2] *route2
if route2 >= magnitude[2]:
route3 = time_passed_seconds * speed
position += heading[3] * route3
if route3 >= magnitude[3]:
route4 = time_passed_seconds * speed
position += heading[4] * route4
Vielen Dank für Ihre Antwort. Es funktionierte. Jetzt möchte ich den Kurs während der Bewegung ändern. Deshalb möchte ich if-Klauseln sagen, dass wenn route == Betrag [0]:/n Position + = Überschrift [1] * Geschwindigkeit – Skorab
Die if-Klausel, die Sie in Ihrem Beispiel-Code haben, sollte ohne Änderungen funktionieren, also tat ich nicht schließe es in meine Antwort ein. Hast du es versucht? Sind Sie auf Fehler gestoßen? – Isa
Nein, es ändert nicht die Richtung. Vielleicht, weil die Größenordnung nicht genau die berechnete Route ist? – Skorab