было просто интересно, сможет ли кто-нибудь помочь мне заставить стену моего персонажа прыгнуть внутри этой игры, которую я создаю с помощью Pygame. До сих пор я пробовал несколько функций столкновения, но ничего не работает, мне нужно, чтобы персонаж прыгал, находясь на земле или сбоку от платформы или стены. Любая помощь приветствуется, и вот код:
def jump(self):
""" Called when user hits 'jump' button. """
# move down a bit and see if there is a platform below us.
# Move down 2 pixels because it doesn't work well if we only move down 1
# when working with a platform moving down.
self.rect.y += 2
platform_hit_list = pygame.sprite.spritecollide(self, self.level.platform_list, False)
for block in platform_hit_list:
if pygame.sprite.collide_rect(self,block) or pygame.sprite.collide_rect(block,self):
self.change_y = -8.5
print("I am reading this!")
self.rect.y -= 2
# If it is ok to jump, set our speed upwards
if len(platform_hit_list) > 0 or self.rect.bottom >= constants.SCREEN_HEIGHT:
self.change_y = -8.5
Для оператора if я испробовал следующие условия:
if pygame.sprite.collide_rect(self.rect,block.rect) or
pygame.sprite.collide_rect(self.rect,block.rect)
и
if pygame.sprite.collide_rect(self.rect.right,block.rect.left) or
pygame.sprite.collide_rect(self.rect.right,block.rect.left)