微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何将项目附加到班级列表中?

如何解决如何将项目附加到班级列表中?

我正在 pygame 中编写一个小游戏,我不得不将项目从类添加到列表中,但是当我运行代码时,第二个“障碍”没有出现,因为“障碍”中的“移动”函数class 不会将该项目附加到列表中。 有人知道如何解决这个问题吗?

这是一些代码

obs = []

class obstacles():
    def __init__(self):
        self.x = screen_width
        self.y = screen_height - ob_height
        self.rect = Rect(self.x,self.y,ob_width,ob_height)
        self.speed = 4
    

    def draw(self):
        pygame.draw.rect(screen,ob_col,self.rect)
    

    def move(self):
        self.rect.x -= self.speed
        if self.rect.x < 100:
            obs.append(obstacles())
    

def init():
   obs.append(obstacles())

  
ob_disegno = obstacles()
sq_disegno = square()

init()

run = True

while run:
    
        clock.tick(fps)
        screen.fill(background)

        ob_disegno.move()
        sq_disegno.draw()
    
        for i in obs:
            ob_disegno.draw()

        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                 run = False


        pygame.display.update()


pygame.quit()

解决方法

当然,对象被添加到列表中。但是,您永远不会绘制列表中的对象,因此您永远不会看到新对象。你只是画ob_disegno

for i in obs:
   ob_disegno.draw()

您需要移动并绘制列表的元素:

for ob in obs:
    ob.move()
    ob.draw()

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。