-1

我一直在学习一些 pygame 以将我们基于文本的 MUD 提升到一个新的水平。

我发现这个教程真的很有帮助。但是,我想扩展第 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)

然后从 badGuy 字典中访问 'rect' 和 'dir' 键?

4

1 回答 1

1

当然。假设您修复了所有缺少的括号和其他东西,foods最终将成为 20dict秒的列表。这是完全合法的,并且 adict不关心您是直接从变量中获取它,还是从 a 的中间list或其他任何地方获取它。因此,您可以执行以下操作:

print foods[0]['rect']

for food in foods:
    print food['dir']

food = random.choice(foods)
print food['rect']

… 等等。

于 2013-10-22T23:29:09.617 回答