Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Loops 如何在pygame中使用for/while循环形状来创建重复图案?_Loops_Pygame_Offset - Fatal编程技术网

Loops 如何在pygame中使用for/while循环形状来创建重复图案?

Loops 如何在pygame中使用for/while循环形状来创建重复图案?,loops,pygame,offset,Loops,Pygame,Offset,对于学校作业,我们必须使用pygame形状创建图片,我对使用偏移量的For循环有一个问题。我正试图在道路上画出分割的黄色虚线。然而,问题是这些线是垂直重复的。有一堆一堆的 import pygame pygame.init() white= [255,255,255] red = [255, 0, 0] size = [400,500] screen = pygame.display.set_mode(size) done = False clock = pygame.time.Cl

对于学校作业,我们必须使用pygame形状创建图片,我对使用偏移量的For循环有一个问题。我正试图在道路上画出分割的黄色虚线。然而,问题是这些线是垂直重复的。有一堆一堆的

import pygame
pygame.init()
white= [255,255,255]
red =   [255,  0,  0] 
size = [400,500]
screen = pygame.display.set_mode(size) 
done = False
clock = pygame.time.Clock()

while done == False:
   for event in pygame.event.get(): 
       if event.type == pygame.QUIT: 
           done = True

   screen.fill(white)
   for y_offset in range(100,0,-10):
       pygame.draw.line(screen,red,[10,+y_offset],[100,0+y_offset],5)

   pygame.display.flip()

pygame.quit()
如果您使用此代码,它会在彼此的顶部打印10条红色水平线。我想知道如何使线条水平而不是垂直重复。我不知道怎么把它们做成这样:---
有人能帮我做一下循环过程吗?我只是不明白它的抵消部分。谢谢

我不想给出答案,但看看这四行是否对你没有帮助:

pygame.draw.line(screen, red, [10, 0], [100, 0], 5)
pygame.draw.line(screen, red, [110, 0], [200, 0], 5)
pygame.draw.line(screen, red, [210, 0], [300, 0], 5)
pygame.draw.line(screen, red, [310, 0], [400, 0], 5)

而且,我甚至不能100%确定这就是你想要的。

我找到了答案!我使用了一个while循环,但是我发现我必须将+y_偏移量添加到X坐标,而不是y坐标。这允许它水平重复。谢谢你的帮助

y\u偏移量=0
当y_偏移小于700时:
pygame.draw.line(屏幕,黄色,[0+y_偏移,480],[50+y_偏移,480],5)
y_偏移=y_偏移+70

听起来你想沿着x重复,所以你需要使用x值上的偏移量。仅供参考:[10,+y\u偏移量],[100,0+y\u偏移量],第一个括号中的+是无用的,第二个括号中的0+也是无用的。这正是我想要的!然而,我的老师希望我们使用while或for的循环来生成这些行。她希望我们使用循环,而不是一次又一次地重写代码。我只是想知道是否有其他方法来编写它这只是一个提示,我把循环逻辑留给你了。
y_offset = 0
while y_offset < 700:
    pygame.draw.line(screen,yellow,[0+y_offset,480],[50+y_offset,480],5)
    y_offset = y_offset+70