Я пытаюсь создать анимацию, в которой изображение одновременно перемещается вниз и исчезает, например:
Однако я могу 'Похоже, это работает правильно.Я хочу, чтобы изменялась только часть экрана с анимацией, поэтому я сделал что-то вроде этого ...
orect = pygame.Rect(oSprite.rect)
for i in range(10):
screen.fill(Color(255,255,255),rect=orect)
oSprite.rect.top += 12
print(orect)
print(screen.blit(oSprite.image, oSprite.rect, orect))
pygame.display.update(orect)
timer.tick(30)
, где oSprite
- это спрайт, представляющий изображение, которое я хочу анимировать.
В документах screen.blit(source, dest, area)
должен возвращать Rect, представляющий пиксели, которые изменились, но когда я запускаю свой код, я получаю это (в 10 раз больше):
<rect(336, 48, 76, 74)>
<rect(336, 60, 0, 0)>
Вторая строка - это то, чтобыл возвращен screen.blit()
, что означает, что он изменил область 0x0, и действительно, все, что я вижу на экране, когда код выполняется, - это внезапное сокращение до белого, а не какая-либо анимация вообще.Почему это может произойти?Как видно из первого оператора print (), прямоугольник, который я ввел для значения области, был 76x74, а не 0x0.