Я пытаюсь научиться использовать спрайты и прямоугольники в pygame, и я сделал простую программу, в которой игрок может стоять на платформе. Но когда он находится под платформой и прыгает, он проходит через платформу, а когда он начинает go обратно вниз, он внезапно перемещается к вершине платформы, которой коснулся. Я хочу сделать так, чтобы игрок, прыгая ниже платформы, сталкивался с ней, а не go через.
Вот код в классе игры, который заставляет игрока сталкиваться с платформой
def update(self):
self.all_sprites.update()
hits = pg.sprite.spritecollide(self.player, self.platforms, False)
if self.player.vel.y > 0:
if hits:
self.player.pos.y = hits[0].rect.top + 0.5 #le joueur se retrouve sur l'objet percuté
self.player.vel.y = 0
Вот код в классе игрока, который заставляет его прыгать
def jump(self):
self.rect.y += 1
hits = pg.sprite.spritecollide(self, self.game.platforms, False)
self.rect.y -= 1
if hits:
self.vel.y = -10