<Group(4 sprites)>
我在一组中有4个精灵,他们都准备用线条绘制,
stuff_to_draw.draw(screen)
他们目前都在同一时间画画。
是否可以做这样的事情
stuff_to_draw[0].draw(screen)
我看了
[https://www.pygame.org/docs/ref/sprite.html#pygame.sprite.Group] [1]
虽然我找不到有关选择组中特定元素的任何有用信息。
我想要实现的目标是什么?
精灵组目前拥有一个回答精灵,它由位置(x,y)和要写入blit的字母图像组成。
目前,在所有地图中,答案都是blitted而不是当前问题。所以我想问一个问题* stuff_to_draw [0] *然后问两个* stuff_to_draw [1] *。
答案 0 :(得分:2)
首先,为您的每个精灵添加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...
接下来,在您的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)
我忘记了个别精灵没有绘制功能,只有群体。 @pmoleri @jackdh我的不好
请在此处阅读此post以了解该课程可以做些什么。
如果您还有其他问题,请在下方发表评论。
答案 1 :(得分:0)
你可以搞任何个人精灵,但我不推荐它。这将是这样的:
sprite = stuff_to_draw.sprites()[0]
screen.blit(sprite.image, sprite.rect)
我的建议是在Sprites Group保留您想要绘制的内容,并将其余内容保存在单独的列表或组中。