首页 > 解决方案 > Pygame Platformer - 随机生成敌人

问题描述

我目前在尝试将敌人随机生成到我的平台游戏中时遇到问题。class Enemy(pygame.sprite.Sprite):我有一个具有__init__move(self)功能的敌人类。目前我有每个单独定义的敌人实例:

 enemy1 = Enemy(210,515,"Enemy.png")
 enemy2 = Enemy(705,515,"Enemy.png")
 enemy3 = Enemy(1505,515,"Enemy.png")

在主游戏循环中,我将每个实例附加到一个组中:

enemy_list = pygame.sprite.Group()
        enemy_list.add(enemy1)
        enemy_list.add(enemy2)
        enemy_list.add(enemy3)

但是我宁愿敌人在随机位置随机产生,所以我想我可以做这样的检查:

if random.randrange(0,100) < 1:
                spawnEnemy = Enemy(400, 515, "Enemy.png")

我的问题是我现在不知道如何将随机 eney 附加到enemy_list。有任何想法吗?

标签: pythonrandompygamespawning

解决方案


如果我正确,则将坐标传递class Enemy(pygame.sprite.Sprite):给实例化

在这种情况下,随机定位可以通过以下方式完成:

enemy4 = Enemy(random.randrange(100,1000),random.randrange(100,1000),"Enemy.png")
enemy_list.add(enemy4)

如果您无法对敌人标识符进行硬编码,请尝试直接添加到敌人组列表而不进行分配:

enemy_list.add(Enemy(random.randrange(100,1000),random.randrange(100,1000),"Enemy.png"))

推荐阅读