Animation 如何在Pygame中设置虚线动画

Animation 如何在Pygame中设置虚线动画,animation,line,Animation,Line,所以我试图制作一条沿着屏幕向下移动的虚线的动画。。。就像在路上从你身边走过的白色虚线。我很容易画出虚线: import pygame GREY = (211, 211, 211) WHITE = (255, 255, 255) pygame.init() screen = pygame.display.set_mode(800, 600) pygame.display.set_caption("Line Test") clock = pyg

所以我试图制作一条沿着屏幕向下移动的虚线的动画。。。就像在路上从你身边走过的白色虚线。我很容易画出虚线:

    import pygame
    GREY = (211, 211, 211)
    WHITE = (255, 255, 255)
    pygame.init()
    screen = pygame.display.set_mode(800, 600)
    pygame.display.set_caption("Line Test")
    clock = pygame.time.Clock()

    running = True
    while running:
        clock.tick(60)
        for event in pygame.event,get():
            if event.type == pygame.QUIT:
                running = False

        all_sprites.update()
        screen.fill(GREY)
        dash = 0
        for i in range(30):
            pygame.draw.line(screen, WHITE, [400, 1 + dash], [400, dash + 10], 6)
            dash += 20
        all_sprites.draw(screen)
        pygame.display.flip()

    pygame.quit()
但我试图在一个类中设置这条线的动画,使它看起来不断向下移动。到目前为止没有运气,只能通过以下方式在屏幕上移动一个破折号:

    class Line(pygame.sprite.Sprite):
        def __init__(self):
            pygame.sprite.Sprite.__init__(self)
            self.image = pygame.Surface((6, 10))
            self.image.fill(WHITE)
            self.rect = self.image.get_rect()
            self.last_uodate = pygame.time.get_ticks()
            self.rect.x = 400
            dash = 0
            for i in range(30):
                self.rect.y = 0 + dash
                dash += 20
            self.speedy = 5

        def update(self):
            self.rect.y += self.speedy
            if self.rect.y > 600:
                now = pygame.time.get_ticks()
                if now - self.last_update > 0:
                    self.last_update = now
                    self.rect.x = 400
                    self.rect.y = 0
                    self.speedy = 5

    all_sprites = pygame.sprite.Group()
    line = pygame.sprite.Group()
    for i in range(30):
        ln = Line()
        all_sprites.add(ln)
        line.add(ln)

有什么建议或告诉我哪里出了问题吗?这只会在屏幕上产生一个破折号,而不是整个虚线从上到下不断移动。

由于这个链接很安静,没有得到我希望得到的反馈,我在Pygame中玩了更多的游戏,最后只在道路上使用了精灵图像。我能够在他们自己的类中使用大约4个独立的,从屏幕顶部不同的rect.y位置开始,并对他们所有人使用相同的self.y,然后当到达屏幕底部时,所有人都从-20y位置重新启动。这给了它的无缝流,所有的都是在连续的道路线移动下来的屏幕。如果有人想要我使用的代码,我很乐意发布

我仍然希望有人能告诉我如何在一节课内做到这一点