Ich mache ein Spiel und ich möchte die Kollision zwischen Spieler und Block überprüfen, und Spieler zurückdrängen, wenn nötig.Pygame Kollision zwischen Spieler und Block
def collide(self,player):
if self.solid:
if self.rect.colliderect(player.rect):
if self.rect.bottom-1 <= player.rect.top and player.pos == 'up':
player.up = 0
player.rect.move(0,1)
if self.rect.top+1 >= player.rect.bottom and player.pos == 'down':
player.down = 0
player.rect.move_ip(0,-1)
if self.rect.left+1 <= player.rect.right and player.pos == 'right':
player.right = 0
player.rect.move_ip(-1,0)
if self.rect.right-1 >= player.rect.left and player.pos == 'left':
player.left = 0
player.rect.move_ip(1,0)
aber aus irgendeinem Grund funktioniert es nicht. Kann mir jemand helfen? Vielen Dank im Voraus
Ist das eine Klassenmethode und Sie haben das 'self' an die falsche Stelle gesetzt, oder haben Sie einfach das zweite Argument' self' genannt? Methoden sind normalerweise Kleinbuchstaben in Python, BTW. –
Danke, ich habe es behoben. Ja, das ist Klassenmethode. – n3gative