Pygame - Что произойдет, если вы скопируете поверхность с прямоугольником меньше, чем поверхность?

В этом blit звонке

screen = pygame.Surface(640, 480)
bgsurf = pygame.Surface(640, 480)
new_rect = pygame.Rect(0, 0, 80, 80)

screen.blit(bgsurf, new_rect, new_rect)

как pygame решает, какую часть bgsurf он скопирует на экран в области new_rect?


person bzrr    schedule 17.12.2013    source источник


Ответы (1)


Из документов pygame:

blit (source, dest, area = None, special_flags = 0) - ›Rect

Рисует исходную поверхность на этой поверхности. Розыгрыш можно разместить с помощью аргумента dest. Dest может быть либо парой координат, представляющей верхний левый угол источника. Rect также может быть передан как место назначения, и верхний левый угол прямоугольника будет использоваться в качестве позиции для блит-изображения. Размер целевого прямоугольника не влияет на блит.

Также можно передать необязательный прямоугольник области. Это представляет меньшую часть исходной поверхности для рисования.

Итак, как вы можете видеть, pygame уничтожит всю поверхность в точке (0,0). Если вы хотите слепить часть поверхности, вам нужно перейти в область Rect.

РЕДАКТИРОВАТЬ:

В вашем случае он перенесет подповерхность, заданную new_rect, на экран, где верхний левый угол будет помещен в (0,0).

person Bartlomiej Lewandowski    schedule 17.12.2013