• pygame.sprite.Group


    Group类,它只存储sprite对象 

    import pygame
    
    pygame.init()
    screen = pygame.display.set_mode((960, 800))
    pygame.display.set_caption("pygame.sprite.Group")
    
    class sprite(pygame.sprite.Sprite):
    
        def __init__(self, filepath):
            super().__init__()
            self.image = pygame.image.load(filepath).convert_alpha()
            self.rect = self.image.get_rect()
    sprite_list = pygame.sprite.Group()  #定义精灵组
    #pygame.sprite.RenderPlain与这个语句相同
    
    sprite_list1 = pygame.sprite.Group()
    sprite_list2 = pygame.sprite.Group()
    
    for i in range(5):
        filepath='./图片/aa'+str(i)+'.png'
        sp = sprite(filepath)  #创建一个精灵
        sp.rect.x = 10  #精灵的位置
        sp.rect.y = 10
        #务必在Sprite添加到Groups之前调用基本初始值设定项
        sprite_list.add(sp)  #将精灵加入组
        #print(sprite_list)
        #<Group(76 sprites)>     76表示组内的精灵数
    
        sprite_list1.add(sp)
    
        sprite_list.update()  # 组更新
        #在组中的所有Sprite上调用update()方法
        # 如果没有在Group类中使用同名的方便方法,则无需使用此方法
    
    
    #sprite_list.remove(sp)  #从组中删除指定的精灵
    #<Group(75 sprites)>
    
    #pygame.sprite.Sprite.kill(sp) #从所有组中删除指定的精灵
    # 这不会改变关于Sprite状态的任何信息。 调用此方法后,可以继续使用Sprite,包括将其添加到Groups
    
    #b=pygame.sprite.Sprite.alive(sp)  #指定精灵时候已经加入组(任何组都可以)
    #当Sprite属于一个或多个组时返回True
    
    b=pygame.sprite.Sprite.groups(sp)  #返回包含指定精灵的组的列表
    #[<Group(76 sprites)>, <Group(76 sprites)>]
    
    for i in sprite_list.__iter__():  #sprite_list.__iter__()  组中精灵集合的迭代器
        #print('xxx',i)
        pass
    
    b= len(sprite_list)  #返回组内的精灵数
    
    b=sprite_list.sprites()  #返回组中精灵的列表
    #[<sprite sprite(in 2 groups)>, <sprite sprite(in 2 groups)>, <sprite sprite(in 2 groups)>, <sprite sprite(in 2 groups)>, <sprite sprite(in 2 groups)>]
    #in 2 groups   表示这个精灵在两个组中
    
    sprite_list2=sprite_list.copy()  #组复制
    
    b=sprite_list.has(sp)  #组中是否包含指定精灵
    #如果组包含所有给定的精灵,则返回True
    
    #sprite_list2.empty()  #从该组中删除所有Sprite
    
    print(b)
    
    
    while True:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                exit()
    
        sprite_list2.draw(screen)  # 将组内所有精灵渲染到screen上
        #Group.draw()方法要求每个Sprite都有一个Surface.image属性和一个Surface.rect
        #将包含的Sprite绘制到Surface参数
    
    
    
        pygame.display.update()

  • 相关阅读:
    leetcode41
    leetcode32
    leetcode312
    leetcode10
    leetcode85
    leetcode124
    leetcode301
    leetcode84
    一文读懂机器学习大杀器XGBoost原理
    【干货】机器学习中的五种回归模型及其优缺点
  • 原文地址:https://www.cnblogs.com/liming19680104/p/13260105.html
Copyright © 2020-2023  润新知