如何使用 pygame draw() 在组中绘制特定的精灵?

Jac*_*ack 5 python pygame draw

<Group(4 sprites)>
Run Code Online (Sandbox Code Playgroud)

我有 4 个精灵在一组,他们都准备好用线画,

stuff_to_draw.draw(screen)
Run Code Online (Sandbox Code Playgroud)

他们目前都在同时绘图。

是否可以做这样的事情

stuff_to_draw[0].draw(screen)
Run Code Online (Sandbox Code Playgroud)

我查看了pygame Groups 的文档,但找不到有关在组中选择特定元素的任何有用信息。

我想实现什么目标?

精灵组当前拥有一个答案精灵,它由位置 (x,y) 和要进行 blit 的字母的图像组成。

目前,在所有地图上,答案都是位块传输的,而不是当前问题的。所以我希望能够先回答问题一stuff_to_draw[0],然后回答问题二stuff_to_draw[1]

Rem*_*ber 4

self.type首先,为每个精灵添加一个。给它一个值,例如self.type = 1。然后当你想绘制某个精灵或一组精灵时调用它:

for sprite in group: #Replace group with your sprite group
    if sprite.type == 1: #Or whatever type you want
        sprite.draw(screen)
    elif sprite.type == 2:
        sprite.draw(screen)
    #Etc...
Run Code Online (Sandbox Code Playgroud)

接下来,在您的sprite班级中确保您继承自pygame.sprite.Sprite

class my_sprite_class(pygame.sprite.Sprite):
    def __init__(self):
        pygame.sprite.Sprite.__init__()
        #Etc...

    #Add this draw function so we can draw individual sprites
    def draw(self, screen):
        screen.blit(self.image, self.rect)
Run Code Online (Sandbox Code Playgroud)

我忘记了单个精灵没有绘制功能,只有组。@pmoleri @jackdh 我的错

请阅读此处的这篇文章,了解该类可以做什么。

如果您还有任何疑问,请在下面评论。