我正在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))
答案 0 :(得分:1)
其中blocks
是Sprite
s
def draw():
for b in blocks:
screen.blit(b.image, b.rect, None)
def line_clear():
for b in blocks:
b.rect.top += 31
答案 1 :(得分:0)
我不是pygame或python的专家,但是你可以创建一个整数y和一个整数dy,其中y是你的原始值,dy是31,你想要移动的y坐标是y - dy 。希望这有帮助!