2

pygameを使って「街の地図」を作ろうとしています。建物の画像を単に色で塗りつぶすのではなく、特定のグリッド座標に配置できるようにしたいと考えています。

これが私がこのマップグリッドを作成する方法です:

def clear():
    for r in range(rows):
        for c in range(rows):
            if r%3 == 1 and c%3 == 1:
                color = brown;
                grid[r][c] = 1;
            else:
                color = white;
                grid[r][c] = 0; 
            pygame.draw.rect(screen, color, [(margin+width)*c+margin, (margin+height)*r+margin, width, height])         
    pygame.display.flip();

では、特定の場所にある茶色のグリッドに建物の画像を配置するにはどうすればよいですか?私はいくつかのサンプルをオンラインで試しましたが、それらを機能させることができないようです。どんな助けでも大歓迎です。

誰かが私がpygameに使用できる無料のスプライトの良い情報源を持っているなら、私に知らせてください。ありがとう!

これは私が作成したグリッドマップです

4

1 に答える 1

6

これが私が書いた例です。を使用しnumpyてタイルデータを保存します。コードと画像は次の場所からダウンロードできます:http://code.google.com/p/ninmonkey/source /.../ maptiles(失敗した場合は、次のURLを使用してください:https ://storage.googleapis.com/google- code-archive-source / v2 / code.google.com / ninmonkey / source-archive.zip

  • を押しSて、マウスのスクロールを切り替えます。
  • Map.tilesnumpy.arrayタイルのIDを格納する2Dです

タイルセットのデモ

タイルマップの上にあるユニット/スプライトを追加する場合:(建物はこれとしてカウントされる場合があります)

  • 世界座標を使用した店舗の場所
  • world2screen座標関数を使用してそれらを描画します。

この関数は、マップオフセットをワールド座標に追加します。したがって、マップオフセットが(-100,0)で、ユニットのワールド座標が(0,0)の場合、予想どおり、マップの左上部分に配置して(-100,0)でレンダリングします。スクロールされます。

于 2012-09-30T21:29:59.457 に答える