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

blocksリストはどこにありますか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 に答える