微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

我正在使用 pygame 创建游戏,但遇到了问题。我的游戏是太空游戏:有流星向你袭来,你必须躲避它们,还可以向它们发射导弹。当导弹击中流星时,我想让导弹消失并使流星重新回到它开始坠落的地方。我看到了一行代码,展示了如何通过这样做使图像透明:

transparant = (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)

然而,当我再次尝试射击导弹时,它仍然是透明的。有没有人有更好的方法来取消和重新设置图像?

解决方法

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

如果流星立即出现在不同的位置,那么改变流星的位置属性就足够了,而不是破坏一个对象并创建一个新对象。

例如pygame.sprite.Spritepygame.sprite.Group

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) 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。