为了账号安全,请及时绑定邮箱和手机立即绑定

为什么我的组列表一次仅渲染 1 个精灵?

为什么我的组列表一次仅渲染 1 个精灵?

慕田峪9158850 2024-01-16 15:21:20
我最近观看了 Tech with Mike 的太空入侵者视频,我认为组列表很有趣。我尝试用它制作一个粒子列表。它一直有效,直到颗粒落到底部,而我在回收它们时遇到了麻烦。它不会渲染所有内容,仅渲染一个立方体。import pygameimport randompygame.init()win_height=600win_width=800win=pygame.display.set_mode((win_width,win_height))pygame.display.set_caption("List practice")white=(255,255,255)black=(0,0,0)clock=pygame.time.Clock()class particle_class(pygame.sprite.Sprite):    def __init__(self):        pygame.sprite.Sprite.__init__(self)        self.image=pygame.Surface((25,25))        self.image.fill(white)        self.rect=self.image.get_rect()        self.speed=0    def update(self):        self.rect.y+=self.speed        particles=pygame.sprite.Group()for i in range(100):    particle=particle_class()    particle.speed=random.randrange(5,11)    particle.rect.y=0    particle.rect.x=random.randrange(0,win_width+1)    particles.add(particle)while True:    clock.tick(60)    for event in pygame.event.get():        if event.type==pygame.QUIT:            pygame.quit()    win.fill(black)    particles.update()    particles.draw(win)    pygame.display.update()    for i in particles:        if particle.rect.y>win_height:            particle.rect.y=0
查看完整描述

1 回答

?
LEATH

TA贡献1936条经验 获得超6个赞

您想要遍历 的列表particles。该for循环对列表中的每个项目(可迭代)运行,并允许您访问列表中的当前项目。如果这样做for i in particles:,i是列表的一个元素。i只是引用列表中当前项目的变量名称。您可以在此位置使用任何您想要的名称(i、particle、hugo、 ...)。您只需在循环中使用相同的名称(变量)即可访问该项目。参见for声明。


任何一个


for i in particles:

   if i.rect.y > win_height:

       i.rect.y = 0

或者


for particle in particles:

    if particle.rect.y > win_height:

        particle.rect.y = 0


查看完整回答
反对 回复 2024-01-16
  • 1 回答
  • 0 关注
  • 77 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信