【发布时间】:2019-10-06 08:21:10
【问题描述】:
我正在尝试制作一个图像同时向下移动并消失的动画,如下所示:
但是,我似乎无法让它正常工作。我只想改变带有动画的屏幕部分,所以我做了这样的事情......
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 是代表我想要制作动画的图像的 Sprite。
在文档中,screen.blit(source, dest, area) 应该返回一个表示已更改像素的 Rect,但是当我运行我的代码时,我得到了这个(10 倍以上):
<rect(336, 48, 76, 74)>
<rect(336, 60, 0, 0)>
第二行是screen.blit() 返回的内容,这意味着它改变了一个0x0 区域,实际上,当代码运行时,我在屏幕上看到的只是突然变成白色,而不是任何动画。为什么会发生这种情况?从第一个 print() 语句可以看出,我输入的区域值的矩形是 76x74,而不是 0x0。
【问题讨论】:
-
我得到了同样的结果——只是剪成了白色。
-
好吧对不起,我可能不明白你想要达到什么目的。你有一个图像表面吗(oSprite.image)?你想在里面玩吗?
-
我正在尝试在
orect的参数内将oSprite.image传送到screen。