0

我正在 Pygame 中进行俄罗斯方块重制,每当清除一条线时,我需要将所有块向下移动 31 个像素。如何捕获在线上方的屏幕并将其向下移动 31 个像素?

我已经设法在我想要移动的区域周围制作了一个矩形,但是我完全不知道如何用它复制表面然后将其向下移动并将其放回表面上,请帮忙!

这是我到目前为止的(不成功的)片段:

if bc1 == "16070":
    height_to_move = 659

else:
    height_to_move = 659 - int(bc1[3:])

movable_sheet = pygame.Rect(160, 70, 279, height_to_move)

movedsheet = screen.subsurface(movable_sheet).copy()


screen.blit(screen, (160,101), (160, 70, 279, height_to_move))
4

2 回答 2

1

sblocks的列表在哪里Sprite

def draw():
    for b in blocks:
        screen.blit(b.image, b.rect, None)

def line_clear():
    for b in blocks:
        b.rect.top += 31
于 2013-09-07T19:16:11.087 回答
0

我不是 pygame 或 python 方面的专家,但你可以创建一个整数 y 和一个整数 dy,其中 y 是你的原始值,dy 是 31,并且你想要移动的区域的 y 坐标是 y - dy。希望这有帮助!

于 2013-09-07T19:04:26.343 回答