How to use sprite groups in pygame

后端 未结 4 1776
执念已碎
执念已碎 2020-12-19 04:12

So I\'ve gotten to the point in my program where I need to create a group for some sprites that the player can collide with without dying (like some other sprites I may have

4条回答
  •  無奈伤痛
    2020-12-19 04:57

    I know this question has already been answered, but the best method is like what kelwinfc suggested. I'll elaborate so it's more understandable.

    # First, create you group
    gems = pygame.sprite.Group()
    
    class Jewel (pygame.sprite.Sprite): # Inherit from the Sprite
        def __init__ (self, *args): # Call the constructor with whatever arguments...
            # This next part is key. You call the super constructor, and pass in the 
            # group you've created and it is automatically added to the group every 
            # time you create an instance of this class
            pygame.sprite.Sprite.__init__(self, gems) 
    
            # rest of class stuff after this.
    
    >>> ruby = Jewel()  
    >>> diamond = Jewel()  
    >>> coal = Jewel()
    
    # All three are now in the group gems. 
    >>> gems.sprites()
    [, , ]
    

    You can also add more with gems.add(some_sprite) and likewise remove them with gems.remove(some_sprite).

提交回复
热议问题