1

我正在制作一个游戏,其中一部分包括一个聊天框风格的模拟。我想做的是向上移动屏幕的一部分,这样所有的文本都会向上移动并腾出更多空间。

我已成功使用以下代码使部分屏幕变黑:

def move (screen):
    area = pygame.Surface((540, 400))
    area.scroll(0, -100)
    area_rect = area.get_rect()
    area_rect = area.get_rect(left=100, bottom=400)
    area_rect.move_ip(0, -100)
    screen.blit(area, (100, 0), area_rect)
    pygame.display.flip()

我试图在 640x480 屏幕上将区域 [(100, 0), (640, 400)] 向上移动 100 像素。我在做什么大错特错?

4

1 回答 1

1

你不需要为此使用Surface.scroll。如果您不关心向上移动该特定区域后剩下的内容,请尝试复制您想要移动的部分并将其粘贴到您希望它重新出现的位置:

area_rect = pygame.Rect(100, 0, 540, 400)
area = screen.subsurface(area_rect)
new_area_rect = area_rect.move(0, -100)
screen.blit(area, new_area_rect.topleft)
pygame.display.flip()
于 2016-05-02T10:05:50.550 回答