gpt4 book ai didi

python - 缩放 Sprite 大小

转载 作者:行者123 更新时间:2023-12-04 08:51:58 24 4
gpt4 key购买 nike

我有围绕模拟器运行的 Sprite 。

class guys(pygame.sprite.Sprite):
def __init__(self):
super().__init__()
self.image = pygame.image.load("/Users/taiji/Desktop/Sim/images/guys.png")
self.original_image = self.image
self.surf = pygame.Surface((50, 30))
pos = (random.uniform(0,SCREEN_WIDTH), random.uniform(0,300))
self.rect = self.surf.get_rect(center = pos)
我想将它们的大小从 (50, 30) 缩小到 (5, 3)。稍后我会让它们基于能量成长,所以我会将 (5, 3) 更改为其他内容,但我现在只是想了解基础知识。我试过这个:
def grow(sprites):
for entity in sprites:
pygame.transform.scale(entity.surf, (5, 3))
但他们根本没有改变。有人可以帮我弄这个吗?我是否需要对 entity.rect 做任何事情以便碰撞仍然可以?
感谢您的帮助!

最佳答案

这是因为 pygame.transform.scale()操作不到位。这可以通过将表面分配给函数输出来解决,如下所示:

entity.surf = pygame.transform.scale(entity.surf, (5, 3))
请注意,这种方法被认为是破坏性的,因此按比例缩小可能会导致无法识别 Sprite 。解决此问题的一种方法是保存初始 Sprite (因为您似乎已经使用 self.original_image 完成),然后简单地将新 Sprite 设置为该原始 Sprite 的缩放版本。

关于python - 缩放 Sprite 大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64056435/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com