我已经学习了一些pygame,将我们基于文本的MUD提升到了一个新的水平。
我发现this tutorial非常有帮助。但是,我想扩展第18章的例子,让所有的绿色实体也移动。
显然,您不能复制/粘贴使白色块自行移动的早期脚本,因为这些只是列表中的矩形而不是字典。所以我想知道如何访问嵌套在列表中的字典中的键/值。
将一些代码放到我的问题中:
矩形如下所示:
badGuy = {'rect':pygame.Rect(300, 100, 50, 50), 'dir':UPLEFT}
在原始代码中,它只是将新的矩形对象附加到列表中:
foods = []
for i in range(20):
foods.append(pygame.Rect(stuff to make the rectangle)
是否可以执行类似
的操作foods = []
for i in range(20:
foods.append(badGuy)
然后访问' rect'和' dir'来自badGuy dict的钥匙?
答案 0 :(得分:1)
不确定。假设您修复了所有丢失的问题和其他内容,foods
将最终显示为20个dict
的列表。这是完全合法的,而dict
并不关心你是直接从变量,还是从list
的中间或其他任何地方获得它。所以,你可以这样做:
print foods[0]['rect']
for food in foods:
print food['dir']
food = random.choice(foods)
print food['rect']
......等等。