首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在游戏中生成形状的无限流序列?

如何在游戏中生成形状的无限流序列?
EN

Stack Overflow用户
提问于 2017-05-07 04:59:22
回答 1查看 159关注 0票数 1

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

代码语言:javascript
复制
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]])

创建该运动的方式是:

代码语言:javascript
复制
for i in range(10):
    draw_tree(x+150*i)

x += 1

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-07 08:07:36

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

代码语言:javascript
复制
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()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43827985

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档