Objekt bei jedem Tastendruck fortbewegen in PyGame

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
cypher28
User
Beiträge: 24
Registriert: Mittwoch 8. Dezember 2021, 00:54

__deets__ hat geschrieben: Donnerstag 16. Dezember 2021, 20:21 Ich geb auf. Wir reden offensichtlich komplett aneinander vorbei. Ich kann nur zum x-ten mal sagen, dass du nichts an der positions-Berechnung verändern musst, aber es greift offensichtlich nicht. Vielleicht hat wer anders eine Idee.
Ok, vielen dank für deine Hilfe und sorry wenn ich deine Zeit in Anspruch genommen habe.
Benutzeravatar
__blackjack__
User
Beiträge: 14005
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@cypher28: Du behauptest „Die methode "move_ip()" ist nicht anwendbar.“ — doch ist sie. Warum sollte sie das nicht? Die ist weiterhin auf das `Rect`-Objekt anwendbar. Warum sollte das abhängig davon sein, dass Du jetzt an einen anderen Namen ein Bild gebunden hast? Und das `Rect` bestimmt die Position. Und das Bild das aussehen. Am Bild kannst Du keine Position ändern, weil Bilder keine Position haben. Dafür ist ja das `Rect` da.
“The best book on programming for the layman is »Alice in Wonderland«; but that's because it's the best book on anything for the layman.” — Alan J. Perlis
cypher28
User
Beiträge: 24
Registriert: Mittwoch 8. Dezember 2021, 00:54

@__blackjack__
ich verstehe was du meinst. Das rect steht als Platzhalter für mein Gameobjekt. Und wenn ich mein rect bewege, bewegt sich mein Objekt mit. Bitte korrigiere mich, wenn ich es trotzdem falsch verstanden habe.
Nur wie bringe ich mein rect und das Bild von meinem Gameobjekt in Verbindung, so dass mein Gameobjekt abhängig von der Koordinate vom rect ist.

Bin mir ziemlich sicher das der Fehler auch im Aufbau der draw()-Methode liegt.

Code: Alles auswählen

def draw(screen, background, player_image, position):
    screen.blit(background, (0, 0))
    pygame.draw.rect(???????????????)
    screen.blit(player_image, position)
    pygame.display.update()
Benutzeravatar
__blackjack__
User
Beiträge: 14005
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@cypher28: Der Fehler ist die Zeile mit den Fragezeichen. Du willst doch gar kein Rechteck mehr zeichnen. Und `position` ist hoffentlich das `Rect`-Objekt. Falls nicht: das ist das `Rect`-Objekt. Übergib das da. Das beschreibt die Position die Du für das Bild brauchst. Und ansonsten, und das hatte __deets__ ja bereits geschrieben, ändert sich gegenüber der Version mit dem gezeichneten Rechteck genau gar nichts.
“The best book on programming for the layman is »Alice in Wonderland«; but that's because it's the best book on anything for the layman.” — Alan J. Perlis
cypher28
User
Beiträge: 24
Registriert: Mittwoch 8. Dezember 2021, 00:54

__blackjack__ hat geschrieben: Donnerstag 16. Dezember 2021, 22:50 @cypher28: Und `position` ist hoffentlich das `Rect`-Objekt. Falls nicht: das ist das `Rect`-Objekt. Übergib das da.
Ahhhh, ok. Es lag daran das ich bei 'Position' das Bild zugeordnet habe und nicht das 'rect'.
Jetzt klappt es. Vielen dank für die Geduld. :D
Antworten