Python 如何在pygame中生成形状的无限流序列?

Python 如何在pygame中生成形状的无限流序列?,python,pygame,Python,Pygame,我试图创造一个无限的形状流: def draw_tree(x): pygame.draw.rect(screen, BROWN, [60+x,400,30,45]) pygame.draw.polygon(screen, GREEN, [[150+x, 400],[75+x, 250],[0+x, 400]]) pygame.draw.polygon(screen, GREEN, [[140+x, 350],[75+x, 230],[10+x, 350]]) 将运动创建

我试图创造一个无限的形状流:

def draw_tree(x):
    pygame.draw.rect(screen, BROWN, [60+x,400,30,45])
    pygame.draw.polygon(screen, GREEN, [[150+x, 400],[75+x, 250],[0+x, 400]])
    pygame.draw.polygon(screen, GREEN, [[140+x, 350],[75+x, 230],[10+x, 350]])
将运动创建为:

for i in range(10):
    draw_tree(x+150*i)

x += 1

在主代码中。如何使这个序列无限大?

下面是一个示例,演示了我在注释中描述的内容。for循环开始在i=-150处绘制6棵树,向其中添加当前的x偏移。如果x
=150
只需将其重置为0

import sys
import pygame as pg


pg.init()
screen = pg.display.set_mode((640, 480))
BROWN = pg.Color('brown')
GREEN = pg.Color('green4')


def draw_tree(x):
    pg.draw.rect(screen, BROWN, [60+x, 400, 30, 45])
    pg.draw.polygon(screen, GREEN, [[150+x, 400], [75+x, 250], [0+x, 400]])
    pg.draw.polygon(screen, GREEN, [[140+x, 350], [75+x, 230], [10+x, 350]])


def main():
    clock = pg.time.Clock()
    x = 0
    done = False

    while not done:
        for event in pg.event.get():
            if event.type == pg.QUIT:
                done = True

        x += 4
        if x >= 150:
            x = 0

        screen.fill((255, 255, 255))
        for i in range(-150, 4*150+1, 150):
            draw_tree(i+x)
        pg.display.flip()
        clock.tick(30)


if __name__ == '__main__':
    main()
    pg.quit()
    sys.exit()

下面是一个示例,演示了我在评论中描述的内容。for循环开始在i=-150处绘制6棵树,向其中添加当前的x偏移。如果x
=150
只需将其重置为0

import sys
import pygame as pg


pg.init()
screen = pg.display.set_mode((640, 480))
BROWN = pg.Color('brown')
GREEN = pg.Color('green4')


def draw_tree(x):
    pg.draw.rect(screen, BROWN, [60+x, 400, 30, 45])
    pg.draw.polygon(screen, GREEN, [[150+x, 400], [75+x, 250], [0+x, 400]])
    pg.draw.polygon(screen, GREEN, [[140+x, 350], [75+x, 230], [10+x, 350]])


def main():
    clock = pg.time.Clock()
    x = 0
    done = False

    while not done:
        for event in pg.event.get():
            if event.type == pg.QUIT:
                done = True

        x += 4
        if x >= 150:
            x = 0

        screen.fill((255, 255, 255))
        for i in range(-150, 4*150+1, 150):
            draw_tree(i+x)
        pg.display.flip()
        clock.tick(30)


if __name__ == '__main__':
    main()
    pg.quit()
    sys.exit()

做什么是无限的,确切地说?一个线性无限的形状链这是否意味着你的
for
循环应该永远运行?想让形状从前面重新出现,因为它从后面消失了,但目前它没有消失,你只需添加新的?另外,您是否正在使用设置的屏幕分辨率?如果是这样,这是什么?做什么无限,确切地说?一个线性无限形状链这是否意味着你的
for
循环应该永远运行?想让形状从前面重新出现,因为它从后面消失了,但目前它没有消失,你只需要添加新的?另外,您是否正在使用设置的屏幕分辨率?如果是,这是什么?