微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

有没有办法以不同的尺寸多次显示相同的图片?

如何解决有没有办法以不同的尺寸多次显示相同的图片?

image1 = pygame.image.load('Insel.jpg')
image1 = pygame.transform.scale(image1,(200,150))

image2 = pygame.image.load('Insel.jpg')
image2 = pygame.transform.scale(image2,(250,200))

image3 = pygame.image.load('Insel.jpg')
image3 = pygame.transform.scale(image1,(150,100))

multi_Images = []
multi_Images_pos = []

image1 = pygame.image.load('Insel.jpg')

for i in range(5):
    multi_Images.append(image1)
    pos = [random.randint(0,480+1),random.randint(0,480+1)]
    multi_Images_pos.append(pos)

到目前为止,这是我的代码,我想以 3 种不同的大小随机多次创建相同的图像,但此代码不起作用。我不想一遍又一遍地加载图片。我对编程很陌生,但我知道这看起来不太好。

解决方法

我不想一遍又一遍地加载图片

只加载一次图像并创建多个缩放图像:

image = pygame.image.load('Insel.jpg')

image1 = pygame.transform.scale(image,(200,150))
image2 = pygame.transform.scale(image,(250,200))
image3 = pygame.transform.scale(image,(150,100))

我建议将图像存储在列表中而不是 3 个单独的变量中:

image = pygame.image.load('Insel.jpg')
image_list = [
    pygame.transform.scale(image,150))
    pygame.transform.scale(image,200))
    pygame.transform.scale(image,100))]

最后你应该把代码放在一个函数中:

def load_and_scale(imagename):
    image = pygame.image.load(imagename)
    return [
        pygame.transform.scale(image,150))
        pygame.transform.scale(image,200))
        pygame.transform.scale(image,100))]
image_list = load_and_scale('Insel.jpg')

使用 random.choice 从列表中随机选择一张图片:

image_list = load_and_scale('Insel.jpg')

multi_Images = []
for i in range(5):
    image = random.choice(image_list)
    pos = [random.randint(0,480+1),random.randint(0,480+1)]
    multi_Images.append((image,pos)) 

您可以使用循环绘制图像:

for image,pos in multi_Images:
    screen.blit(image,pos)
,

如果您是编程新手,为什么要从制作游戏开始?首先学习基础知识。这就像医生的第一堂课是脑部手术。

multi_Images.append(image1)。您的问题是您一直在附加相同的图片。
另外,为什么 image1 = pygame.image.load('Insel.jpg') 会发生两次?

我不熟悉 pygame 但这可能会满足您的需求。

image_source = []
img = pygame.image.load('Insel.jpg')

image_source.append(pygame.transform.scale(img,150)))
image_source.append(pygame.transform.scale(img,200)))
image_source.append(pygame.transform.scale(img,100)))

multi_Images = []
multi_Images_pos = []

for i in range(5):
    choice = random.randint(0,2)
    multi_Images.append(image_source[choice])
    pos = [random.randint(0,480+1)]
    multi_Images_pos.append(pos)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。