如何删除图像,然后再次blit它?

2024-06-01 01:39:34 发布

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

我正在用pygame创建一个游戏,我遇到了一个问题。我的游戏是一个太空游戏:有流星向你飞来,你必须躲避它们,你也可以向它们发射导弹。当飞弹击中流星时,我想让飞弹消失,让流星回到它开始下落的地方。我看到一行代码演示了如何通过执行以下操作使图像透明:

transparant = (0,0,0,0)
#Code in between
missle.image = missleImg
#I wrote some code to see if the missle was touching a meteor
missle.image.fill(transparent)

然而,当我再次尝试发射导弹时,它仍然是透明的。有没有人有更好的方法来解除和重新照亮图像


Tags: 代码in图像image游戏地方code太空
1条回答
网友
1楼 · 发布于 2024-06-01 01:39:34

使用列表或组来组织对象。为流星创建一个列表或组,为导弹创建另一个列表或组。当导弹击中流星时,从容器中取出物体。在需要时创建新对象:

如果流星立即出现在不同的位置,则只需更改流星的“位置”属性即可,而无需破坏一个对象并创建一个新对象

例如^{}^{}

meteor_group = pygame.sprite.Group():
missile_group = pygame.sprite.Group():
pygame.sprite.groupcollide(meteor_group, missile_group, True, True)

例如,清单:

meteor_list = []:
missile_list = []:
for meteor in meteor_list[:]:
    for missile in missile_list[:]:

        collide = # [...] check for collision 
        if collide:
            meteor_list.remove(meteor) 
            missile_list.remove(missile) 

相关问题 更多 >