当我的玩家在pygame中与敌人相撞时,如何让他们通过?

2024-06-01 07:35:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在测试一个平板游戏。我有一个玩家和一个敌人。然而,当我击中它,敌人就像一堵墙,玩家无法通过,即使我没有告诉程序。我还告诉程序在发生碰撞时打印(“Hit”),但什么也没发生。有人知道怎么解决这个问题吗?注意:我导入了一些文件,所以这些代码不在同一个文件中。你知道吗

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")

Tags: oftherectimageselfdatainitdef
1条回答
网友
1楼 · 发布于 2024-06-01 07:35:24

我想您可以使用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)

相关问题 更多 >