Как мне заставить моего игрока пройти сквозь врага, когда они сталкиваются в pygame?

Я тестирую платформер. У меня есть игрок и враг. Однако, когда я попадаю в него, враг действует как стена, через которую игрок не может пройти, даже если я не сказал об этом программе. Я также сказал программе печатать («Попадание») при столкновении, но ничего не происходит. Кто-нибудь знает, как это исправить? ПРИМЕЧАНИЕ. Я импортировал файлы, поэтому не весь этот код находится в одном файле.

SLIME_WALK = (52, 125, 50, 28)


class Mob(pygame.sprite.Sprite):
    def __init__(self, sprite_sheet_data):
    """ Mob constructor. Assumes constructed with user passing in
        an array of 5 numbers like what's defined at the top of this
        code. """

        # Call the parent's constructor
        super().__init__()

        sprite_sheet = SpriteSheet('enemies_spritesheet.png')
        # Grab the image for this platform
        self.image = sprite_sheet.get_image(sprite_sheet_data[0],
                                        sprite_sheet_data[1],
                                        sprite_sheet_data[2],
                                        sprite_sheet_data[3])

        self.rect = self.image.get_rect()


class Level01(Level):
     def __init__(self, player):

        # Call the parent constructor
        Level.__init__(self, player)
        # Array with type of mob, and x, y location of the mob
        level_enemies = [[mobs.SLIME_WALK, 500, 300]]

        # Go through the array above and add mobs
        for mob in level_enemies:
            enemy = mobs.Mob(mob[0])
            enemy.rect.x = mob[1]
            enemy.rect.y = mob[2]
            enemy.player = self.player
            self.platform_list.add(enemy)


class Player(pygame.sprite.Sprite):


    # -- Methods
    def __init__(self):
        """ Constructor function """

        # Call the parent's constructor
        super().__init__()

    def update(self):
        # See if we hit anything
        mob_hit_list = pygame.sprite.spritecollide(self, 
        self.level.enemy_list, False)
        if mob_hit_list:
            print("Hit")

person Blazian444    schedule 04.08.2019    source источник
comment
История редактирования вашего вопроса отображается как 3 совершенно разных вопроса. Если ваш вопрос существенно изменился, задайте новый. Сначала я отклонил единственный ответ на ваш вопрос, потому что он даже не был связан с вашим вопросом ... Затем я увидел вашу сумасшедшую историю редактирования.   -  person SyntaxVoid supports Monica    schedule 08.08.2019
comment
Извините, я задал новый вопрос. Не могли бы вы это проверить?   -  person Blazian444    schedule 08.08.2019


Ответы (1)


Думаю, для этого можно использовать пакет webbrowser

import webbrowser

a_website = "https://www.google.com"

# Open url in a new window of the default browser, if possible
webbrowser.open_new(a_website)

# Open url in a new page (“tab”) of the default browser, if possible
webbrowser.open_new_tab(a_website)

webbrowser.open(a_website, 1) # Equivalent to: webbrowser.open_new(a_website)
webbrowser.open(a_website, 2) # Equivalent to: webbrowser.open_new_tab(a_website)
person Blarn    schedule 04.08.2019