Heim >Backend-Entwicklung >Python-Tutorial >Warum gibt meine Pygame-Kollisionserkennung immer „True' zurück und warum ist meine Bildposition immer (0, 0)?
Problem bei der Kollisionserkennung: Gibt immer „True“ zurück
Eines der Der häufigste Grund, warum eine Kollisionserkennungsfunktion „True“ zurückgibt, obwohl dies nicht der Fall sein sollte, ist die Verwendung falscher Koordinateninformationen. In Ihrem Code haben die Sprites „Ball“ und „Hindernis“ zusätzliche x- und y-Attribute, aber die Methode get_rect() des Oberflächenobjekts aktualisiert seine Position nicht automatisch basierend auf diesen Attributen.
Lösung:
Um dieses Problem zu beheben, sollten Sie die Position des Rechtecks manuell festlegen, indem Sie beim Aufruf das Schlüsselwortargument oben links verwenden get_rect():
self.rect = self.image.get_rect(topleft=(self.x, self.y))
Bildpositionierungsproblem: Gibt immer (0, 0) zurück
Standardmäßig sind die Koordinaten des Oberflächenobjekts immer auf ( 0, 0), unabhängig davon, wo es auf dem Bildschirm angezeigt wird. Wenn Sie das Bild auf die Spielanzeige übertragen, müssen Sie die korrekten Koordinaten angeben, an denen es gezeichnet werden soll.
Lösung:
Sie können einfach die Koordinaten verwenden Wird beim Blitten des Bildes im Rect-Attribut gespeichert:
gameDisplay.blit(self.image, self.rect)
Zusätzlich Tipps:
Das obige ist der detaillierte Inhalt vonWarum gibt meine Pygame-Kollisionserkennung immer „True' zurück und warum ist meine Bildposition immer (0, 0)?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!