-1

テキストベースの MUD を次のレベルに引き上げるために、少し pygame を学んでいます。

本当に役立つこのチュートリアルを見つけました。ただし、第 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 dict から 'rect' および 'dir' キーにアクセスしますか?

4

1 に答える 1

1

もちろん。不足している括弧やその他のものをすべて修正すると仮定すると、foods最終的には 20 のリストになりdictます。それは完全に合法であり、dict変数から直接取得したか、 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 に答える