【发布时间】:2021-08-01 05:46:27
【问题描述】:
我有一个云类,我有各种各样的云形状,所以我需要将每个变化与其对应的阴影相关联,以便在它下面显示它。
但是我尝试创建一个字典,其中云的图像作为键,它们的阴影作为值,我还创建了将云和阴影分别放在一个单独的列表中,然后使用 for 循环遍历它们并关联他们,但没有一个工作。
我遇到了一个错误,上面写着TypeError: 'pygame.Surface' object is not iterable
class Cloud(object):
def __init__(self:
imgs = random.choice([pygame.image.load(r'C:\Users\Salem\Documents\MyGame1\testcloud1.png').convert_alpha(), pygame.image.load(r'C:\Users\Salem\Documents\MyGame1\testcloud2.png').convert_alpha(),
pygame.image.load(r'C:\Users\Salem\Documents\MyGame1\testcloud3.png').convert_alpha()])
shadows = [pygame.image.load(r'C:\Users\Salem\Documents\MyGame1\cloud_shadow.png').convert_alpha(), pygame.image.load(r'C:\Users\Salem\Documents\MyGame1\testcloud2shadow.png').convert_alpha(),
pygame.image.load(r'C:\Users\Salem\Documents\MyGame1\testcloud3shadow.png').convert_alpha()]
self.x = random.randrange(-1500, -500)
self.y = random.randrange(-100, 400)
for img in imgs:
for shadow in shadows:
i = random.randrange(len(imgs))
self.img = random.choice(self.imgs[i])
self.shadow = self.shadow[i]
那我能做什么呢?
注意:
我只需要将云的图像与其阴影相关联,但我知道如何显示每个对象及其对应的阴影。
顺便说一句,不要介意我凌乱的文件名^^
提前致谢!
【问题讨论】:
-
您能否发布一些示例代码,以便我们知道您在做什么?
-
@AdamConrad 完成
-
看起来您正在选择加载的三个图像中的单个图像,这就是它抱怨无法迭代的原因。另外,因为你是随机选择的,你怎么知道选择的图像是哪个阴影?
-
@AdamConrad,这两个列表的排序方式是第一个列表中索引为 1 的对象对应于第二个列表中索引为 1 的对象,依此类推。此外,我创建了实例的云类,使它们中的每一个代表一个随机选择的云形状