循环绘制的pygame矩形在屏幕上滚动

cce.jbc

这是我的完整代码:

 import pygame
pygame.init()

i = 0
x = 0

# Define the colors we will use in RGB format
BLACK = (  0,   0,   0)
WHITE = (255, 255, 255)
BLUE  = (  0,   0, 255)
GREEN = (  0, 255,   0)
RED   = (255,   0,   0)

# Set the height and width of the screen
size = [600, 300]
screen = pygame.display.set_mode(size)

pygame.display.set_caption("Test")

#Loop until the user clicks the close button.
done = False
clock = pygame.time.Clock()

while not done:
    clock.tick(10)

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

    screen.fill(WHITE)

    for x in range(x, x+100, 10):
       pygame.draw.rect(screen, BLACK, [x, 0, 10, 10], 1)

    pygame.display.flip()

pygame.quit()

绘制了10个正方形,但它们在窗口中向右滚动,我不知道为什么。有什么办法可以阻止我吗?

谢谢。

我现在意识到这与矩形循环无关,但是无论如何我已经将其更改为建议的内容。

拉巴列克桑达尔

现在,您已经添加了更多代码,我看到了问题的出处,就像我怀疑的那样-您正在以不正确的方式进行静态转换,即您在中使用了x(在主循环之外定义的)for x in range(x, x+100, 10):

如果print(x)for-loop添加一条语句,您将能够看到它x变得越来越大……这非常适合向场景中添加动态效果,但是我的猜测是(基于您的问题)您想要在场景中添加10个静态矩形。

为此,您需要在x每次while循环的新迭代开始重置您的代码

while not done:
    clock.tick(10)

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

    screen.fill(WHITE)

    # Every single iteration of the while loop will first reset the x to its initial value
    # You can make x be any value you want your set of rectangles to start from
    x = 0

    # Now start adding up to x's initial value
    for x in range(x, x+100, 10):
      pygame.draw.rect(screen, BLACK, [x, 0, 10, 10], 1)

    pygame.display.flip()

您也可以省略的定义x为外部变量for循环,如果你不会使用它来改变x坐标在您的第一个矩形将启动并更换range(x, x+100, 10)range(CONST, CONST+100, 10)哪里CONST是给定值,如0,100,1000等。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Pygame没有移动我在屏幕上绘制的矩形

来自分类Dev

在for循环中将小矩形打印到屏幕上。(pygame)

来自分类Dev

矩形未在屏幕上绘制

来自分类Dev

绘制矩形在滚动过程中不会从屏幕上掉落

来自分类Dev

Qt Designer并在屏幕上绘制矩形

来自分类Dev

动画Pygame矩形可在屏幕上移动

来自分类Dev

使用C#在屏幕上动态绘制填充矩形

来自分类Dev

如何使用Python在屏幕上绘制空白矩形

来自分类Dev

如何在屏幕上为脚本绘制选择矩形?

来自分类Dev

pygame的“绘画”程序-在画布上绘制空矩形

来自分类Dev

(Pygame / Python)如何基于对象的矩形在屏幕上放置对象?

来自分类Dev

pygame:在屏幕上绘制之前将文本绘制到Surface

来自分类Dev

在Pygame中,您可以在每个循环中将许多精灵绘制到屏幕上而没有明显的延迟吗?

来自分类Dev

在屏幕上绘制8x8矩形会变成9x9矩形吗?

来自分类Dev

在SurfaceView上绘制矩形

来自分类Dev

屏幕上的黑色矩形

来自分类Dev

滚动时未将UITableViewCells绘制到屏幕上

来自分类Dev

如何在用户在Android屏幕上绘制时绘制矩形

来自分类Dev

循环绘制不同大小的矩形

来自分类Dev

迅速在矩形上绘制渐变

来自分类Dev

在SeekBar上绘制矩形并填充

来自分类Dev

无法在JPanel上绘制矩形

来自分类Dev

用pygame在矩形上方绘制Ascii字符

来自分类Dev

Pygame Python如何从变量中绘制矩形

来自分类Dev

Pygame在单击时未绘制矩形

来自分类Dev

如何在pygame中绘制透明矩形

来自分类Dev

绘制矩形时 Pygame 出现问题

来自分类Dev

在屏幕上绘制位图

来自分类Dev

在pygame上绘制对象